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 |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の wininet.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_wininet_gen2.hs |