UrlFixupW 関数 (shlwapi.h)

[UrlFixupW は、[要件] セクションで指定されたオペレーティング システムで使用できます。 以降のバージョンでは変更または使用できない場合があります。]

プロトコル識別子が正しくない URL の修正を試みます。 たとえば、 htttp は に http変更されます。

構文

LWSTDAPI UrlFixupW(
  [in]  PCWSTR pcszUrl,
  [out] PWSTR  pszTranslatedUrl,
        DWORD  cchMax
);

パラメーター

[in] pcszUrl

種類: PCWSTR

修正する URL を含む null で終わる文字列へのポインター。 この文字列は、終端の NULL 文字を含め、長さがINTERNET_MAX_PATH_LENGTH文字を超えてはなりません。

[out] pszTranslatedUrl

種類: PWSTR

この関数が正常に返されると、コピーした文字を受け取るバッファーへのポインター。 バッファーは、 cchMax パラメーターで指定された WCHAR 文字の数 (終端の NULL 文字を含む) を格納するのに十分な大きさである必要があります。 このパラメーターは pcszUrl パラメーターと同じにして、URL を修正できます。 pszTranslatedUrlpcszUrl と等しくない場合、pszTranslatedUrl によって指されるバッファーは、pcszUrl が指すバッファーと重複してはなりません。

cchMax

型: DWORD

pszTranslatedUrl が指すバッファーに含めることができる WCHAR 文字の数。 このパラメーターには、0 より大きい値を指定する必要があります。

戻り値

種類: HRESULT

提案された URL が既に受け入れ可能であったか、正常に修正された場合は、S_OKを返します。 pszTranslatedUrl バッファーには、修正された URL、または修正が必要ない場合は元の URL が含まれます。 提案された URL を修正するのに十分に認識できなかった場合は、S_FALSEを返します。 それ以外の場合は、標準の COM エラー コードを返します。

注釈

UrlFixup 関数は、 URL_SCHEME 列挙で指定されたスキームを認識します。

優先順位はプロトコル識別子セクションの最初の文字に与えられるのhtpで、 ではなく ftphttp変換されます。

メモ 決定論的なデータ変換には、この関数を使用しないでください。 UrlFixupW によって使用されるヒューリスティックは、あるリリースから次のリリースに変更される可能性があります。 関数は、無効なユーザー入力の修正にのみ使用する必要があります。
 
この関数は、Unicode バージョンでのみ使用できます。

この例では、 UrlFixupW の使用方法を示します。 最後の 4 つの自動修正は、おそらくユーザーが意図したものではなく、関数で使用されるヒューリスティックの制限事項を示していることに注意してください。


#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>
#include <tchar.h>

void sample(LPCWSTR pszUrl)
{
    WCHAR szBuf[256];
    
    HRESULT hr = UrlFixupW(pszUrl, szBuf, 256);
    if (hr == S_OK) 
    {
        wprintf(L"%-35s %s\n", pszUrl, szBuf);
    } 
    else 
    {
        wprintf(L"%-35s failed\n", pszUrl);
    }
}

int __cdecl main()
{
    sample(L"http://www.microsoft.com");
    sample(L"mail:someone@example.com");
    sample(L"abc:def");
    sample(L"someone@example.com");
    sample(L"htpp:wwwmicrosoft.com");
    sample(L"htps:\\\\www.microsoft.com");
    sample(L"http:someone@example.com");

    return 0;
}

..................................

This example might produce the following output:

http://www.microsoft.com    http://www.microsoft.com
http:www.microsoft.com      http://www.microsoft.com
mail:someone@example.com    mailto:someone@example.com
abc:def                     failed
someone@example.com         failed
htpp:wwwmicrosoft.com       http://wwwmicrosoft.com
htps:\\www.microsoft.com    http://www.microsoft.com
http:someone@example.com    http://someone@example.com
                

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー shlwapi.h
[DLL] Shlwapi.dll (バージョン 5.0 以降)