IExtendControlbar
COM公式ドキュメント
IExtendControlbar インターフェイスは、拡張機能がコンソールにコントロールバーを追加できるようにします。これにより、ツールバーやその他のユーザーインターフェイスの拡張を追加して、スナップインの機能と外観を向上させる手段が提供されます。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IExtendControlbar::SetControlbar メソッドは、コントロールバーをアタッチまたはデタッチします。
| pControlbar | IControlbar* | in | 設定するコントロールバーオブジェクトの IControlbar インターフェイスへのポインター。NULL 以外の値はコントロールバーをアタッチし、NULL 値はコントロールバーをデタッチします。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
解説(Remarks)
項目が選択および選択解除されると、スナップインがアクティブ化および非アクティブ化されます。スナップインがアクティブ化されると、コンソールは NULL 以外の pControlbar 値を指定して SetControlbar を呼び出します。スナップインは、この IControlBar に対して AddRef を呼び出す必要があります。また、スナップインはこの機会にコントロールをアタッチする必要があります。同様に、スナップインが非アクティブ化されると、コンソールは NULL の pControlbar を指定して SetControlbar を呼び出します。スナップインは、コントロールをデタッチし、保存しておいた IControlBar に対して Release を呼び出す必要があります。
IExtendControlbar::ControlbarNotify メソッドは、ユーザー操作の結果としてコンソールからスナップインに送信される通知を指定します。
| event | MMC_NOTIFY_TYPE | in | 次のいずれかを指定する値: MMCN_BTN_CLICKツールバー上のボタンがクリックされました。 MMCN_DESELECT_ALL仮想リストのすべての項目が選択解除されました。 MMCN_SELECT項目が選択されたため、スナップインはツールバーのオプションを更新する必要があります。 MMCN_MENU_BTNCLICKツールバー上のメニューボタンがクリックされました。 |
| arg | LPARAM | in | event パラメーターに依存します。詳細については、 MMC Notifications を参照してください。 |
| param2 | LPARAM | in | 通知に固有の追加情報を含む引数である。意味は event の値によって異なる。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
解説(Remarks)
詳細については、個々の通知を参照してください。スナップインは、処理しない通知に対しては S_FALSE を返す必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IExtendControlbar "{49506520-6F40-11D0-A98B-00C04FD8D565}"
#usecom global IExtendControlbar IID_IExtendControlbar "{}"
#comfunc global IExtendControlbar_SetControlbar 3 sptr
#comfunc global IExtendControlbar_ControlbarNotify 4 int,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。