VerFindFileW

システム内に該当ファイルの別バージョンがあるかどうかに基づいて、ファイルをインストールする場所を決定する。VerFindFile が指定バッファに返す値は、後続の VerInstallFile 関数呼び出しで使用される。(Unicode)

VerFindFileW uFlags, szFileName, szWinDir, szAppDir, szCurDir, puCurDirLen, szDestDir, puDestDirLen

uFlags : [int] 型: DWORD このパラメータには次の値を指定できる。その他のビットはすべて予約されている。
szFileName : [wstr] 型: LPCTSTR インストールするファイルの名前。ファイル名と拡張子のみを指定し、パスを含めてはならない。
szWinDir : [wstr] 型: LPCTSTR Windows が動作している、または動作する予定のディレクトリ。この文字列は GetWindowsDirectory 関数によって返される。
szAppDir : [wstr] 型: LPCTSTR インストールプログラムが関連ファイル群をインストールするディレクトリ。インストールプログラムがアプリケーションをインストールする場合は、これがアプリケーションの配置先ディレクトリとなる。このパラメータは、特に指定しない限りアプリケーションのカレントディレクトリも指す。
szCurDir : [wstr] 型: LPWSTR インストールするファイルの現行バージョンへのパスを受け取るバッファ。このパスは null 終端文字列である。現行バージョンがインストールされていない場合、バッファは長さ 0 の文字列を含む。バッファは少なくとも _MAX_PATH 文字以上の長さを持つことが望ましいが、必須ではない。
puCurDirLen : [var] 型: PUINT szCurDir バッファの長さ。このポインタは NULL であってはならない。関数が戻ったとき、lpuCurDirLen は szCurDir に返されるデータのサイズ(終端の null 文字を含む文字数)を保持する。バッファがすべてのデータを格納するには小さすぎる場合、lpuCurDirLen にはパスを保持するために必要なバッファサイズが格納される。
szDestDir : [wstr] 型: LPTSTR VerFindFile が推奨するインストール場所へのパスを受け取るバッファ。このパスは null 終端文字列である。バッファは少なくとも _MAX_PATH 文字以上の長さを持つことが望ましいが、必須ではない。
puDestDirLen : [var] 型: PUINT szDestDir バッファの長さを指定する変数へのポインタ。このポインタは NULL であってはならない。関数が戻ったとき、lpuDestDirLen は szDestDir に返されるデータのサイズ(終端の null 文字を含む文字数)を保持する。バッファがすべてのデータを格納するには小さすぎる場合、lpuDestDirLen にはパスを保持するために必要なバッファサイズが格納される。

(プラグイン / モジュール : version.dll)

解説

システム内に該当ファイルの別バージョンがあるかどうかに基づいて、ファイルをインストールする場所を決定する。VerFindFile
が指定バッファに返す値は、後続の VerInstallFile 関数呼び出しで使用される。(Unicode)

[戻り値]
型: DWORD 戻り値はファイルの状態を示すビットマスクである。次の値の 1
つ以上を含む可能性がある。その他の値はすべて予約されている。
(以下省略)

[備考]
この関数は 16 ビット、32 ビット、64 ビットのファイルイメージで動作する。VerFindFile は OpenFile
関数を使用して指定されたファイルのコピーを検索する。ただし、システムディレクトリは指定された Windows
ディレクトリから決定するか、パスを検索する。dwFlags
パラメータがファイルがこのアプリケーション専用(VFFF_ISSHAREDFILE
ではない)であることを示している場合、VerFindFile
はアプリケーションのディレクトリにファイルをインストールすることを推奨する。それ以外の場合、システムが共有コピーで動作しているなら関数は
Windows
ディレクトリへのインストールを推奨し、システムがプライベートコピーで動作しているならシステムディレクトリへのインストールを推奨する。
> [!NOTE] > winver.h ヘッダは VerFindFile を、UNICODE
プリプロセッサ定数の定義に基づいてこの関数の ANSI 版または Unicode
版を自動的に選択するエイリアスとして定義している。エンコーディング中立なエイリアスとエンコーディング中立でないコードを混在させると、コンパイルや実行時のエラーにつながる不一致が発生する場合がある。詳細は
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照。

情報

プラグイン / モジュールversion.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の version.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_version_gen2.hs