次の方法で共有


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 つ以上を指定できます。 その他の値はすべて予約されています。

戻りコード/値 形容
VFF_CURNEDEST
0x0001
現在インストールされているバージョンのファイルは、推奨先にありません。
VFF_FILEINUSE
0x0002
システムは現在インストールされているバージョンのファイルを使用しています。したがって、ファイルを上書きまたは削除することはできません。
VFF_BUFFTOOSMALL
0x0004
少なくとも 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 の

OpenFile

その他のリソース を する

リファレンス

VerInstallFile

バージョン情報の