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


Функция 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 хранится в указателе, а длина компонента хранится в элементе длины.

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

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

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

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

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

Примечание

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

Требования

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

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

FtpOpenFile

Обработка универсальных указателей ресурсов

InternetCloseHandle

InternetFindNextFile

InternetSetStatusCallback

Функции WinINet