Win32 API 日本語リファレンス
ホームUI.Ribbon › IUIRibbon

IUIRibbon

COM
IID803982ab-370a-4f7e-a9e7-8784036a6e26継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IUIRibbon インターフェイスは Windows リボン フレームワークによって実装され、リボンの設定とプロパティを指定する機能を提供します。

解説(Remarks)

リボンは、アプリケーション メニュークイック アクセス ツール バー (QAT)タブ (コアおよびコンテキスト)、グループ (コントロールのコンテナー)、および高機能なコンテキスト メニュー システム (コンテキスト ポップアップ) などの複数のコンポーネントで構成されます。

メソッド 3

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

vtbl 3 HRESULT GetHeight(DWORD* cy)

リボンの高さを取得します。

cyDWORD*outリボンの高さ (ピクセル単位)。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

cy に返される値は、ホスト ウィンドウの幅やリボンのマークアップで宣言されたレイアウト テンプレートなど (これらに限定されません) の複数の要因に依存します。

次の例では、IUIRibbon::GetHeight メソッドを使用してリボンの高さを取得し、コンテキスト ポップアップ コントロールの表示位置を計算する方法を示します。

void GetDisplayLocation(POINT &pt, HWND hWnd)
{
  if (pt.x == -1 && pt.y == -1)
  {
    HRESULT hr = E_FAIL;

    // Display the menu in the upper-left corner of the client area, below the ribbon.
    IUIRibbon* pRibbon;
    hr = g_pFramework->GetView(0, IID_PPV_ARGS(&pRibbon));
    if (SUCCEEDED(hr))
    {
      UINT32 uRibbonHeight = 0;
      hr = pRibbon->GetHeight(&uRibbonHeight);
      if (SUCCEEDED(hr))
      {
        pt.x = 0;
        pt.y = uRibbonHeight;
        // Convert client coordinates of a specified point to screen coordinates.
        ClientToScreen(hWnd, &pt);
      }
      pRibbon->Release();
    }
    if (FAILED(hr))
    {
      // Default to just the upper-right corner of the entire screen.
      pt.x = 0;
      pt.y = 0;
    }
  }
}
vtbl 4 HRESULT LoadSettingsFromStream(IStream* pStream)

バイナリ ストリームからリボンの設定を読み込みます。

pStreamIStream*inIStream オブジェクトへのポインター。

戻り値

型: HRESULT

成功した場合は S_OK を返します。シリアル化されたストリームの形式または内容が空である場合、あるいはリボン フレームワークで検証できない場合は E_FAIL を返します。

解説(Remarks)

ストリームはホスト アプリケーションから提供されます。

Windows リボン フレームワークが有効なストリームを読み込めない場合は、代わりに既定のリボン レイアウトが描画されます。

LoadSettingsFromStream メソッドは、クイック アクセス ツール バー (QAT) の項目など、リボンの状態をアプリケーションのインスタンス間で永続化するのに役立ちます。

vtbl 5 HRESULT SaveSettingsToStream(IStream* pStream)

リボンの設定をバイナリ ストリームに書き込みます。

pStreamIStream*inIStream オブジェクトへのポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

ストリームは、適切に保存できるようホスト アプリケーションに引き渡されます。

SaveSettingsToStream メソッドは、クイック アクセス ツール バー (QAT) の項目など、リボンの状態をアプリケーションのインスタンス間で永続化するのに役立ちます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IUIRibbon "{803982AB-370A-4F7E-A9E7-8784036A6E26}"
#usecom global IUIRibbon IID_IUIRibbon "{}"
#comfunc global IUIRibbon_GetHeight               3 var
#comfunc global IUIRibbon_LoadSettingsFromStream  4 sptr
#comfunc global IUIRibbon_SaveSettingsToStream    5 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。