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

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

Синтаксис

BOOL CommitUrlCacheEntryA(
  [in] LPCSTR   lpszUrlName,
  [in] LPCSTR   lpszLocalFileName,
  [in] FILETIME ExpireTime,
  [in] FILETIME LastModifiedTime,
  [in] DWORD    CacheEntryType,
  [in] LPBYTE   lpHeaderInfo,
  [in] DWORD    cchHeaderInfo,
  [in] LPCSTR   lpszFileExtension,
  [in] LPCSTR   lpszOriginalUrl
);

Параметры

[in] lpszUrlName

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

[in] lpszLocalFileName

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

[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] lpHeaderInfo

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

[in] cchHeaderInfo

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

[in] lpszFileExtension

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

[in] lpszOriginalUrl

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

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

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

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

Комментарии

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

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

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

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

Как и все другие аспекты 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