SHEvaluateSystemCommandTemplate

CreateProcess または ShellExecute の呼び出しで使用されるパラメーターの厳密な検証を行う。

SHEvaluateSystemCommandTemplate pszCmdTemplate, ppszApplication, ppszCommandLine, ppszParameters

pszCmdTemplate : [wstr] 型: PCWSTR パラメーターを含む場合と含まない場合がある、コマンドライン。パラメーターが置換パラメーターである場合は、パラメーターが置換される前に SHEvaluateSystemCommandTemplate を呼び出す必要がある。
ppszApplication : [var] 型: PWSTR* 検証済みのアプリケーションへのパスのポインター。この値は CreateProcess の lpApplication パラメーター、または ShellExecute の lpFile パラメーターとして渡す。このリソースは CoTaskMemAlloc で割り当てられるため、不要になった時点で CoTaskMemFree を呼び出して解放するのは呼び出し側の責任である。
ppszCommandLine : [var] 型: PWSTR* CreateProcess の呼び出しで使用されるコマンドラインテンプレート文字列へのポインター。コマンドラインパラメーターはこのテンプレートに基づいて指定し、CreateProcess に lpCommandLine パラメーターとして渡す必要がある。PathGetArgs が常に正しく読み取れる形式であることが保証されている。このリソースは CoTaskMemAlloc で割り当てられるため、不要になった時点で CoTaskMemFree を呼び出して解放するのは呼び出し側の責任である。
ppszParameters : [var] 型: PWSTR* ShellExecute の呼び出しで使用されるコマンドラインテンプレート文字列へのポインター。コマンドラインパラメーターはこのテンプレートに基づいて指定し、ShellExecute に lpParameters パラメーターとして渡す必要がある。このパラメーターは PathGetArgs を呼び出すのと同等である。このリソースは CoTaskMemAlloc で割り当てられるため、不要になった時点で CoTaskMemFree を呼び出して解放するのは呼び出し側の責任である。

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

解説

CreateProcess または ShellExecute の呼び出しで使用されるパラメーターの厳密な検証を行う。

[戻り値]
型: HRESULT この関数が成功した場合は S_OK を返す。失敗した場合は HRESULT エラーコードを返す。

[備考]

この関数は、呼び出し元プロセスが実行コンテキストに関係なくコマンドテンプレートからの決定論的な動作を必要とする場合に使用する。%PATH%、GetCurrentDirectory、親プロセスのディレクトリといった現在のプロセス状態を無視する。この関数は、コマンドがハードコードされている場合に使用する。HKEY_CLASSES_ROOT
からファイル関連付けを処理する際に ShellExecute によって使用される。この関数の目的は、CreateProcess
のコマンドライン悪用を低減することである。ユーザー入力の処理用に設計されておらず、その目的で使用すると予期しない失敗が発生する可能性がある。

情報

プラグイン / モジュール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