Share via


RetrieveUrlCacheEntryStreamA 函式 (wininet.h)

提供最有效率且與實作無關的方式來存取快取資料。

語法

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

參數

[in] lpszUrlName

包含快取專案來源名稱之 Null 終止字串的指標。 此名稱必須是唯一的。 名稱字串不應包含任何逸出字元。

[out] lpCacheEntryInfo

接收快取專案相關資訊 之INTERNET_CACHE_ENTRY_INFO 結構的指標。

[in, out] lpcbCacheEntryInfo

指定 lpCacheEntryInfo 緩衝區大小之變數的指標,以位元組為單位。 當函式傳回時,變數會收到複製到緩衝區的位元組數目,或緩衝區的必要大小,以位元組為單位。 請注意,此緩衝區大小必須同時容納 INTERNET_CACHE_ENTRY_INFO 結構和緊接在它之後的相關聯字串。

[in] fRandomRead

資料流程是否開啟以供隨機存取。 將 旗標設定為 TRUE ,以開啟串流以進行隨機存取。

[in] dwReserved

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

傳回值

如果函式成功,函式會傳回有效的控制碼,以用於 ReadUrlCacheEntryStreamUnlockUrlCacheEntryStream 函式。

如果函式失敗,它會傳回 Null。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

可能的錯誤值包括下列專案。

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

備註

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

快取不需要檔案格式 URL 資料的快取用戶端,應該使用此函式來存取特定 URL 的資料。

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

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

注意

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

規格需求

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

另請參閱

Caching

WinINet 函式