InternetCrackUrl() で

さっきまで知らなかったこと。
文字列へのポインタがNULLで、長さが0以外だったら、渡された文字列へのポインタと長さが取れること。

// ホスト名だけとれりゃいいやっていう状況
TCHAR			url[] = _T("http://syoobi.jp:80/bbb/ccc.html");
URL_COMPONENTS	uc;
ZeroMemory(&uc, sizeof(URL_COMPONENTS));
uc.dwStructSize = sizeof(URL_COMPONENTS);
uc.dwHostNameLength = 1;		// 0以外の値。uc.lpszHostNameLengthはZeroMemory()でNULLになってる
InternetCrackUrl(url, 0, 0, &uc);
CString		hostName(uc.lpszHostName, uc.dwHostNameLength);