CommitUrlCacheEntryW 函数 (wininet.h)

将数据存储在 Internet 缓存中的指定文件中,并将其与指定的 URL 相关联。

语法

BOOL CommitUrlCacheEntryW(
  [in] LPCWSTR  lpszUrlName,
  [in] LPCWSTR  lpszLocalFileName,
  [in] FILETIME ExpireTime,
  [in] FILETIME LastModifiedTime,
  [in] DWORD    CacheEntryType,
  [in] LPWSTR   lpszHeaderInfo,
  [in] DWORD    cchHeaderInfo,
  [in] LPCWSTR  lpszFileExtension,
  [in] LPCWSTR  lpszOriginalUrl
);

参数

[in] lpszUrlName

指向包含缓存项的源名称的字符串变量的指针。 名称字符串必须是唯一的,并且不应包含任何转义字符。

[in] lpszLocalFileName

指向包含要缓存的本地文件名称的字符串变量的指针。 这应与 CreateUrlCacheEntryW返回的名称相同。

[in] ExpireTime

FILETIME 结构,其中包含正在缓存的文件的过期日期和时间(以格林威治平均值时间为单位)。 如果过期日期和时间未知,请将此参数设置为零。

[in] LastModifiedTime

FILETIME 结构,该结构包含缓存的 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] lpszHeaderInfo

指向包含标头信息的缓冲区的指针。 如果此参数未 NULL,则标头信息将被视为在 INTERNET_CACHE_ENTRY_INFO 结构的 lpHeaderInfo 成员中返回的 URL 的扩展属性。

[in] cchHeaderInfo

标头信息的大小,TCHAR。 如果 lpHeaderInfoNULL,则假定此值指示存储标头信息的缓冲区的大小。 应用程序可以将标头作为数据的一部分进行维护,并为 lpHeaderInfo提供 NULL 值,并提供 cchHeaderInfo

[in] lpszFileExtension

此参数是保留的,必须 NULL

[in] lpszOriginalUrl

指向包含原始 URL 的字符串的指针(如果发生了重定向)。

返回值

如果成功,则返回 TRUE;否则返回 FALSE。 若要获取扩展的错误信息,请调用 GetLastError。 下面是可能的错误值。

返回代码 描述
ERROR_DISK_FULL
缓存存储已满。
ERROR_FILE_NOT_FOUND
找不到指定的本地文件。

言论

STICKY_CACHE_ENTRY类型用于使缓存条目免于清理。 使用 CommitUrlCacheEntryW 设置的条目的默认豁免时间为 10 分钟。 可以通过在 调用 setUrlCacheEntryInfo 函数的 INTERNET_CACHE_ENTRY_INFO 结构中设置过期时间参数来更改豁免时间。

如果缓存存储已满,CommitUrlCacheEntryW 调用缓存清理来为此新文件提供空间。 如果缓存项已存在,则函数会覆盖该条目(如果未使用)。 当检索到 RetrieveUrlCacheEntryStreamRetrieveUrlCacheEntryFile时,将使用该条目。

将条目添加到缓存的客户端应将标头至少设置为“HTTP/1.0 200 OK\r\n\r\n”;否则,Microsoft Internet Explorer 和其他客户端应用程序应忽略该条目。

有关 调用 CreateUrlCacheEntryW的示例代码,请参阅 缓存

与 WinINet API 的其他所有方面一样,不能从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。

注意 WinINet 不支持服务器实现。 此外,不应从服务使用它。 对于服务器实现或服务,请使用 Microsoft Windows HTTP 服务(WinHTTP)
 

注意

wininet.h 标头将 CommitUrlCacheEntry 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 wininet.h
Wininet.lib
DLL Wininet.dll

另请参阅

缓存

WinINet 函数