Функция 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
Управляет операцией. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Преобразует закодированные символы обратно в обычную форму. Это можно использовать, только если пользователь предоставляет буферы в структуре URL_COMPONENTS для копирования компонентов. |
|
Преобразует все 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.h определяет InternetCrackUrl в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wininet.h |
Библиотека | Wininet.lib |
DLL | Wininet.dll |