parseURLW 函式 (shlwapi.h)

執行 URL 的一元剖析。

語法

LWSTDAPI ParseURLW(
  [in]      LPCWSTR    pcszURL,
  [in, out] PARSEDURLW *ppu
);

參數

[in] pcszURL

類型: LPCTSTR

Null 終止字串的指標,其中包含要剖析的 URL。

[in, out] ppu

類型: PARSEDURL*

PARSEDURL結構的指標,可接收剖析的結果。 呼叫應用程式必須在呼叫ParseURL之前,將結構的cbSize成員設定為 結構的大小。

傳回值

類型: HRESULT

傳回 成功時S_OK ,否則傳回 COM 錯誤碼。 如果字串無法剖析為 URL,此函式會傳回 intshcut.h) 中定義的URL_E_INVALID_SYNTAX (。

備註

ParseURL所執行的剖析相當不相等。 如需更複雜的 URL 剖析,請使用 InternetC,Url

範例

此範例主控台應用程式會使用 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 [僅限桌面應用程式]
目標平台 Windows
標頭 shlwapi.h
Dll Shlwapi.dll (6.0.1 版或更新版本)