次の方法で共有


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_SHVIEWFIRSTFCIDM_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 以降)