Win32 API 日本語リファレンス
ホームSystem.Mmc › IExtendControlbar

IExtendControlbar

COM
IID49506520-6f40-11d0-a98b-00c04fd8d565継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IExtendControlbar インターフェイスは、拡張機能がコンソールにコントロールバーを追加できるようにします。これにより、ツールバーやその他のユーザーインターフェイスの拡張を追加して、スナップインの機能と外観を向上させる手段が提供されます。

メソッド 2

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

vtbl 3 HRESULT SetControlbar(IControlbar* pControlbar)

IExtendControlbar::SetControlbar メソッドは、コントロールバーをアタッチまたはデタッチします。

pControlbarIControlbar*in設定するコントロールバーオブジェクトの IControlbar インターフェイスへのポインター。NULL 以外の値はコントロールバーをアタッチし、NULL 値はコントロールバーをデタッチします。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

解説(Remarks)

項目が選択および選択解除されると、スナップインがアクティブ化および非アクティブ化されます。スナップインがアクティブ化されると、コンソールは NULL 以外の pControlbar 値を指定して SetControlbar を呼び出します。スナップインは、この IControlBar に対して AddRef を呼び出す必要があります。また、スナップインはこの機会にコントロールをアタッチする必要があります。同様に、スナップインが非アクティブ化されると、コンソールは NULL の pControlbar を指定して SetControlbar を呼び出します。スナップインは、コントロールをデタッチし、保存しておいた IControlBar に対して Release を呼び出す必要があります。

vtbl 4 HRESULT ControlbarNotify(MMC_NOTIFY_TYPE event, LPARAM arg, LPARAM param2)

IExtendControlbar::ControlbarNotify メソッドは、ユーザー操作の結果としてコンソールからスナップインに送信される通知を指定します。

eventMMC_NOTIFY_TYPEin

次のいずれかを指定する値:

MMCN_BTN_CLICK

ツールバー上のボタンがクリックされました。

MMCN_DESELECT_ALL

仮想リストのすべての項目が選択解除されました。

MMCN_SELECT

項目が選択されたため、スナップインはツールバーのオプションを更新する必要があります。

MMCN_MENU_BTNCLICK

ツールバー上のメニューボタンがクリックされました。

argLPARAMinevent パラメーターに依存します。詳細については、 MMC Notifications を参照してください。
param2LPARAMin通知に固有の追加情報を含む引数である。意味は event の値によって異なる。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

解説(Remarks)

詳細については、個々の通知を参照してください。スナップインは、処理しない通知に対しては S_FALSE を返す必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。