CommandLineToArgvW

Unicode のコマンドライン文字列を解析し、標準 C ランタイムの argv および argc の値と同様に、コマンドライン引数へのポインタの配列とその引数の数を返す。

CommandLineToArgvW lpCmdLine, pNumArgs

lpCmdLine : [wstr] 型: LPCWSTR コマンドライン全体を格納したヌル終端 Unicode 文字列へのポインタ。このパラメータが空文字列の場合、関数は現在の実行ファイルへのパスを返す。
pNumArgs : [var] 型: int* argc と同様に、返される配列要素数を受け取る int へのポインタ。

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

解説

Unicode のコマンドライン文字列を解析し、標準 C ランタイムの argv および argc
の値と同様に、コマンドライン引数へのポインタの配列とその引数の数を返す。

[戻り値]
型: LPWSTR* argv と同様の LPWSTR 値の配列へのポインタ。
関数が失敗した場合、戻り値は NULL である。拡張エラー情報を取得するには GetLastError を呼び出す。

[備考]
CommandLineToArgvW が返すアドレスは、LPWSTR 値の配列の先頭要素のアドレスであり、この配列内のポインタ数は
pNumArgs によって示される。各ヌル終端 Unicode
文字列ポインタは、コマンドライン上で見つかった個々の引数を表す。CommandLineToArgvW
は引数文字列へのポインタおよび引数文字列自体のために連続したメモリブロックを確保するので、呼び出し側アプリケーションは不要になった時点でその引数リストのメモリを解放しなければならない。メモリの解放には
LocalFree 関数を 1 度呼び出せばよい。argv と argc の引数規約の詳細は「Argument
Definitions」および「Parsing C Command-Line Arguments」を参照。lpCmdLine
パラメータに渡すのに適したコマンドライン文字列は GetCommandLineW
関数で取得できる。この関数はプログラム名を含むコマンドラインを受け付け、プログラム名は引用符で囲まれていてもいなくてもよい。CommandLineToArgvW
は、バックスラッシュ文字の直後に引用符(")が続く場合に特別な解釈を行う。この解釈では、先行する引数は有効なファイルシステムパスであることを前提としており、そうでないと予測不能な動作となる可能性がある。この特別な解釈はパーサが追跡する「引用符内」モードを制御する。このモードがオフのとき、空白で現在の引数が終端される。オンのとき、空白は他の文字と同様に引数に追加される。
(以下省略)

情報

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