CommitUrlCacheEntryA 函式 (wininet.h)

將資料儲存在網際網路快取中指定的檔案中,並將它與指定的 URL 產生關聯。

語法

BOOL CommitUrlCacheEntryA(
  [in] LPCSTR   lpszUrlName,
  [in] LPCSTR   lpszLocalFileName,
  [in] FILETIME ExpireTime,
  [in] FILETIME LastModifiedTime,
  [in] DWORD    CacheEntryType,
  [in] LPBYTE   lpHeaderInfo,
  [in] DWORD    cchHeaderInfo,
  [in] LPCSTR   lpszFileExtension,
  [in] LPCSTR   lpszOriginalUrl
);

參數

[in] lpszUrlName

字串變數的指標,其中包含快取專案的來源名稱。 名稱字串必須是唯一的,且不應包含任何逸出字元。

[in] lpszLocalFileName

字串變數的指標,其中包含要快取之本機檔案的名稱。 這應該與 CreateUrlCacheEntryA傳回的名稱相同。

[in] ExpireTime

FILETIME 結構,其中包含 Greenwich 中到期日期和時間 (,表示要快取之檔案) 的時間。 如果到期日期和時間未知,請將此參數設定為零。

[in] LastModifiedTime

FILETIME 結構,其中包含 Greenwich 中上次修改的日期和時間 (,表示所快取 URL 的時間) 。 如果上次修改的日期和時間未知,請將此參數設定為零。

[in] CacheEntryType

位元遮罩,表示快取專案的類型及其屬性。 快取專案類型包括:記錄專案 (URLHISTORY_CACHE_ENTRY) 、cookie 專案 (COOKIE_CACHE_ENTRY) ,以及一般快取的內容 (NORMAL_CACHE_ENTRY) 。

此參數可以是下列屬性旗標的零或多個,以及下面所列的快取類型旗標。

意義
COOKIE_CACHE_ENTRY
Cookie 快取項目。
EDITED_CACHE_ENTRY
已在外部編輯的快取專案檔案。 此快取專案類型不受清除限制。
NORMAL_CACHE_ENTRY
一般快取項目;可以進行刪除來為新項目復原空間。
SPARSE_CACHE_ENTRY
部分回應快取項目。
STICKY_CACHE_ENTRY
黏性快取項目;豁免於清除。
TRACK_OFFLINE_CACHE_ENTRY
目前未實作。
TRACK_ONLINE_CACHE_ENTRY
目前未實作。
URLHISTORY_CACHE_ENTRY
已瀏覽過的連結快取項目。

[in] lpHeaderInfo

包含標頭資訊的緩衝區指標。 如果這個參數不是Null,標頭資訊會被視為在 INTERNET_CACHE_ENTRY_INFO結構的lpHeaderInfo成員中傳回之 URL 的擴充屬性。

[in] cchHeaderInfo

標頭資訊的大小,以 TCHAR為單位。 如果 lpHeaderInfo 不是 Null,則會假設此值表示儲存標頭資訊的緩衝區大小。 應用程式可以維護標頭作為資料的一部分,並提供cchHeaderInfolpHeaderInfoNull值。

[in] lpszFileExtension

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

[in] lpszOriginalUrl

如果發生重新導向,則為包含原始 URL 的字串指標。

傳回值

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

傳回碼 描述
ERROR_DISK_FULL
快取儲存體已滿。
ERROR_FILE_NOT_FOUND
找不到指定的本機檔案。

備註

STICKY_CACHE_ENTRY類型是用來讓快取專案免于清除。 使用 CommitUrlCacheEntryA 設定之專案的預設豁免時間是十分鐘。 您可以藉由在呼叫 SetUrlCacheEntryInfo函式的INTERNET_CACHE_ENTRY_INFO結構中設定到期時間參數來變更豁免時間。

如果快取儲存體已滿, CommitUrlCacheEntryA 會叫用快取清除,讓這個新檔案有空間。 如果快取專案已經存在,則函式會在未使用中時覆寫專案。 使用 RetrieveUrlCacheEntryStreamRetrieveUrlCacheEntryFile擷取專案時,就會使用該專案。

將專案新增至快取的用戶端應該至少將標頭設定為 「HTTP/1.0 200 OK\r\n\r\n」;否則,Microsoft Internet Explorer 和其他用戶端應用程式應該忽略該專案。

如需呼叫CreateUrlCacheEntryA 的範例程式碼,請參閱快取

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

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

注意

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

規格需求

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

另請參閱

Caching

WinINet 函式