InternetCrackUrlW

URL を構成要素に分解する。(Unicode)

InternetCrackUrlW lpszUrl, dwUrlLength, dwFlags, lpUrlComponents

lpszUrl : [wstr] 解析する正規化された URL を格納した文字列へのポインタ。
dwUrlLength : [int] lpszUrl 文字列のサイズ (TCHAR 単位)。lpszUrl が ASCIIZ 文字列の場合は 0。
dwFlags : [int] 
lpUrlComponents : [var] URL コンポーネントを受け取る URL_COMPONENTS 構造体へのポインタ。

(プラグイン / モジュール : wininet.dll)

解説

URL を構成要素に分解する。(Unicode)

[戻り値]
関数が成功した場合は TRUE を、失敗した場合は FALSE を返す。拡張エラー情報を取得するには GetLastError
を呼び出す。

[備考]
必要なコンポーネントは URL_COMPONENTS
構造体のメンバで指定する。各コンポーネントは値へのポインタと、格納された値の長さを保持するメンバを持つ。コンポーネントの値と長さの両方が
0 の場合、そのコンポーネントは返されない。Windows Vista 以降: コンポーネントの値へのポインタが NULL
で、対応する長さメンバの値が 0 でない場合、lpszUrl
文字列内の対応するコンポーネントの先頭文字のアドレスがポインタに格納され、コンポーネントの長さが長さメンバに格納される。

ポインタにユーザー指定のバッファのアドレスが格納されている場合、長さメンバにはバッファのサイズが格納されていなければならない。InternetCrackUrl
はコンポーネントをバッファにコピーし、長さメンバはコピーされたコンポーネントの長さから末尾の文字列終端用の 1
を引いた値に設定される。InternetCrackUrl が正しく動作するためには、URL_COMPONENTS 構造体のサイズ
(バイト単位) を dwStructSize メンバに格納しなければならない。注意: 空白を含む "file://" URL に対しては
InternetCrackUrl を使用しないこと。lpUrlComponents が指す URL_COMPONENTS 構造体の
dwUrlPathLength メンバに返される値が大きすぎるためである。ただしこれは空白文字を含む "file://" URL
の場合のみである。WinINet API の他のすべての側面と同様に、本関数は DllMain
やグローバルオブジェクトのコンストラクタ・デストラクタの中から安全に呼び出すことはできない。注意: WinINet
はサーバー実装をサポートしていない。さらに、サービスから使用すべきでもない。サーバー実装やサービスでは Microsoft Windows
HTTP Services (WinHTTP) を使用すること。
> [!NOTE] > wininet.h ヘッダーは InternetCrackUrl をエイリアスとして定義しており、UNICODE
プリプロセッサ定数の定義に基づいて本関数の ANSI 版または Unicode
版を自動的に選択する。エンコーディング中立のエイリアスとエンコーディング中立でないコードを混在させると、コンパイルエラーや実行時エラーの原因となるミスマッチが発生する可能性がある。詳細は
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照のこと。

情報

プラグイン / モジュールwininet.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の wininet.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_wininet_gen2.hs