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


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

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

Синтаксис

BOOL CreateUrlCacheEntryW(
  [in]  LPCWSTR lpszUrlName,
  [in]  DWORD   dwExpectedFileSize,
  [in]  LPCWSTR lpszFileExtension,
  [out] LPWSTR  lpszFileName,
  [in]  DWORD   dwReserved
);

Параметры

[in] lpszUrlName

Указатель на строковое значение, содержащее имя URL-адреса. Строка должна содержать значение; Пустая строка приведет к сбою CreateUrlCacheEntry . Кроме того, строка не должна содержать escape-символы.

[in] dwExpectedFileSize

Ожидаемый размер файла, необходимого для хранения данных, которые соответствуют исходной сущности, в TCHAR. Если ожидаемый размер неизвестен, задайте для этого значения нулевое значение.

[in] lpszFileExtension

Указатель на строковое значение, содержащее имя расширения файла в локальном хранилище.

[out] lpszFileName

Указатель на буфер, получающий имя файла. Буфер должен быть достаточно большим для хранения пути к созданному файлу (не менее MAX_PATH символов в длину).

[in] dwReserved

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

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

Если функция выполнена успешно, функция возвращает значение TRUE.

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

Комментарии

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

WinINet пытается декодировать параметры Юникода в соответствии с системной кодовой страницей. Приложения должны обеспечить правильную кодировку параметров Юникода для системной кодовой страницы. Приложения могут задать системную кодовую страницу с помощью InternetSetOption , как показано в следующем примере кода:

DWORD CP_SHIFT_JIS = 932;  // ANSI/OEM  Japanese, Shift-JIS
InternetSetOption( hRequest, 
                   INTERNET_OPTION_CODEPAGE,
                   &CP_SHIFT_JIS,
                   sizeof(DWORD) );

Если параметр Юникода неправильно закодирован на системной кодовой странице, WinINet пытается декодировать UTF8.

При извлечении элементов из кэша системная кодовая страница, используемая для размещения элемента в кэше, должна соответствовать текущей системной кодовой странице пользователя. Для приложений, работающих в IE6 и более ранних версиях, при сбое декодирования системной кодовой страницы WinINet пытается декодировать UTF8.

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

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

Примечание

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

Требования

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

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

Кэширование

CommitUrlCacheEntry

Функции WinINet