InternetCrackUrlA 関数 (wininet.h)
URL をコンポーネントパーツに割り込む。
構文
BOOL InternetCrackUrlA(
[in] LPCSTR lpszUrl,
[in] DWORD dwUrlLength,
[in] DWORD dwFlags,
[in, out] LPURL_COMPONENTSA lpUrlComponents
);
パラメーター
[in] lpszUrl
解読される正規 URL を含む文字列へのポインター。
[in] dwUrlLength
lpszUrl が ASCIIZ 文字列の場合は lpszUrl 文字列のサイズ (TCHAR の場合は 0)。
[in] dwFlags
操作を制御します。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
エンコードされた文字を通常の形式に変換します。 これは、ユーザーがコンポーネントをコピーする URL_COMPONENTS 構造体のバッファーを提供する場合にのみ使用できます。 |
|
すべてのエスケープ シーケンス (%xx) を対応する文字に変換します。 これは、ユーザーがコンポーネントをコピーする URL_COMPONENTS 構造体のバッファーを提供する場合にのみ使用できます。 |
[in, out] lpUrlComponents
URL コンポーネントを受け取る URL_COMPONENTS 構造体へのポインター。
戻り値
関数が成功した場合は TRUE 、それ以外の場合 は FALSE を 返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
必要なコンポーネントは、 URL_COMPONENTS 構造体のメンバーによって示されます。 各コンポーネントには、値へのポインターがあり、格納されている値の長さを格納するメンバーがあります。 コンポーネントの値と長さの両方が 0 に等しい場合、そのコンポーネントは返されません。 Windows Vista 以降。: コンポーネントの値へのポインターが NULL で、対応する長さメンバーの値が 0 以外の場合、 lpszUrl 文字列内の対応するコンポーネントの最初の文字のアドレスがポインターに格納され、コンポーネントの長さが長さメンバーに格納されます。
ポインターにユーザー指定のバッファーのアドレスが含まれている場合、長さメンバーにはバッファーのサイズが含まれている必要があります。 InternetCrackUrl は コンポーネントをバッファーにコピーし、length メンバーはコピーしたコンポーネントの長さに設定され、末尾の文字列ターミネータの場合は 1 を引いた値に設定されます。
InternetCrackUrl を正常に動作させるには、URL_COMPONENTS構造体のサイズ (バイト単位) を dwStructSize メンバーに格納する必要があります。
メモスペースを含む "file://" URL では InternetCrackUrl を使用しないでください。これは、lpUrlComponents が指すURL_COMPONENTS構造体の dwUrlPathLength メンバーで返される値が大きすぎるためです。 ただし、スペース文字を含む "file://" URL の場合は、これが唯一のケースです。
WinINet API の他のすべての側面と同様に、この関数を DllMain またはグローバル オブジェクトのコンストラクターとデストラクター内から安全に呼び出すことはできません。
注意
wininet.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして InternetCrackUrl を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wininet.h |
Library | Wininet.lib |
[DLL] | Wininet.dll |