Функция RetrieveUrlCacheEntryStreamA (wininet.h)
Предоставляет наиболее эффективный и независимый от реализации способ доступа к данным кэша.
Синтаксис
HANDLE RetrieveUrlCacheEntryStreamA(
[in] LPCSTR lpszUrlName,
[out] LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo,
[in, out] LPDWORD lpcbCacheEntryInfo,
[in] BOOL fRandomRead,
[in] DWORD dwReserved
);
Параметры
[in] lpszUrlName
Указатель на строку, завершающуюся значением NULL, которая содержит имя источника записи кэша. Это имя должно быть уникальным. Строка имени не должна содержать escape-символов.
[out] lpCacheEntryInfo
Указатель на структуру INTERNET_CACHE_ENTRY_INFO , которая получает сведения о записи кэша.
[in, out] lpcbCacheEntryInfo
Указатель на переменную, указывающую размер буфера lpCacheEntryInfo (в байтах). При возврате функции переменная получает количество байтов, скопированных в буфер, или требуемый размер буфера (в байтах). Обратите внимание, что этот размер буфера должен вмещать как структуру INTERNET_CACHE_ENTRY_INFO , так и связанные строки, которые хранятся сразу после него.
[in] fRandomRead
Указывает, открыт ли поток для произвольного доступа. Установите для флага значение TRUE , чтобы открыть поток для произвольного доступа.
[in] dwReserved
Этот параметр зарезервирован и должен иметь значение 0.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает допустимый дескриптор для использования в функциях ReadUrlCacheEntryStream и UnlockUrlCacheEntryStream .
Если функция завершается сбоем, она возвращает значение NULL. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Возможные значения ошибок:
Код возврата | Описание |
---|---|
|
Запись кэша, указанная именем источника, не найдена в хранилище кэша. |
|
Размер lpCacheEntryInfo , указанный в lpdwCacheEntryInfoBufferSize , не является достаточным для хранения всех сведений. Значение, возвращаемое в lpdwCacheEntryInfoBufferSize , указывает размер буфера, необходимый для хранения всех сведений. |
Комментарии
RetrieveUrlCacheEntryStream не выполняет синтаксический анализ URL-адресов, поэтому URL-адрес, содержащий привязку (#), не будет найден в кэше, даже если ресурс кэширован. Например, если URL-адрес http://adatum.com/example.htm#sample передан, функция возвращает ERROR_FILE_NOT_FOUND даже если http://adatum.com/example.htm находится в кэше.
Клиенты кэша, которым не нужны данные URL-адреса в виде файла, должны использовать эту функцию для доступа к данным для определенного URL-адреса.
Как и все другие аспекты API WinINet, эту функцию нельзя безопасно вызывать из DllMain или конструкторов и деструкторов глобальных объектов.
Примечание
Заголовок wininet.h определяет RetrieveUrlCacheEntryStream в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wininet.h |
Библиотека | Wininet.lib |
DLL | Wininet.dll |