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
此參數可以是下列值。 所有其他位都會保留。
價值 | 意義 |
---|---|
|
來源檔案可由多個應用程式共用。 應用程式可以使用這項資訊來判斷檔案應該複製的位置。 |
[in] szFileName
類型:LPCTSTR
要安裝的檔名。 只包含檔名和擴展名,而不是路徑。
[in, optional] szWinDir
類型:LPCTSTR
Windows 正在執行或將要執行的目錄。 此字串是由 getWindowsDirectory 函式
[in] szAppDir
類型:LPCTSTR
安裝程式正在安裝一組相關檔案的目錄。 如果安裝程式正在安裝應用程式,這是應用程式所在的目錄。 除非另有指定,否則此參數也會指向應用程式的目前目錄。
[out] szCurDir
類型:LPWSTR
緩衝區,接收所安裝之檔案目前版本的路徑。 路徑是以零結尾的字串。 如果未安裝目前的版本,緩衝區將會包含長度為零的字串。 緩衝區長度至少應為 _MAX_PATH 個字元,但並非必要。
[in, out] puCurDirLen
類型:PUINT
szCurDir 緩衝區的長度。 這個指標不得 NULL。
當函式傳回時,lpuCurDirLen 包含 szCurDir中所傳回數據的大小,包括終止的 Null 字元。 如果緩衝區太小而無法包含所有數據,lpuCurDirLen 將是保存路徑所需的緩衝區大小。
[out] szDestDir
類型:LPTSTR
緩衝區,接收 VerFindFile所建議安裝位置的路徑。 路徑是以零結尾的字串。 緩衝區長度至少應為 _MAX_PATH 個字元,但並非必要。
[in, out] puDestDirLen
類型:PUINT
變數的指標,指定 szDestDir 緩衝區
當函式傳回時,lpuDestDirLen 包含 szDestDir中所傳回數據的大小,包括終止的 Null 字元。 如果緩衝區太小而無法包含所有數據,lpuDestDirLen 將是保存路徑所需的緩衝區大小。
傳回值
類型:DWORD
傳回值是表示檔案狀態的位掩碼。 它可以是下列其中一或多個值。 所有其他值都會保留。
傳回碼/值 | 描述 |
---|---|
|
目前安裝的檔案版本不在建議的目的地中。 |
|
系統正在使用目前安裝的檔案版本;因此,無法覆寫或刪除檔案。 |
|
至少有一個緩衝區太小,無法包含對應的字串。 應用程式應該檢查輸出緩衝區,以判斷哪個緩衝區太小。 |
言論
此函式適用於16位、32位和64位檔案映像。
VerFindFile 使用 openFile 函式來搜尋指定檔案的複本。 不過,它會從指定的 Windows 目錄判斷系統目錄,或搜尋路徑。
如果 dwFlags 參數指出此應用程式是私人的檔案(而非 VFFF_ISSHAREDFILE),VerFindFile 建議在應用程式的目錄中安裝檔案。 否則,如果系統正在執行系統的共用複本,函式建議在 Windows 目錄中安裝檔案。 如果系統正在執行系統的私人複本,函式建議在系統目錄中安裝檔案。
注意
winver.h 標頭會將 VerFindFile 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | winver.h (包括 Windows.h) |
連結庫 | Version.lib |
DLL | Api-ms-win-core-version-l1-1-0.dll |
另請參閱
概念
其他資源
參考