The following example first canonicalizes the URL, then parses and displays the scheme and fully qualified domain name.
#include <wininet.h>
WCHAR szDecodedUrl[INTERNET_MAX_URL_LENGTH];
DWORD cchDecodedUrl = INTERNET_MAX_URL_LENGTH;
WCHAR szOut[INTERNET_MAX_URL_LENGTH];
HRESULT hr = CoInternetParseUrl(szUrl, PARSE_CANONICALIZE, URL_UNESCAPE, szDecodedUrl,
INTERNET_MAX_URL_LENGTH, &cchDecodedUrl, 0);
if (hr == S_OK)
{
printf("CANONICALIZE: %S\n",szDecodedUrl);
hr = CoInternetParseUrl(szDecodedUrl, PARSE_SCHEMA, 0, szOut,
INTERNET_MAX_URL_LENGTH, &cchDecodedUrl, 0);
if (hr == S_OK)
printf("SCHEME: %S\n", szOut);
else
printf("SCHEME: Error %08x\n", hr);
hr = CoInternetParseUrl(szDecodedUrl, PARSE_DOMAIN, 0, szOut,
INTERNET_MAX_URL_LENGTH, &cchDecodedUrl, 0);
if (hr == S_OK)
printf("DOMAIN: %S\n", szOut);
else
printf("DOMAIN: Error %08x\n", hr);
}
else
printf("CANONICALIZE: Error %08x\n", hr);