Функция ParseURLA (shlwapi.h)
Выполняет удручающее синтаксический анализ URL-адреса.
Синтаксис
LWSTDAPI ParseURLA(
[in] LPCSTR pcszURL,
[in, out] PARSEDURLA *ppu
);
Параметры
[in] pcszURL
Тип: LPCTSTR
Указатель на строку, завершающуюся значением NULL, содержащую URL-адрес для синтаксического анализа.
[in, out] ppu
Тип: PARSEDURL*
Указатель на структуру PARSEDURL, которая получает результаты синтаксического анализа. Вызывающее приложение должно задать cbSize члена структуры, прежде чем вызывать ParseURL.
Возвращаемое значение
Тип: HRESULT
Возвращает S_OK при успешном выполнении или код ошибки COM в противном случае. Функция возвращает URL_E_INVALID_SYNTAX (определено в Intshcut.h), если не удалось проанализировать строку как URL-адрес.
Замечания
Синтаксический анализ, выполняемый ParseURL, является довольно рудиментным. Для более сложного анализа URL-адресов используйте InternetCrackUrl.
Примеры
В этом примере консольного приложения для анализа нескольких простых URL-адресов используется ParseURL.
#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>
#include <tchar.h>
void sample(LPCTSTR pcszUrl)
{
PARSEDURL pu;
pu.cbSize = sizeof(pu);
HRESULT hr = ParseURL(pcszUrl, &pu);
_tprintf(TEXT("ParseURL(%s) returned 0x%08x\n"), pcszUrl, hr);
if (SUCCEEDED(hr)) {
_tprintf(TEXT("Protocol = %.*s\n"), pu.cchProtocol, pu.pszProtocol);
_tprintf(TEXT("Suffix = %.*s\n"), pu.cchSuffix, pu.pszSuffix);
_tprintf(TEXT("Scheme = %d\n"), pu.nScheme);
_tprintf(TEXT("\n"));
}
}
int __cdecl main()
{
sample(TEXT("http://msdn.microsoft.com/vstudio/"));
sample(TEXT("mailto:someone@example.com"));
sample(TEXT("file://C:\\AUTOEXEC.BAT"));
sample(TEXT("C:\\AUTOEXEC.BAT"));
return 0;
}
OUTPUT:
---------
ParseURL(http://msdn.microsoft.com/vstudio/) returned 0x00000000
Protocol = http
Suffix = //msdn.microsoft.com/vstudio/
Scheme = 2
ParseURL(mailto:someone@example.com) returned 0x00000000
Protocol = mailto
Suffix = someone@example.com
Scheme = 4
ParseURL(file://C:\AUTOEXEC.BAT) returned 0x00000000
Protocol = file
Suffix = C:\AUTOEXEC.BAT
Scheme = 9
ParseURL(C:\AUTOEXEC.BAT) returned 0x80041001
Заметка
Заголовок shlwapi.h определяет ParseURL как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | shlwapi.h |
DLL | Shlwapi.dll (версия 6.0.1 или более поздняя версия) |