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。
傳回值
如果函式成功,函式會傳回有效的句柄,以用於 ReadUrlCacheEntryStream 和 UnlockUrlCacheEntryStream 函式。
如果函式失敗,它會 NULL傳回 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
可能的錯誤值包括下列專案。
傳回碼 | 描述 |
---|---|
|
在快取記憶體中找不到來源名稱指定的快取專案。 |
|
lpCacheEntryInfo 的大小,如 lpdwCacheEntryInfoBufferSize 所指定,不足以包含所有資訊。 lpdwCacheEntryInfoBufferSize 中傳回的值 表示包含所有資訊所需的緩衝區大小。 |
言論
RetrieveUrlCacheEntryStream 不會進行任何 URL 剖析,因此即使快取資源已快取,也不會在快取中找到包含錨點的 URL。 例如,如果傳遞 URL http://adatum.com/example.htm#sample,即使 http://adatum.com/example.htm 位於快取中,函式仍會傳回ERROR_FILE_NOT_FOUND。
不需要檔案格式之 URL 資料的快取客戶端應該使用此函式來存取特定 URL 的數據。
如同 WinINet API 的其他所有層面,無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。
注意
wininet.h 標頭會根據 UNICODE 預處理器常數的定義,將 RetrieveUrlCacheEntryStream 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | wininet.h |
連結庫 | Wininet.lib |
DLL | Wininet.dll |