commitUrlCacheEntryA 函数 (wininet.h)

将数据存储在 Internet 缓存中的指定文件中,并将其与指定的 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 结构,其中包含格林威治 (到期日期和时间,平均时间) 正在缓存的文件。 如果过期日期和时间未知,请将此参数设置为零。

[in] LastModifiedTime

FILETIME 结构,其中包含 Greenwich 中上次修改的日期和时间 (平均时间) 正在缓存的 URL。 如果上次修改的日期和时间未知,请将此参数设置为零。

[in] CacheEntryType

一个位掩码,指示缓存项的类型及其属性。 缓存条目类型包括: (URLHISTORY_CACHE_ENTRY) 历史记录条目、 (COOKIE_CACHE_ENTRY) cookie 条目和普通缓存内容 (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,则假定此值指示存储标头信息的缓冲区的大小。 应用程序可以将标头维护为数据的一部分,并提供 cchHeaderInfo 以及 lpHeaderInfoNULL 值。

[in] lpszFileExtension

此参数是保留的,必须为 NULL

[in] lpszOriginalUrl

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

返回值

如果成功,则返回 TRUE ,否则返回 FALSE 。 要获得更多的错误信息,请调用 GetLastError。 下面是可能的错误值。

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

注解

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

如果缓存存储已满, 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
Library Wininet.lib
DLL Wininet.dll

另请参阅

缓存

WinINet 函数