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


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

Взломает URL-адрес в его части компонентов.

Синтаксис

BOOL InternetCrackUrlA(
  [in]      LPCSTR            lpszUrl,
  [in]      DWORD             dwUrlLength,
  [in]      DWORD             dwFlags,
  [in, out] LPURL_COMPONENTSA lpUrlComponents
);

Параметры

[in] lpszUrl

Указатель на строку, содержащую канонический URL-адрес для взлома.

[in] dwUrlLength

Размер строки lpszUrl в TCHARs или ноль, если lpszUrl является строкой ASCIIZ.

[in] dwFlags

Управляет операцией. Этот параметр может быть одним из следующих значений.

Ценность Значение
ICU_DECODE
Преобразует закодированные символы обратно в их обычную форму. Это можно использовать только в том случае, если пользователь предоставляет буферы в структуре URL_COMPONENTS для копирования компонентов в.
ICU_ESCAPE
Преобразует все escape-последовательности (%xx) в соответствующие символы. Это можно использовать только в том случае, если пользователь предоставляет буферы в структуре URL_COMPONENTS для копирования компонентов в.

[in, out] lpUrlComponents

Указатель на структуру URL_COMPONENTS, которая получает компоненты URL-адреса.

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

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

Замечания

Обязательные компоненты указываются членами структуры URL_COMPONENTS. Каждый компонент имеет указатель на значение и имеет элемент, который сохраняет длину сохраненного значения. Если значение и длина компонента равны нулю, этот компонент не возвращается. Windows Vista и более поздних версий. Если указатель на значение компонента равен NULL и значение соответствующего элемента длины ненулево, адрес первого символа соответствующего компонента в строке lpszUrl хранится в указателе, а длина компонента хранится в элементе длины.

Если указатель содержит адрес предоставленного пользователем буфера, элемент длины должен содержать размер буфера. InternetCrackUrl копирует компонент в буфер, а для элемента длины задана длина скопированного компонента минус 1 для конечного строкового конца.

Чтобы InternetCrackUrl правильно работал, размер структуры URL_COMPONENTS в байтах должен храниться в члене dwStructSize.

Примечание Не используйте InternetCrackUrl на URL-адресах "file://", содержащих пробелы, так как значение, возвращаемое в dwUrlPathLength члена структуры URL_COMPONENTS, на которую указывает lpUrlComponents слишком велик. Однако это только в случае с URL-адресами "file://", содержащими пробелы.

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

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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wininet.h
библиотеки Wininet.lib
DLL Wininet.dll

См. также

FtpOpenFile

обработка единого указателя ресурсов

InternetCloseHandle

InternetFindNextFile

InternetSetStatusCallback

функций WinINet