ParseURLA 函式 (shlwapi.h)
執行 URL 的基底剖析。
語法
LWSTDAPI ParseURLA(
[in] LPCSTR pcszURL,
[in, out] PARSEDURLA *ppu
);
參數
[in] pcszURL
類型: LPCTSTR
包含要剖析之 URL 之 Null 終止字串的指標。
[in, out] ppu
類型: PARSEDURL*
接收已剖析結果之 PARSEDURL 結構的指標。 呼叫應用程式必須先將結構的 cbSize 成員設定為結構的大小,才能呼叫 ParseURL。
傳回值
類型: HRESULT
傳回 成功時S_OK ,否則傳回 COM 錯誤碼。 如果字串無法剖析為 URL,此函式會傳回 intshcut.h 中定義的URL_E_INVALID_SYNTAX) (。
備註
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;
}
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 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shlwapi.h |
Dll | Shlwapi.dll (6.0.1 版或更新版本) |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應