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 版或更新版本)