ParseURLW 函式 (shlwapi.h)
執行 URL 的基本剖析。
語法
LWSTDAPI ParseURLW(
[in] LPCWSTR pcszURL,
[in, out] PARSEDURLW *ppu
);
參數
[in] pcszURL
類型:LPCTSTR
包含要剖析之 URL 之 Null 終止字串的指標。
[in, out] ppu
類型:PARSEDURL*
接收剖析結果之 PARSEDURL 結構的指標。 呼叫端應用程式必須先將 結構的 cbSize 成員設定為 結構的大小,才能呼叫 ParseURL。
傳回值
類型:HRESULT
傳回成功時 S_OK,否則會傳回 COM 錯誤碼。 如果字串無法剖析為 URL,函式會傳回 URL_E_INVALID_SYNTAX (定義於 Intshcut.h)。
言論
ParseURL 所執行的剖析相當基本。 如需更複雜的 URL 剖析,請使用 InternetCrackUrl。
例子
此範例主控台應用程式會使用 ParseURL 來剖析數個簡單的 URL。
#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;
}
輸出:
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 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | shlwapi.h |
DLL | Shlwapi.dll (6.0.1 版或更新版本) |