Поделиться через


Функция 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.

Возможные значения ошибок:

Код возврата Описание
ERROR_FILE_NOT_FOUND
Запись кэша, указанная именем источника, не найдена в хранилище кэша.
ERROR_INSUFFICIENT_BUFFER
Размер 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 не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для серверных реализаций или служб используйте службы Microsoft Windows HTTP (WinHTTP).
 

Примечание

Заголовок wininet.h определяет RetrieveUrlCacheEntryStream в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wininet.h
Библиотека Wininet.lib
DLL Wininet.dll

См. также раздел

Кэширование

Функции WinINet