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

IUICommandHandler

COM
IID75ae0a2d-dc03-4c9f-8883-069660d0beb6継承元IUnknown自前メソッド開始 vtbl3

メソッド 2

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

vtbl 3 HRESULT Execute(DWORD commandId, UI_EXECUTIONVERB verb, PROPERTYKEY* key, PROPVARIANT* currentValue, IUISimplePropertySet* commandExecutionProperties)
commandIdDWORDin実行するコマンドの ID を指定する。
verbUI_EXECUTIONVERBinコマンドに対して行う操作(実行、プレビュー等)を示す UI_EXECUTIONVERB 値を指定する。
keyPROPERTYKEY*inoptional操作対象となるプロパティを識別する PROPERTYKEY へのポインタである。
currentValuePROPVARIANT*inoptional操作時点のコマンドの現在値を保持する PROPVARIANT へのポインタである。
commandExecutionPropertiesIUISimplePropertySet*inoptional実行に関する追加プロパティを提供する IUISimplePropertySet へのポインタである。
vtbl 4 HRESULT UpdateProperty(DWORD commandId, PROPERTYKEY* key, PROPVARIANT* currentValue, PROPVARIANT* newValue)
commandIdDWORDinプロパティを更新する対象コマンドの ID を指定する。
keyPROPERTYKEY*in更新するプロパティを識別する PROPERTYKEY へのポインタである。
currentValuePROPVARIANT*inoptionalプロパティの現在値を保持する PROPVARIANT へのポインタである。
newValuePROPVARIANT*out更新後の新しいプロパティ値を受け取る PROPVARIANT へのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IUICommandHandler "{75AE0A2D-DC03-4C9F-8883-069660D0BEB6}"
#usecom global IUICommandHandler IID_IUICommandHandler "{}"
#comfunc global IUICommandHandler_Execute         3 int,int,var,var,sptr
#comfunc global IUICommandHandler_UpdateProperty  4 int,var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。