RetrieveUrlCacheEntryFileA 函数 (wininet.h)
锁定与指定 URL 关联的缓存条目文件。
语法
BOOL RetrieveUrlCacheEntryFileA(
[in] LPCSTR lpszUrlName,
[out] LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo,
[in, out] LPDWORD lpcbCacheEntryInfo,
[in] DWORD dwReserved
);
参数
[in] lpszUrlName
指向包含与缓存项关联的资源的 URL 的字符串的指针。 此名称必须独一无二。 名称字符串不应包含任何转义字符。
[out] lpCacheEntryInfo
指向缓存条目信息缓冲区的指针。 如果缓冲区不足,此函数将返回ERROR_INSUFFICIENT_BUFFER并将 lpdwCacheEntryInfoBufferSize 设置为所需的字节数。
[in, out] lpcbCacheEntryInfo
指向无符号长整数变量的指针,该变量指定 lpCacheEntryInfo 缓冲区的大小(以字节为单位)。 当函数返回时,变量包含使用的实际缓冲区的大小(以字节为单位),或者检索缓存入口文件所需的字节数。 调用方应检查此参数中的返回值。 如果返回大小小于或等于传入的大小,则返回所有相关数据。
[in] dwReserved
此参数是保留的,必须为 0。
返回值
如果成功,则返回 TRUE ,否则返回 FALSE 。 要获得更多的错误信息,请调用 GetLastError。 可能的错误值包括:
返回代码 | 说明 |
---|---|
|
在缓存存储中找不到源名称指定的缓存项。 |
|
lpdwCacheEntryInfoBufferSize 指定的 lpCacheEntryInfo 缓冲区的大小不足以包含所有信息。 lpdwCacheEntryInfoBufferSize 中返回的值指示获取所有信息所需的缓冲区大小。 |
注解
RetrieveUrlCacheEntryFile 不执行任何 URL 分析,因此,即使缓存了资源,也不会在缓存中找到包含定位点 (#) 的 URL。 例如,如果传递了 URL http://adatum.com/example.htm#sample ,则函数将返回ERROR_FILE_NOT_FOUND,即使 http://adatum.com/example.htm 位于缓存中。
检索文件时,该文件被锁定给调用方;调用方应在调用方用完文件后解锁文件。 缓存管理器在一定间隔后自动解锁文件。 锁定文件时,缓存管理器不会从缓存中删除该文件。 请务必注意,此函数可能有效执行,也可能不一定有效,具体取决于缓存的内部实现。 例如,如果 URL 数据存储在包含其他 URL 数据的打包文件中,缓存会将数据复制到由缓存维护的临时目录中的文件。 缓存最终将删除副本。 建议仅在需要文件名来启动应用程序的情况下使用此函数。 在大多数情况下,应使用 RetrieveUrlCacheEntryStream 和关联的流函数。
与 WinINet API 的所有其他方面一样,无法从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。
注意
wininet.h 标头将 RetrieveUrlCacheEntryFile 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | wininet.h |
Library | Wininet.lib |
DLL | Wininet.dll |