ファイルのインストール先を調べる
Declare Function VerFindFile Lib "version.dll" Alias "VerFindFileA" _
(ByVal dwFlags As Long, ByVal szFileName As String, ByVal szWinDir As String, _
ByVal szAppDir As String, ByVal szCurrDir As String, ByVal lpuCurDirLen As Long, _
ByVal szDestDir As String, ByVal lpuDestDirLen As Long) As Long
Declare Function VerFindFile Lib "version.dll" Alias "VerFindFileA" _
(ByVal dwFlags As Integer, ByVal szFileName As String, ByVal szWinDir As String, _
ByVal szAppDir As String, ByVal szCurrDir As String, ByVal lpuCurDirLen As Integer, _
ByVal szDestDir As String, ByVal lpuDestDirLen As Integer) As Integer
DWORD VerFindFile(
DWORD dwFlags,
LPTSTR szFileName,
LPTSTR szWinDir,
LPTSTR szAppDir,
LPTSTR szCurDir,
PUINT lpuCurDirLen,
LPTSTR szDestDir,
PUINT lpuDestDirLen
);
引数
dwFlags
関数の動作条件を指定する定数szFileName
インストールするファイル名(パス名を含まない)szWinDir
Windowsディレクトリ名szAppDir
インストール先のディレクトリ名szCurrDir
(戻り値)既存バージョンのあるディレクトリ名を受け取るバッファlpuCurDirLen
既存バージョンがないときは、長さ0の文字列が戻る
同、バッファのバイト数szDestDir
(戻り値)インストール先のディレクトリ名を受け取るバッファlpuDestDirLen
MAX_PATH(=256)以上を確保すること
同、バッファのバイト数戻り値
正常終了のとき ファイルの状況を示す定数の組み合わせ備考
エラーのとき 0
バージョン管理が必要なファイル(DLLなど)をシステムにインストールするときdwFlagsの定数
同じファイルの別のバージョンが存在するかどうかを調べて
この関数を実行して戻ったインストール先のディレクトリ名に基づいてVerInstallFile()関数を実行する
VFFF_ISSHAREDFILE = &H1 共有ファイルである戻り値の定数
0 共有ファイルではない
VFF_CURENDEST = &H1 既存バージョンのファイルがszAppDirで指定したディレクトリにない
VFF_FILEINUSE = &H2 既存ファイルは使用中である
VFF_BUFFOOSMALL = &H4 szCurreDir、またはszDestDirのバッファが小さい