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