次の方法で共有


ParseURLA 関数 (shlwapi.h)

URL の基本的な解析を実行します。

構文

LWSTDAPI ParseURLA(
  [in]      LPCSTR     pcszURL,
  [in, out] PARSEDURLA *ppu
);

パラメーター

[in] pcszURL

型: LPCTSTR

解析する URL を含む null で終わる文字列へのポインター。

[in, out] ppu

型: PARSEDURL

解析された結果を受け取る PARSEDURL 構造体へのポインター。 呼び出し元のアプリケーションは、ParseURLを呼び出す前に、構造体の cbSize メンバー 構造体のサイズに設定する必要があります。

戻り値

型: 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;
}   

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 ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして ParseURL を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー shlwapi.h
DLL Shlwapi.dll (バージョン 6.0.1 以降)