SHEvaluateSystemCommandTemplate 関数 (shellapi.h)

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

構文

SHSTDAPI SHEvaluateSystemCommandTemplate(
  [in]            PCWSTR pszCmdTemplate,
  [out]           PWSTR  *ppszApplication,
  [out, optional] PWSTR  *ppszCommandLine,
  [out, optional] PWSTR  *ppszParameters
);

パラメーター

[in] pszCmdTemplate

種類: PCWSTR

コマンド ライン。パラメーターを含める場合と含まない場合があります。 パラメーターが置換パラメーターの場合は、パラメーターが置き換えられる前に SHEvaluateSystemCommandTemplate を呼び出す必要があります。

[out] ppszApplication

種類: PWSTR*

アプリケーションへの検証済みパスへのポインター。 この値は、CreateProcess の呼び出しで lpApplication パラメーターとして渡すか、ShellExecute の呼び出しで lpFile パラメーターとして渡す必要があります。 このリソースは CoTaskMemAlloc を使用して割り当てられ、 CoTaskMemFree を呼び出して不要になったときにリソースを解放するのは呼び出し元の責任です。

[out, optional] ppszCommandLine

種類: PWSTR*

CreateProcess の呼び出しで使用されるコマンド ライン文字列テンプレートへのポインター。 コマンド ライン パラメーターは、このテンプレートに基づいて指定し、 lpCommandLine パラメーターとして CreateProcess に渡す必要があります。 PathGetArgs が常に正しく読み取ることができる形式であることが保証されます。 このリソースは CoTaskMemAlloc を使用して割り当てられ、 CoTaskMemFree を呼び出して不要になったときにリソースを解放するのは呼び出し元の責任です。

この関数が CreateProcess の呼び出しと関連付けて使用されていない場合、このパラメーターは NULL にすることができます。

[out, optional] ppszParameters

種類: PWSTR*

ShellExecute の呼び出しで使用されるコマンド ライン文字列テンプレートへのポインター。 コマンド ライン パラメーターは、このテンプレートに基づいて指定し、 lpParameters パラメーターとして ShellExecute に渡す必要があります。 このパラメーターは、 PathGetArgs の呼び出しと同じです。 このリソースは CoTaskMemAlloc を使用して割り当てられ、 CoTaskMemFree を呼び出して不要になったときにリソースを解放するのは呼び出し元の責任です。

この関数が CreateProcess の呼び出しと関連付けて使用されていない場合、このパラメーターは NULL にすることができます。

戻り値

種類: HRESULT

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

注釈

この関数は、実行コンテキストに関係なく、呼び出し元プロセスがコマンド テンプレートからの決定論的な動作を必要とする場合に使用されます。 現在のプロセスの状態 (、GetCurrentDirectory、親プロセス ディレクトリなど%PATH%) は無視されます。

この関数は、コマンドがハードコーディングされている場合に使用されます。

この関数は、HKEY_CLASSES_ROOTからファイルの関連付けを処理するときに ShellExecute によって使用されます。 この関数の目的は、 CreateProcess コマンド ラインの悪用を減らすことです。 ユーザー入力を処理するようには設計されておらず、その目的で使用すると予期しないエラーが発生する可能性があります。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shellapi.h
[DLL] Shell32.dll
API セット ext-ms-win-shell-shell32-l1-2-2 (Windows 10 バージョン 10.0.14393 で導入)