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


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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wininet.h
библиотеки Wininet.lib
DLL Wininet.dll

См. также

кэширование

функций WinINet