Win32 API 日本語リファレンス
ホームUI.Shell › IExecuteCommand

IExecuteCommand

COM
IID7f9185b0-cb92-43c5-80a9-92277a4f7b54継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

コマンド動詞に関連する状態やパラメーターを設定するメソッドと、その動詞を呼び出すメソッドを公開します。

解説(Remarks)

実装するタイミング

選択された項目に対してアクションを実行する動詞を呼び出す手段としてこのインターフェイスを選択した場合に、このインターフェイスを実装します。項目は IObjectWithSelection::SetSelection を通じて Shell 項目配列として渡されるため、オブジェクトは IObjectWithSelection も実装する必要があります。

使用するタイミング

IExecuteCommand のメソッドを直接呼び出さないでください。ユーザーが項目に対してアクションを実行しようとしたとき、Windows エクスプローラーが IExecuteCommand のメソッドを呼び出します。

Execute を除き、このインターフェイスのメソッドはシステム情報をハンドラーに渡す点に注意してください。システム自体がこれらのメソッドを呼び出し、システムの設定や状態に基づいてパラメーターを適切に設定します。

メソッド 7

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetKeyState(DWORD grfKeyState)

CTRL キーと SHIFT キーの現在の状態に基づいて値を設定します。

grfKeyStateDWORDin

キーが押されているかどうかを示す、以下のいずれか一方または両方のフラグ。

MK_CONTROL

CTRL キーが押されています。

MK_SHIFT

SHIFT キーが押されています。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT SetParameters(LPWSTR pszParameters)

動詞に対するパラメーター値を指定します。

pszParametersLPWSTRinパラメーター値を含む文字列へのポインター。この文字列の形式と内容は、呼び出される動詞によって決まります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT SetPosition(POINT pt)

表示に使用する座標を設定します。

ptPOINTinコマンドが選択されたショートカットメニューを呼び出すためにユーザーが右クリックした位置のスクリーン座標。アプリケーションはこの情報を利用して任意の UI を表示できます。これは特にマルチモニター環境で役立ちます。既定の位置は既定モニターの中央です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT SetShowWindow(INT nShow)

指定したウィンドウの表示状態を設定します。

nShowINTinShowWindow 関数の nCmdShow パラメーターに指定できる任意の値を指定できます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT SetNoShowUI(BOOL fNoShowUI)

選択された Shell 項目に関連する UI を表示するかどうかを指定します。

fNoShowUIBOOLin関連する UI の表示をブロックする場合は TRUE、UI を表示する場合は FALSE。既定値は FALSE です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 8 HRESULT SetDirectory(LPWSTR pszDirectory)

新しい作業ディレクトリを設定します。

pszDirectoryLPWSTRin新しい作業ディレクトリの完全修飾パスを含む、null 終端文字列へのポインター。この値が NULL の場合は、現在の作業ディレクトリが使用されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 9 HRESULT Execute()

選択された項目に対して動詞を呼び出します。このインターフェイスの他のメソッドを呼び出した後に、このメソッドを呼び出してください。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IExecuteCommand "{7F9185B0-CB92-43C5-80A9-92277A4F7B54}"
#usecom global IExecuteCommand IID_IExecuteCommand "{}"
#comfunc global IExecuteCommand_SetKeyState    3 int
#comfunc global IExecuteCommand_SetParameters  4 wstr
#comfunc global IExecuteCommand_SetPosition    5 int
#comfunc global IExecuteCommand_SetShowWindow  6 int
#comfunc global IExecuteCommand_SetNoShowUI    7 int
#comfunc global IExecuteCommand_SetDirectory   8 wstr
#comfunc global IExecuteCommand_Execute        9
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。