RetrieveUrlCacheEntryStreamW 函数 (wininet.h)
提供最高效且与实现无关的方式来访问缓存数据。
语法
HANDLE RetrieveUrlCacheEntryStreamW(
[in] LPCWSTR lpszUrlName,
[out] LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo,
[in, out] LPDWORD lpcbCacheEntryInfo,
[in] BOOL fRandomRead,
[in] DWORD dwReserved
);
参数
[in] lpszUrlName
指向包含缓存项的源名称的以 null 结尾的字符串的指针。 这必须是唯一的名称。 名称字符串不应包含任何转义字符。
[out] lpCacheEntryInfo
指向接收有关缓存项信息的 INTERNET_CACHE_ENTRY_INFO 结构的指针。
[in, out] lpcbCacheEntryInfo
指向一个变量的指针,该变量指定 lpCacheEntryInfo 缓冲区的大小(以字节为单位)。 当函数返回时,变量将接收复制到缓冲区的字节数或缓冲区所需的大小(以字节为单位)。 请注意,此缓冲区大小必须同时容纳 INTERNET_CACHE_ENTRY_INFO 结构和紧随其后的关联字符串。
[in] fRandomRead
流是否为随机访问打开。 将标志设置为 TRUE 打开流进行随机访问。
[in] dwReserved
此参数是保留的,必须为 0。
返回值
如果函数成功,该函数将返回一个有效的句柄,以便在 ReadUrlCacheEntryStream 和 UnlockUrlCacheEntryStream 函数中使用。
如果函数失败,它将返回 NULL 。 若要获取扩展的错误信息,请调用 GetLastError。
可能的错误值包括以下内容。
返回代码 | 描述 |
---|---|
|
在缓存存储中找不到由源名称指定的缓存项。 |
|
|
言论
RetrieveUrlCacheEntryStream 不执行任何 URL 分析,因此,即使缓存资源已缓存,也不会在缓存中找到包含定位点(#)的 URL。 例如,如果传递 URL http://adatum.com/example.htm#sample,即使 http://adatum.com/example.htm 在缓存中,函数也会返回ERROR_FILE_NOT_FOUND。
缓存不需要文件形式的 URL 数据的客户端应使用此函数访问特定 URL 的数据。
与 WinINet API 的其他所有方面一样,不能从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。
注意
wininet.h 标头将 RetrieveUrlCacheEntryStream 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | wininet.h |
库 | Wininet.lib |
DLL | Wininet.dll |