共用方式為


RetrieveUrlCacheEntryFileW 函式 (wininet.h)

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

語法

BOOL RetrieveUrlCacheEntryFileW(
  [in]      LPCWSTR                      lpszUrlName,
  [out]     LPINTERNET_CACHE_ENTRY_INFOW 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。 可能的錯誤值包括:

傳回碼 描述
ERROR_FILE_NOT_FOUND
在快取儲存體中找不到來源名稱指定的快取專案。
ERROR_INSUFFICIENT_BUFFER
lpCacheEntryInfo緩衝區的大小,如lpdwCacheEntryInfoBufferSize所指定,不足以包含所有資訊。 在 lpdwCacheEntryInfoBufferSize中傳回的值會指出取得所有資訊所需的緩衝區大小。

備註

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

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

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

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

注意

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

規格需求

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

另請參閱

Caching

WinINet 函式