VerFindFileW 関数 (winver.h)

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

構文

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

このパラメーターには、次の値を指定できます。 その他のビットはすべて予約されています。

意味
VFFF_ISSHAREDFILE
0x0001
ソース ファイルは、複数のアプリケーションで共有できます。 アプリケーションはこの情報を使用して、ファイルをコピーする場所を決定できます。

[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
VFF_CURNEDEST
0x0001
現在インストールされているバージョンのファイルは、推奨される変換先にありません。
VFF_FILEINUSE
0x0002
システムは、現在インストールされているバージョンのファイルを使用しています。したがって、ファイルを上書きまたは削除することはできません。
VFF_BUFFTOOSMALL
0x0004
少なくとも 1 つのバッファーが小さすぎて、対応する文字列が含まれなかった。 アプリケーションでは、出力バッファーをチェックして、どのバッファーが小さすぎたかを判断する必要があります。

注釈

この関数は、16 ビット、32 ビット、64 ビットのファイル イメージで動作します。

VerFindFile、OpenFile 関数を使用して、指定されたファイルのコピーを検索します。 ただし、指定した Windows ディレクトリからシステム ディレクトリを決定するか、パスを検索します。

dwFlags パラメーターが(VFFF_ISSHAREDFILEではなく) このアプリケーションに対してファイルがプライベートであることを示している場合、VerFindFile はアプリケーションのディレクトリにファイルをインストールすることをお勧めします。 それ以外の場合、システムがシステムの共有コピーを実行している場合は、Windows ディレクトリにファイルをインストールすることをお勧めします。 システムがシステムのプライベート・コピーを実行している場合、 関数はシステム・ディレクトリーにファイルをインストールすることを推奨します。

注意

winver.h ヘッダーは、VerFindFile をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winver.h (Windows.h を含む)
Library Version.lib
[DLL] Api-ms-win-core-version-l1-1-0.dll

関連項目

概念

GetWindowsDirectory

OpenFile

その他のリソース

リファレンス

VerInstallFile

バージョン情報