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


Функция RetrieveUrlCacheEntryFileA (wininet.h)

Блокирует файл записи кэша, связанный с указанным URL-адресом.

Синтаксис

BOOL RetrieveUrlCacheEntryFileA(
  [in]      LPCSTR                       lpszUrlName,
  [out]     LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo,
  [in, out] LPDWORD                      lpcbCacheEntryInfo,
  [in]      DWORD                        dwReserved
);

Параметры

[in] lpszUrlName

Указатель на строку, содержащую URL-адрес ресурса, связанного с записью кэша. Это имя должно быть уникальным. Строка имени не должна содержать escape-символы.

[out] lpCacheEntryInfo

Указатель на буфер сведений о входе в кэш. Если буфера недостаточно, эта функция возвращает ERROR_INSUFFICIENT_BUFFER и задает для lpdwCacheEntryInfoBufferSize необходимое количество байтов.

[in, out] lpcbCacheEntryInfo

Указатель на долгочисленную переменную без знака, указывающую размер буфера lpCacheEntryInfo в байтах. При возврате функции переменная содержит размер (в байтах) фактического используемого буфера или количество байтов, необходимых для получения файла записи кэша. Вызывающий объект должен проверка возвращаемое значение в этом параметре. Если возвращаемый размер меньше или равен переданного размера, возвращаются все соответствующие данные.

[in] dwReserved

Этот параметр зарезервирован и должен иметь значение 0.

Возвращаемое значение

Возвращает значение TRUE в случае успешного выполнения или FALSE в противном случае. Дополнительные сведения об ошибке можно получить, вызвав GetLastError. Возможные значения ошибок:

Код возврата Описание
ERROR_FILE_NOT_FOUND
Запись кэша, указанная именем источника, не найдена в хранилище кэша.
ERROR_INSUFFICIENT_BUFFER
Размер буфера lpCacheEntryInfo , указанный в параметре lpdwCacheEntryInfoBufferSize , не является достаточным для хранения всей информации. Значение, возвращаемое в lpdwCacheEntryInfoBufferSize , указывает размер буфера, необходимый для получения всех сведений.

Комментарии

RetrieveUrlCacheEntryFile не выполняет синтаксический анализ URL-адресов, поэтому URL-адрес, содержащий привязку (#), не будет найден в кэше, даже если ресурс кэширован. Например, если БЫЛ передан URL-адрес http://adatum.com/example.htm#sample , функция вернет ERROR_FILE_NOT_FOUND, даже если http://adatum.com/example.htm находится в кэше.

Файл блокируется для вызывающего абонента при его извлечении; вызывающий объект должен разблокировать файл после завершения работы с файлом. Диспетчер кэша автоматически разблокирует файлы через определенный интервал. Пока файл заблокирован, диспетчер кэша не удалит файл из кэша. Важно отметить, что эта функция может работать или не может работать эффективно в зависимости от внутренней реализации кэша. Например, если данные URL-адреса хранятся в упакованном файле, который содержит данные для других URL-адресов, кэш создаст копию данных в файл во временном каталоге, поддерживаемом кэшем. Кэш в конечном итоге удалит копию. Рекомендуется использовать эту функцию только в ситуациях, когда для запуска приложения требуется имя файла. В большинстве случаев следует использовать RetrieveUrlCacheEntryStream и связанные функции потока.

Как и все другие аспекты API WinINet, эту функцию нельзя безопасно вызывать из библиотеки DllMain или из конструкторов и деструкторов глобальных объектов.

Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для серверных реализаций или служб используйте службы Microsoft Windows HTTP (WinHTTP).
 

Примечание

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

Требования

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

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

Кэширование

Функции WinINet