共用方式為


RetrieveUrlCacheEntryFileA 函式 (wininet.h)

鎖定與指定 URL 相關聯的快取項目檔案。

語法

BOOL RetrieveUrlCacheEntryFileA(
  [in]      LPCSTR                       lpszUrlName,
  [out]     LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo,
  [in, out] LPDWORD                      lpcbCacheEntryInfo,
  [in]      DWORD                        dwReserved
);

參數

[in] lpszUrlName

字串的指標,其中包含與快取專案相關聯的資源 URL。 此名稱必須是唯一的。 名稱字串不應包含任何逸出字元。

[out] lpCacheEntryInfo

快取專案信息緩衝區的指標。 如果緩衝區不足,此函式會傳回ERROR_INSUFFICIENT_BUFFER,並將 lpdwCacheEntryInfoBufferSize 設定為所需的位元元組數目。

[in, out] lpcbCacheEntryInfo

不帶正負號長整數變數的指標,指定 lpCacheEntryInfo 緩衝區的大小,以位元組為單位。 當函式傳回時,變數會包含實際緩衝區的大小,以位元組為單位,或是擷取快取項目檔所需的位元組數目。 呼叫端應該檢查此參數中的傳回值。 如果傳回大小小於或等於傳入的大小,則會傳回所有相關數據。

[in] dwReserved

此參數是保留的,而且必須是 0。

傳回值

如果成功,則傳回 TRUE ,否則傳回 FALSE 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 可能的錯誤值包括:

傳回碼 Description
ERROR_FILE_NOT_FOUND
在快取記憶體中找不到來源名稱所指定的快取專案。
ERROR_INSUFFICIENT_BUFFER
lpCacheEntryInfo 緩衝區的大小,如 lpdwCacheEntryInfoBufferSize 所指定,不足以包含所有資訊。 在 lpdwCacheEntryInfoBufferSize 中傳回的值表示取得所有資訊所需的緩衝區大小。

備註

RetrieveUrlCacheEntryFile 不會進行任何 URL 剖析,因此即使快取資源已快取,也找不到包含錨點的 URL (#) 。 例如,如果傳遞 URL http://adatum.com/example.htm#sample ,即使 http://adatum.com/example.htm 位於快取中,函式還是會傳回ERROR_FILE_NOT_FOUND。

擷取檔案時,呼叫端會鎖定檔案;呼叫端應該在呼叫端完成檔案之後解除鎖定檔案。 快取管理員會在特定間隔後自動解除鎖定檔案。 鎖定檔案時,快取管理員不會從快取中移除檔案。 請務必注意,根據快取的內部實作而定,此函式可能會或可能不會有效率地執行。 例如,如果 URL 資料儲存在包含其他 URL 資料的封裝檔案中,快取會將數據複本複製到快取所維護暫存目錄中的檔案。 快取最終會刪除複本。 建議只有在需要檔名才能啟動應用程式的情況下,才使用此函式。 擷取UrlCacheEntryStream 和相關聯的數據流函式應該在大部分情況下使用。

就像 WinINet API 所有其他層面一樣,您無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。

注意 WinINet 不支援伺服器實作。 此外,不應該從服務使用它。 對於伺服器實作或服務,請使用 Microsoft Windows HTTP Services (WinHTTP)
 

注意

wininet.h 標頭會將 RetrieveUrlCacheEntryFile 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 wininet.h
程式庫 Wininet.lib
Dll Wininet.dll

另請參閱

Caching

WinINet 函式