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

IMenuButton

COM
IID951ed750-d080-11d0-b197-000000000000継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IMenuButton インターフェイスを使用すると、スナップインのメニューボタンを追加および管理できます。

メソッド 3

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

vtbl 3 HRESULT AddButton(INT idCommand, LPWSTR lpButtonText, LPWSTR lpTooltipText)

IMenuButton::AddButton メソッドを使用すると、特定のビューの MMC メニューバーにボタンを追加できます。

idCommandINTinメニューバーに追加するボタンを一意に識別する、ユーザー指定の値を指定します。
lpButtonTextLPWSTRinボタンに表示するテキスト値(null 終端文字列)へのポインター。
lpTooltipTextLPWSTRinユーザーがボタンの上にマウスポインターを置いたときに表示するテキスト値(null 終端文字列)へのポインター。

戻り値

このメソッドは次のいずれかの値を返します。

解説(Remarks)

特定のビューの MMC メニューバーに追加されたボタンは、常に既存のボタンの後に追加されます。すべてのメニューボタンの初期状態は、非表示かつ無効です。

スナップインがフォーカスを失うと、これらのボタンはメニューバーから自動的に削除されます。そのため、スナップインがフォーカスを得るたびに追加する必要があります。

このメソッドは、プライマリスナップインまたは拡張スナップインから呼び出すことができます。

vtbl 4 HRESULT SetButton(INT idCommand, LPWSTR lpButtonText, LPWSTR lpTooltipText)

IMenuButton::SetButton メソッドを使用すると、変更されるメニューバー内のボタンのテキスト属性を設定できます。

idCommandINTinメニューバーに追加するボタンを一意に識別する、ユーザー指定の値を指定します。
lpButtonTextLPWSTRinボタンに表示するテキスト値(null 終端文字列)へのポインター。
lpTooltipTextLPWSTRinユーザーがボタンの上にマウスポインターを置いたときに表示するテキスト値(null 終端文字列)へのポインター。

戻り値

このメソッドは次のいずれかの値を返します。

vtbl 5 HRESULT SetButtonState(INT idCommand, MMC_BUTTON_STATE nState, BOOL bState)

IMenuButton::SetButtonState メソッドを使用すると、メニューボタンの状態を変更できます。

idCommandINTin状態を変更するメニューボタンを一意に識別する、ユーザー指定の値を指定します。
nStateMMC_BUTTON_STATEin

ボタンの状態を指定します。この値には、 MMC_BUTTON_STATE 列挙体の次のいずれかの値を指定できます。

ENABLED

ボタンはユーザー入力を受け付けます。この状態を持たないボタンはユーザー入力を受け付けず、淡色表示になります。

HIDDEN

ボタンは表示されず、ユーザー入力を受け取ることができません。

bStateBOOLin状態をオンにするかオフにするかを指定します。TRUE はボタンの状態がオンであることを示します。それ以外の場合は 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_IMenuButton "{951ED750-D080-11D0-B197-000000000000}"
#usecom global IMenuButton IID_IMenuButton "{}"
#comfunc global IMenuButton_AddButton       3 int,wstr,wstr
#comfunc global IMenuButton_SetButton       4 int,wstr,wstr
#comfunc global IMenuButton_SetButtonState  5 int,int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。