VerFindFileA 関数 (winver.h)
システム内の別のバージョンのファイルが見つからないかどうかに基づいて、ファイルをインストールする場所を決定します。 指定したバッファーで 返される値 VerFindFile は、 VerInstallFile 関数の後続の呼び出しで使用されます。
構文
DWORD VerFindFileA(
[in] DWORD uFlags,
[in] LPCSTR szFileName,
[in, optional] LPCSTR szWinDir,
[in] LPCSTR szAppDir,
[out] LPSTR szCurDir,
[in, out] PUINT puCurDirLen,
[out] LPSTR szDestDir,
[in, out] PUINT puDestDirLen
);
パラメーター
[in] uFlags
型: DWORD
このパラメーターには、次の値を指定できます。 他のすべてのビットは予約されています。
値 | 意味 |
---|---|
|
ソース ファイルは、複数のアプリケーションで共有できます。 アプリケーションはこの情報を使用して、ファイルのコピー先を決定できます。 |
[in] szFileName
型: LPCTSTR
インストールするファイルの名前。 パスではなく、ファイル名と拡張子のみを含めます。
[in, optional] szWinDir
型: LPCTSTR
Windows が実行されているか、実行されるディレクトリ。 この文字列は、 GetWindowsDirectory 関数によって返されます。
[in] szAppDir
型: LPCTSTR
インストール プログラムが一連の関連ファイルをインストールするディレクトリ。 インストール プログラムがアプリケーションをインストールしている場合、これはアプリケーションが存在するディレクトリです。 このパラメーターは、特に指定がない限り、アプリケーションの現在のディレクトリも指します。
[out] szCurDir
種類: LPWSTR
インストールされているファイルの現在のバージョンへのパスを受け取るバッファー。 パスは 0 で終わる文字列です。 現在のバージョンがインストールされていない場合、バッファーには長さ 0 の文字列が含まれます。 バッファーは 少なくとも_MAX_PATH 文字の長さにする必要がありますが、これは必須ではありません。
[in, out] puCurDirLen
型: PUINT
szCurDir バッファーの長さ。 このポインターは NULL にすることはできません。
関数が戻ると、 lpuCurDirLen には、 szCurDir で返されるデータのサイズ (終端の null 文字を含む) が文字単位で格納されます。 バッファーが小さすぎてすべてのデータを格納できない場合、 lpuCurDirLen はパスを保持するために必要なバッファーのサイズになります。
[out] szDestDir
種類: LPTSTR
VerFindFile によって推奨されるインストール場所へのパスを受け取るバッファー。 パスは 0 で終わる文字列です。 バッファーは 少なくとも_MAX_PATH 文字の長さにする必要がありますが、これは必須ではありません。
[in, out] puDestDirLen
型: PUINT
szDestDir バッファーの長さを指定する変数へのポインター。 このポインターは NULL にすることはできません。
関数が戻ると、 lpuDestDirLen には、 szDestDir で返されるデータのサイズ (文字単位) が含まれます(終端の null 文字を含む)。 バッファーが小さすぎてすべてのデータを格納できない場合、 lpuDestDirLen はパスを保持するために必要なバッファーのサイズになります。
戻り値
型: DWORD
戻り値は、ファイルの状態を示すビットマスクです。 これは、次の値のなかから 1 つまたは複数を指定できます。 その他の値はすべて予約されています。
リターン コード/値 | Description |
---|---|
|
現在インストールされているファイルのバージョンが推奨先にありません。 |
|
システムは、現在インストールされているバージョンのファイルを使用しています。したがって、ファイルを上書きまたは削除することはできません。 |
|
少なくとも 1 つのバッファーが小さすぎて、対応する文字列を含められなかった。 アプリケーションでは、出力バッファーをチェックして、どのバッファーが小さすぎたかを判断する必要があります。 |
注釈
この関数は、16 ビット、32 ビット、および 64 ビットのファイル イメージで動作します。
VerFindFile は、 OpenFile 関数を使用して、指定したファイルのコピーを検索します。 ただし、指定した Windows ディレクトリからシステム ディレクトリを決定するか、パスを検索します。
dwFlags パラメーターが、ファイルが (VFFF_ISSHAREDFILEではなく) このアプリケーションに対してプライベートであることを示している場合、VerFindFile では、アプリケーションのディレクトリにファイルをインストールすることをお勧めします。 それ以外の場合、システムがシステムの共有コピーを実行している場合は、Windows ディレクトリにファイルをインストールすることをお勧めします。 システムがシステムのプライベート・コピーを実行している場合は、システム・ディレクトリーにファイルをインストールすることをお勧めします。
注意
winver.h ヘッダーは、VerFindFile をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winver.h (Windows.h を含む) |
Library | Version.lib |
[DLL] | Api-ms-win-core-version-l1-1-0.dll |
関連項目
概念
その他のリソース
リファレンス