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

操作を制御します。 このパラメーターには、次の値のいずれかを指定できます。

意味
ICU_DECODE
エンコードされた文字を通常の形式に変換します。 これは、ユーザーがコンポーネントをコピーする URL_COMPONENTS 構造体のバッファーを提供する場合にのみ使用できます。
ICU_ESCAPE
すべてのエスケープ シーケンス (%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 では、サーバーの実装はサポートされていません。 また、サービスから使用しないでください。 サーバーの実装またはサービスの場合は、 Microsoft Windows HTTP サービス (WinHTTP) を使用します。
 

注意

wininet.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして InternetCrackUrl を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wininet.h
Library Wininet.lib
[DLL] Wininet.dll

こちらもご覧ください

FtpOpenFile

Uniform Resource Locator の処理

InternetCloseHandle

InternetFindNextFile

InternetSetStatusCallback

WinINet 関数