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


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

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

Синтаксис

BOOL CommitUrlCacheEntryW(
  [in] LPCWSTR  lpszUrlName,
  [in] LPCWSTR  lpszLocalFileName,
  [in] FILETIME ExpireTime,
  [in] FILETIME LastModifiedTime,
  [in] DWORD    CacheEntryType,
  [in] LPWSTR   lpszHeaderInfo,
  [in] DWORD    cchHeaderInfo,
  [in] LPCWSTR  lpszFileExtension,
  [in] LPCWSTR  lpszOriginalUrl
);

Параметры

[in] lpszUrlName

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

[in] lpszLocalFileName

Указатель на строковую переменную, содержащую имя кэшируемого локального файла. Это должно быть то же имя, что и имя, возвращенное CreateUrlCacheEntryW.

[in] ExpireTime

Структура FILETIME, содержащая дату и время окончания срока действия кэшируемого файла (среднее время по Гринвичу). Если дата и время окончания срока действия неизвестны, задайте для этого параметра значение 0.

[in] LastModifiedTime

Структура FILETIME, содержащая дату и время последнего изменения (в среднем по Гринвичу) кэшируемого URL-адреса. Если дата и время последнего изменения неизвестны, задайте для этого параметра нулевое значение.

[in] CacheEntryType

Битовая маска, указывающая тип записи кэша и ее свойства. К типам записей кэша относятся записи журнала (URLHISTORY_CACHE_ENTRY), записи файлов cookie (COOKIE_CACHE_ENTRY) и обычное кэшированное содержимое (NORMAL_CACHE_ENTRY).

Этот параметр может быть равен нулю или нескольким из следующих флагов свойств, а также флагов типа кэша, перечисленных ниже.

Значение Значение
COOKIE_CACHE_ENTRY
Запись в кэше файлов cookie.
EDITED_CACHE_ENTRY
Файл записи кэша, который был изменен извне. Этот тип записи кэша исключается из очистки.
NORMAL_CACHE_ENTRY
Обычная запись кэша; можно удалить, чтобы освободить место для новых записей.
SPARSE_CACHE_ENTRY
Запись в кэше с частичным откликом.
STICKY_CACHE_ENTRY
Закрепленная запись в кэше; не подвергается очистке.
TRACK_OFFLINE_CACHE_ENTRY
В настоящий момент не реализовано.
TRACK_ONLINE_CACHE_ENTRY
В настоящий момент не реализовано.
URLHISTORY_CACHE_ENTRY
Запись посещенной ссылки в кэше.

[in] lpszHeaderInfo

Указатель на буфер, содержащий сведения о заголовке. Если этот параметр не равен NULL, сведения о заголовке обрабатываются как расширенные атрибуты URL-адреса, возвращаемые в элементе lpHeaderInfo структуры INTERNET_CACHE_ENTRY_INFO .

[in] cchHeaderInfo

Размер сведений о заголовке в TCHAR. Если значение lpHeaderInfo не равно NULL, предполагается, что это значение указывает размер буфера, в котором хранятся сведения о заголовке. Приложение может хранить заголовки как часть данных и предоставлять cchHeaderInfo вместе со значением NULL для lpHeaderInfo.

[in] lpszFileExtension

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

[in] lpszOriginalUrl

Указатель на строку, содержащую исходный URL-адрес, если произошло перенаправление.

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

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

Код возврата Описание
ERROR_DISK_FULL
Хранилище кэша заполнено.
ERROR_FILE_NOT_FOUND
Указанный локальный файл не найден.

Комментарии

Тип STICKY_CACHE_ENTRY используется для исключения записей кэша из очистки. Время исключения по умолчанию для записей, заданных с помощью CommitUrlCacheEntryW , составляет десять минут. Время исключения можно изменить, задав параметр expires time в структуре INTERNET_CACHE_ENTRY_INFO в вызове функции SetUrlCacheEntryInfo .

Если хранилище кэша заполнено, CommitUrlCacheEntryW вызывает очистку кэша, чтобы освободить место для этого нового файла. Если запись кэша уже существует, функция перезаписывает запись, если она не используется. Запись используется, если она была получена с помощью RetrieveUrlCacheEntryStream или RetrieveUrlCacheEntryFile.

Клиенты, добавляющие записи в кэш, должны задать для заголовков не менее "HTTP/1.0 200 ОК\r\n\r\n"; В противном случае интернет-Обозреватель Майкрософт и другие клиентские приложения должны игнорировать запись.

Пример кода, вызывающего CreateUrlCacheEntryW, см. в разделе Кэширование.

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

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

Примечание

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

Требования

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

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

Кэширование

Функции WinINet