InternetCanonicalizeUrlA 関数 (wininet.h)
安全でない文字とスペースをエスケープ シーケンスに変換する URL を正規化します。
構文
BOOL InternetCanonicalizeUrlA(
[in] LPCSTR lpszUrl,
[out] LPSTR lpszBuffer,
[in, out] LPDWORD lpdwBufferLength,
[in] DWORD dwFlags
);
パラメーター
[in] lpszUrl
正規化する URL を含む文字列へのポインター。
[out] lpszBuffer
結果として得られる正規化された URL を受け取るバッファーへのポインター。
[in, out] lpdwBufferLength
lpszBuffer バッファーのサイズ (文字数) を含む変数へのポインター。 関数が成功した場合、このパラメーターは、終端の null 文字を含まない lpszBuffer バッファーに実際にコピーされた文字数を受け取ります。 関数が失敗した場合、このパラメーターはバッファーの必要なサイズ (終端の null 文字を含む文字) を受け取ります。
[in] dwFlags
正規化を制御します。 フラグが指定されていない場合、関数はすべての安全でない文字とメタ シーケンス (.,\ ..、... など) をエスケープ シーケンスに変換します。 このパラメーターには、次のいずれかの値を指定できます。
価値 | 意味 |
---|---|
|
"#" または "?"" の後の文字はエンコードまたはデコードされず、"?"" の後の末尾の空白は削除されません。 この値を指定しない場合、URL 全体がエンコードされ、末尾の空白が削除されます。 |
|
URL が解析される前に、すべての %XX シーケンスをエスケープ シーケンスを含む文字に変換します。 |
|
発生したパーセント記号をエンコードします。 既定では、パーセント記号はエンコードされません。 この値は、Microsoft Internet Explorer 5 以降で使用できます。 |
|
スペースのみをエンコードします。 |
|
安全でない文字をエスケープ シーケンスに変換しません。 |
|
URL からメタ シーケンス ("." や ".." など) を削除しません。 |
戻り値
成功した場合
リターン コード | 形容 |
---|---|
|
URL を正規化できませんでした。 |
|
正規化された URL が大きすぎて、指定されたバッファーに収まりません。 lpdwBufferLength パラメーターは、正規化された URL を保持するために必要なバッファーのサイズ (バイト単位) に設定されます。 |
|
URL の形式が無効です。 |
|
無効な文字列、バッファー、バッファー サイズ、またはフラグ パラメーターがあります。 |
備考
Internet Explorer 4.0 以降では、InternetCanonicalizeUrl
internetCanonicalizeUrl
Internet Explorer 3.0 を使用する場合 (または Internet Explorer 5 以降の ICU_ENCODE_PERCENT フラグを設定する場合) InternetCanonicalizeUrl を呼び出すアプリケーションは、特定の URL でこの関数の使用状況を追跡する必要があります。 URL 内の安全でない文字がエスケープ シーケンスに変換されている場合、InternetCanonicalizeUrl を URL に再度使用すると (フラグなし)、エスケープ シーケンスが別のエスケープ シーケンスに変換されます。 たとえば、URL 内の空白は、%20エスケープ シーケンスに変換されます。 InternetCanonicalizeUrl を URL で再度呼び出すと、エスケープ シーケンス %20 がエスケープ シーケンス %2520に変換されます。これは、% 記号はエスケープ シーケンス用に予約され、関数に置き換えられる安全でない文字であり、エスケープ シーケンス %25に置き換えられるためです。
WinINet API の他のすべての側面と同様に、この関数は DllMain またはグローバル オブジェクトのコンストラクターとデストラクターから安全に呼び出すことはできません。
手記
wininet.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして InternetCanonicalizeUrl を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | wininet.h |
ライブラリ | Wininet.lib |
DLL | Wininet.dll |
関連項目
WinINet Functions の