IShellBrowser::InsertMenusSB メソッド (shobjidl_core.h)
拡張名前空間の表示または使用時に表示される複合メニューに、コンテナーがメニュー グループを挿入できるようにします。
構文
HRESULT InsertMenusSB(
HMENU hmenuShared,
LPOLEMENUGROUPWIDTHS lpMenuWidths
);
パラメーター
hmenuShared
種類: HMENU
空のメニューへのハンドル。
lpMenuWidths
種類: LPOLEMENUGROUPWIDTHS
6 つの LONG 値の OLEMENUGROUPWIDTHS 配列のアドレス。 コンテナーは、要素 0、2、および 4 を入力して、[ファイル]、[表示]、[ウィンドウ] メニュー グループに指定したメニュー要素の数を反映します。
戻り値
種類: HRESULT
成功した場合 はS_OK を返し、それ以外の場合は COM 定義のエラー値を返します。
注釈
このメソッドは、 IOleInPlaceFrame::InsertMenus メソッドに似ています。 Windows エクスプローラーは、[ファイル] メニュー グループの [ファイル] および [編集] ドロップダウン メニュー、[コンテナー] メニュー グループの [表示] メニューと [ツール] メニュー、および [ウィンドウ] メニュー グループの [ヘルプ] メニューを配置します。 各ドロップダウン メニューには、一意の識別子 (FCIDM_MENU_FILE/EDIT/VIEW/TOOLS/HELP) があります。 ビューは、OLE のインプレース アクティブ化メカニズムとは異なる識別子によって、メニュー項目をこれらのサブメニューに挿入できます。 ビューが Windows エクスプローラー のサブメニューまたは独自のサブメニューに挿入するメニューのコマンド識別子は、FCIDM_SHVIEWFIRSTとFCIDM_SHVIEWLASTの間にある必要があります。
呼び出し元のアプリケーションに関する注意事項
このメソッドは、最初にアクティブ化されるときに名前空間拡張機能によって呼び出されるため、メニューをフレーム レベルのユーザー インターフェイスに挿入できます。オブジェクト アプリケーションは、コンテナーに対して、hmenuShared パラメーターで指定されたメニューにメニューを追加し、lpMenuWidths パラメーターが指す OLEMENUGROUPWIDTHS 配列のグループ数を設定するように求めます。 その後、オブジェクト アプリケーションは独自のメニューとカウントを追加します。 オブジェクトは、複合メニューを構築するために必要な回数だけ IOleInPlaceFrame::InsertMenus メソッドを呼び出すことができます。 コンテナーでは、ドロップダウン メニューのすべての項目に対して、複合メニューに関連付けられている初期メニュー ハンドルを使用する必要があります。
実装者へのメモ
IShellBrowser 実装の場合、メニュー識別子は、FCIDM_BROWSERLASTするFCIDM_BROWSERFIRSTの範囲内にある必要があります。要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shobjidl_core.h (Shobjidl.h を含む) |
[DLL] | Shell32.dll (バージョン 4.0 以降) |