UrlCanonicalizeA 関数 (shlwapi.h)
URL 文字列を正規形式に変換します。
構文
LWSTDAPI UrlCanonicalizeA(
[in] PCSTR pszUrl,
[out] PSTR pszCanonicalized,
[in, out] DWORD *pcchCanonicalized,
DWORD dwFlags
);
パラメーター
[in] pszUrl
型: PCTSTR
URL 文字列を含む最大長INTERNET_MAX_URL_LENGTHの null で終わる文字列へのポインター。 文字列がファイルを参照していない場合は、"http://" などの有効なスキームを含める必要があります。
[out] pszCanonicalized
型: PTSTR
この関数が正常に返されるときに、変換された URL を null で終わる文字列として受け取るバッファーへのポインター。
[in, out] pcchCanonicalized
型: DWORD*
エントリ時に、pszCanonicalized バッファー内の文字数に設定される値へのポインター。
dwFlags
型: DWORD
URL を正規形式に変換する方法を指定するフラグ。 次のフラグを組み合わせることができます。
URL_UNESCAPE (0x10000000)
2 つの例外を除き、URL に含まれるエスケープ シーケンスのエスケープを解除します。 "?" と "#" のエスケープ シーケンスはエスケープされません。 URL_ESCAPE_XXX フラグの 1 つも設定されている場合、2 つの URL は最初にエスケープ解除され、次に結合され、次にエスケープされます。
URL_ESCAPE_UNSAFE (0x20000000)
安全でない文字をエスケープ シーケンスに置き換えます。 安全でない文字とは、インターネット経由で転送中に変更される可能性がある文字であり、(<、>、"、#、{、}、|、^、[、]、および ') 文字が含まれます。 このフラグは、不透明な URL を含むすべての URL に適用されます。
URL_PLUGGABLE_PROTOCOL (0x40000000)
W3C 仕様に従って、URL とクライアント定義のプラグ可能なプロトコルを組み合わせます。 このフラグは、ftp、http、gopher などの標準プロトコルには適用されません。 このフラグが設定されている場合、UrlCombine
URL_ESCAPE_SPACES_ONLY (0x04000000)
スペースのみをエスケープ シーケンスに置き換えます。 このフラグは URL_ESCAPE_UNSAFEよりも優先されますが、不透明な URL には適用されません。
URL_DONT_SIMPLIFY (0x08000000)
"/./" と "/.. を扱います。/" は、ナビゲーションの短縮形ではなく、リテラル文字として URL 文字列に含まれています。 詳細については、「解説」を参照してください。
URL_NO_META (0x08000000)
URL_DONT_SIMPLIFYと同じに定義されています。
URL_ESCAPE_PERCENT (0x00001000)
"%" の出現箇所をエスケープ シーケンスに変換します。
URL_ESCAPE_AS_UTF8 (0x00040000)
Windows 7 以降のを
戻り値
型: HRESULT
この関数が成功すると、S_OKが返されます。 それ以外の場合は、HRESULT エラー コードが返されます。
備考
この関数は、安全でない文字をエスケープ シーケンスに置き換えたり、"....." のようなシーケンスを折りたたむなどのタスクを実行します。
URL 文字列に "/../" または "/./" 、UrlCanonicalize は、URL 階層内のナビゲーションを示す文字として扱います。 この関数は、URL を組み合わせる前に簡略化します。 たとえば、"/hello/残酷/../world" は "/hello/world" に簡略化されています。 この既定の動作の例外は、次の場合に発生します。
URL_DONT_SIMPLIFY フラグが dwFlags設定されている場合、この関数は URL を簡略化しません。 この場合、"/hello/残酷/../world" はそのままです。 - "/../" または "/./" はパスの最初のセグメント ("
"など) です。urlCanonicalize 、パスが入力されたとおりに出力されます。
手記
shlwapi.h ヘッダーは、URLCanonicalize を、UNICODE プリプロセッサ定数の定義に基づいてこの関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | shlwapi.h |
ライブラリ | Shlwapi.lib |
DLL | Shlwapi.dll (バージョン 5.0 以降) |