RetrieveUrlCacheEntryFileW 函数 (wininet.h)
锁定与指定 URL 关联的缓存条目文件。
语法
BOOL RetrieveUrlCacheEntryFileW(
[in] LPCWSTR lpszUrlName,
[out] LPINTERNET_CACHE_ENTRY_INFOW 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。 可能的错误值包括:
返回代码 | 描述 |
---|---|
|
在缓存存储中找不到由源名称指定的缓存项。 |
|
|
言论
RetrieveUrlCacheEntryFile 不执行任何 URL 分析,因此,即使缓存资源已缓存,也不会在缓存中找到包含定位点(#)的 URL。 例如,如果传递 URL http://adatum.com/example.htm#sample,即使 http://adatum.com/example.htm 位于缓存中,函数也会返回ERROR_FILE_NOT_FOUND。
检索调用方时,该文件被锁定;调用方应在调用方完成该文件后解锁该文件。 缓存管理器在特定间隔后自动解锁文件。 锁定文件时,缓存管理器不会从缓存中删除该文件。 请务必注意,根据缓存的内部实现,此函数可能或可能无法高效执行。 例如,如果 URL 数据存储在包含其他 URL 数据的打包文件中,缓存会将数据复制到缓存维护的临时目录中的文件。 缓存最终将删除副本。 建议仅在需要文件名来启动应用程序的情况下使用此函数。 RetrieveUrlCacheEntryStream 和关联的流函数应在大多数情况下使用。
与 WinINet API 的其他所有方面一样,不能从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。
注意
wininet.h 标头将 RetrieveUrlCacheEntryFile 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | wininet.h |
库 | Wininet.lib |
DLL | Wininet.dll |