次の方法で共有


VerInstallFileA 関数 (winver.h)

VerFindFile 関数から返された情報に基づいて、指定したファイルをインストールします。 VerInstallFile は、必要に応じてファイルを展開し、一意のファイル名を割り当て、古いファイルなどのエラーをチェックします。

構文

DWORD VerInstallFileA(
  [in]      DWORD  uFlags,
  [in]      LPCSTR szSrcFileName,
  [in]      LPCSTR szDestFileName,
  [in]      LPCSTR szSrcDir,
  [in]      LPCSTR szDestDir,
  [in]      LPCSTR szCurDir,
  [out]     LPSTR  szTmpFile,
  [in, out] PUINT  puTmpFileLen
);

パラメーター

[in] uFlags

型: DWORD

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

価値 意味
VIFF_FORCEINSTALL
0x0001
バージョン番号の不一致に関係なく、ファイルをインストールします。 この関数は、インストール中の物理エラーのみをチェックします。
VIFF_DONTDELETEOLD
0x0002
以前にインストールしたファイルがコピー先ディレクトリにない場合は、以前にインストールしたファイルを削除せずにファイルをインストールします。

[in] szSrcFileName

型: LPCTSTR

インストールするファイルの名前。 これは、szSrcDir パラメーターが指すディレクトリ内のファイル名です。ファイル名には、パスではなく、ファイル名と拡張子のみを含めることができます。

[in] szDestFileName

型: LPCTSTR

VerInstallFile 名前は、インストール時に新しいファイルを提供します。 このファイル名は、szSrcFileName ディレクトリ内のファイル名とは異なる場合があります。 新しい名前には、パスではなく、ファイル名と拡張子のみを含める必要があります。

[in] szSrcDir

型: LPCTSTR

ファイルが見つかるディレクトリの名前。

[in] szDestDir

型: LPCTSTR

ファイルをインストールするディレクトリの名前。 VerFindFile は、szDestDir パラメーターでこの値を返します。

[in] szCurDir

型: LPCTSTR

このファイルの既存のバージョンが見つかるディレクトリの名前。 VerFindFile は、szCurDir パラメーターでこの値を返します。

[out] szTmpFile

型: LPTSTR

ソース ファイルの一時コピーの名前。 バッファーの長さは少なくとも _MAX_PATH 文字にする必要がありますが、これは必須ではなく、入力時には空にする必要があります。

[in, out] puTmpFileLen

型: PUINT

szTmpFile バッファーの長さ。 このポインターは NULLすることはできません。

関数が戻ると、lpuTmpFileLen は、szTmpFileで返されたデータのサイズ (終端の null 文字を含む) を文字単位で受け取ります。 バッファーが小さすぎてすべてのデータを格納できない場合、lpuTmpFileLen は、データを保持するために必要なバッファーのサイズになります。

戻り値

型: DWORD

戻り値は、例外を示すビットマスクです。 次の値のうち 1 つ以上を指定できます。 その他の値はすべて予約されています。

戻りコード/値 形容
VIF_ACCESSVIOLATION
0x00000200L
アクセス違反のため、読み取り、作成、削除、または名前変更の操作が失敗しました。
VIF_BUFFTOOSMALL
0x00040000L
szTmpFile バッファーが小さすぎて、一時ソース ファイルの名前が格納されませんでした。 関数から制御が戻ると、lpuTmpFileLen には、ファイル名を保持するために必要なバッファーのサイズが格納されます。
VIF_CANNOTCREATE
0x00000800L
関数は一時ファイルを作成できません。 特定のエラーは、別のフラグで記述できます。
VIF_CANNOTDELETE
0x00001000L
この関数は、コピー先ファイルを削除することも、別のディレクトリにある既存のバージョンのファイルを削除することもできません。 VIF_TEMPFILE ビットが設定されている場合、インストールに失敗し、コピー先ファイルを削除できない可能性があります。
VIF_CANNOTDELETECUR
0x00004000L
ファイルの既存のバージョンを削除できず、VIFF_DONTDELETEOLD が指定されませんでした。
VIF_CANNOTLOADCABINET
0x00100000L
この関数はキャビネット ファイルを読み込めません。
VIF_CANNOTLOADLZ32
0x00080000L
関数は圧縮ファイルを読み込めません。
VIF_CANNOTREADDST
0x00020000L
関数は、コピー先 (既存の) ファイルを読み取ることができません。 これにより、関数はファイルの属性を調べなくなります。
VIF_CANNOTREADSRC
0x00010000L
関数はソース ファイルを読み取ることができません。 これは、パスが正しく指定されていないことを意味する可能性があります。
VIF_CANNOTRENAME
0x00002000L
関数は一時ファイルの名前を変更できませんが、コピー先ファイルは既に削除されています。
VIF_DIFFCODEPG
0x00000010L
新しいファイルには、現在実行中のシステムのバージョンでは表示できないコード ページが必要です。 このエラーは、VIFF_FORCEINSTALL フラグを設定 VerInstallFile を呼び出すことによってオーバーライドできます。
VIF_DIFFLANG
0x00000008L
新しいファイルと既存のファイルの言語またはコード ページの値が異なります。 このエラーは、VIFF_FORCEINSTALL フラグを設定 VerInstallFile をもう一度呼び出すことによってオーバーライドできます。
VIF_DIFFTYPE
0x00000020L
新しいファイルの種類、サブタイプ、またはオペレーティング システムは、既存のファイルとは異なります。 このエラーは、VIFF_FORCEINSTALL フラグを設定 VerInstallFile をもう一度呼び出すことによってオーバーライドできます。
VIF_FILEINUSE
0x00000080L
既存のファイルはシステムによって使用されており、削除できません。
VIF_MISMATCH
0x00000002L
新しいファイルと既存のファイルは、1 つ以上の属性で異なります。 このエラーは、VIFF_FORCEINSTALL フラグを設定 VerInstallFile をもう一度呼び出すことによってオーバーライドできます。
VIF_OUTOFMEMORY
0x00008000L
メモリ不足のため、関数は要求された操作を完了できません。 一般に、これは、アプリケーションが圧縮ファイルを拡張しようとしてメモリが不足したことを意味します。
VIF_OUTOFSPACE
0x00000100L
コピー先ドライブのディスク領域が不足しているため、関数は一時ファイルを作成できません。
VIF_SHARINGVIOLATION
0x00000400L
共有違反のため、読み取り、作成、削除、または名前変更の操作が失敗しました。
VIF_SRCOLD
0x00000004L
インストールするファイルが既存のファイルよりも古い。 このエラーは、VIFF_FORCEINSTALL フラグを設定 VerInstallFile をもう一度呼び出すことによってオーバーライドできます。
VIF_TEMPFILE
0x00000001L
新しいファイルの一時コピーは、コピー先ディレクトリにあります。 エラーの原因は、他のフラグに反映されます。
VIF_WRITEPROT
0x00000040L
既存のファイルは書き込み保護されています。 このエラーは、VIFF_FORCEINSTALL フラグを設定 VerInstallFile をもう一度呼び出すことによってオーバーライドできます。

備考

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

VerInstallFile 、ソース ディレクトリからコピー先ディレクトリにファイルをコピーします。 szCurDir が以前のバージョンのファイルがシステムに存在することを示す場合、VerInstallFile はファイルのバージョン スタンプ情報を比較します。 以前にインストールしたファイルのバージョンが新しいバージョンよりも新しい場合、またはファイルの属性が異なる場合 (たとえば、言語が異なる場合)、VerInstallFile は 1 つ以上の回復可能なエラー コードを返

VerInstallFile は、一時ファイルを宛先ディレクトリに残します。 アプリケーションは、エラーをオーバーライドするか、一時ファイルを削除できます。 アプリケーションがエラーをオーバーライドした場合、VerInstallFile は以前にインストールしたバージョンを削除し、一時ファイルの名前を元のファイル名に変更します。

手記

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

必要条件

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

関連項目

概念

リファレンス

VerFindFile

バージョン情報の