Функция 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. Возможные значения ошибок:
Код возврата | Описание |
---|---|
|
Запись кэша, указанная именем источника, не найдена в хранилище кэша. |
|
Размер буфера 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.h определяет RetrieveUrlCacheEntryFile в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wininet.h |
Библиотека | Wininet.lib |
DLL | Wininet.dll |