VerFindFileW 関数 (winver.h)
システム内のファイルの別のバージョンが見つからないかどうかに基づいて、ファイルをインストールする場所を決定します。 指定したバッファーで返 VerFindFile
構文
DWORD VerFindFileW(
[in] DWORD uFlags,
[in] LPCWSTR szFileName,
[in, optional] LPCWSTR szWinDir,
[in] LPCWSTR szAppDir,
[out] LPWSTR szCurDir,
[in, out] PUINT puCurDirLen,
[out] LPWSTR 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によって推奨されるインストール場所へのパス
[in, out] puDestDirLen
型: PUINT
szDestDir バッファーの長さを指定する変数へのポインター。 このポインターは NULL
関数から制御が戻るときに、lpuDestDirLen には、szDestDirで返されるデータのサイズ (終端の null 文字を含む) が文字単位で格納されます。 バッファーが小さすぎてすべてのデータを格納できない場合、lpuDestDirLen は、パスを保持するために必要なバッファーのサイズになります。
戻り値
型: DWORD
戻り値は、ファイルの状態を示すビットマスクです。 次の値のうち 1 つ以上を指定できます。 その他の値はすべて予約されています。
戻りコード/値 | 形容 |
---|---|
|
現在インストールされているバージョンのファイルは、推奨先にありません。 |
|
システムは現在インストールされているバージョンのファイルを使用しています。したがって、ファイルを上書きまたは削除することはできません。 |
|
少なくとも 1 つのバッファーが小さすぎて、対応する文字列を含められなかった。 アプリケーションでは、出力バッファーを調べて、どのバッファーが小さすぎたかを判断する必要があります。 |
備考
この関数は、16 ビット、32 ビット、および 64 ビットのファイル イメージで動作します。
VerFindFile は、OpenFile 関数を使用して、指定したファイルのコピーを検索します。 ただし、指定した Windows ディレクトリからシステム ディレクトリを決定するか、パスを検索します。
dwFlags パラメーターが、ファイルがこのアプリケーション (VFFF_ISSHAREDFILEではなく) プライベートであることを示している場合は、VerFindFile アプリケーションのディレクトリにファイルをインストールすることをお勧めします。 それ以外の場合、システムがシステムの共有コピーを実行している場合は、Windows ディレクトリにファイルをインストールすることをお勧めします。 システムがシステムのプライベート・コピーを実行している場合は、システム・ディレクトリーにファイルをインストールすることをお勧めします。
手記
winver.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして VerFindFile を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winver.h (Windows.h を含む) |
ライブラリ | Version.lib |
DLL | Api-ms-win-core-version-l1-1-0.dll |
関連項目
概念
GetWindowsDirectory の
その他のリソース を
リファレンス