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

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

意味
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 バージョンを自動的に選択します。 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

関連項目

概念

GetWindowsDirectory

OpenFile

その他のリソース

リファレンス

VerInstallFile

バージョン情報