Win32 API 日本語リファレンス
ホームNetworking.Clustering › IWCContextMenuCallback

IWCContextMenuCallback

COM
IID97dede64-fc6b-11cf-b5f5-00a0c90ab505継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWCContextMenuCallback インターフェイスは、フェールオーバー クラスター アドミニストレーターのコンテキスト メニューに項目を追加するために、フェールオーバー クラスター アドミニストレーター拡張機能から呼び出されます。

解説(Remarks)

IWCContextMenuCallback インターフェイスを呼び出すには、フェールオーバー クラスター アドミニストレーターが IWEExtendContextMenu::AddContextMenuItems メソッドを呼び出した際に受け取る piCallback ポインターを使用します。

メソッド 1

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

vtbl 3 HRESULT AddExtensionMenuItem(LPWSTR lpszName, LPWSTR lpszStatusBarText, DWORD nCommandID, DWORD nSubmenuCommandID, DWORD uFlags)

フェールオーバー クラスター アドミニストレーターのコンテキスト メニューにメニュー項目を追加します。

lpszNameLPWSTRinメニューに追加する項目の名前を含む、null で終わる Unicode 文字列へのポインター。BSTR として宣言されていますが、このパラメーターは実際には LPWSTR として実装されています。
lpszStatusBarTextLPWSTRin新しい項目が選択されたときにステータス バーに表示するテキストへのポインター。BSTR として宣言されていますが、このパラメーターは実際には LPWSTR として実装されています。
nCommandIDDWORDinメニュー項目が選択されたときに呼び出されるコマンドの識別子。 nCommandID パラメーターに –1 を設定することはできません。
nSubmenuCommandIDDWORDinサブメニューの識別子。サブメニューはサポートされていないため、nSubmenuCommandID パラメーターは 0 でなければなりません。
uFlagsDWORDin

新しいメニュー項目を記述するフラグのビットマスク。次の値を 1 つ以上設定できます。

MF_CHECKED (8)

MF_UNCHECKED と対になるトグルとして機能し、項目の横に既定のチェック マークを表示します。

MF_UNCHECKED (0)

MF_CHECKED と対になるトグルとして機能し、項目の横に表示されているチェック マークを削除します。

MF_DISABLED (2)

メニュー項目を無効にして選択できないようにしますが、淡色表示にはしません。

MF_ENABLED (0)

メニュー項目を有効にして選択できるようにし、項目が淡色表示されていた場合はその状態を解除します。

MF_GRAYED (1)

メニュー項目を無効にして選択できないようにし、淡色表示にします。

MF_MENUBARBREAK (32 (0x20))

項目を新しい列に配置します。新しい列は縦の区切り線によって前の列と区切られます。

MF_MENUBREAK (64 (0x40))

項目を新しい列に配置します。列の間に区切り線は表示されません。

MF_SEPARATOR (2048 (0x800))

水平の区切り線を描画します。この線は淡色表示、無効化、強調表示のいずれも行えません。lpszName および lpszStatusBarText パラメーターは無視されます。

MF_STRING (0)

メニュー項目が文字列であることを指定します。lpszName パラメーターには NULL で終わる Unicode 文字列へのポインターが格納されます。これが既定の解釈です。

戻り値

AddExtensionMenuItem が成功しなかった場合は、その他の HRESULT 値を返すことがあります。

戻り値/値 説明
NOERROR
0
操作は成功しました。
E_INVALIDARG
0x80070057
uFlags パラメーターに MF_OWNERDRAW または MF_POPUP が設定されていました。
E_OUTOFMEMORY
0x8007000e
メニュー項目の割り当て中にエラーが発生しました。

解説(Remarks)

AddExtensionMenuItem メソッドは、コンテキスト メニューの先頭に項目を追加し、その後に区切り線を配置します。ユーザーがこのメニュー項目を選択すると、 nCommandID で識別されるコマンドが IWEInvokeCommand::InvokeCommand メソッドの nCommandID パラメーターとして渡されます。

uFlags パラメーターでは、MF_OWNERDRAW および MF_POPUP フラグはサポートされていない点に注意してください。

フェールオーバー クラスター アドミニストレーター の拡張機能は、 IWEExtendContextMenu::AddContextMenuItems メソッド内から AddExtensionMenuItem を呼び出します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWCContextMenuCallback "{97DEDE64-FC6B-11CF-B5F5-00A0C90AB505}"
#usecom global IWCContextMenuCallback IID_IWCContextMenuCallback "{}"
#comfunc global IWCContextMenuCallback_AddExtensionMenuItem  3 wstr,wstr,int,int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。