次の方法で共有


IUIFramework::GetView メソッド (uiribbon.h)

IUIRibbonIUIContextualUI など、Windows リボン フレームワーク ビューを表すインターフェイスへのポインターのアドレスを取得します。

構文

HRESULT GetView(
  [in]  UINT32 viewId,
  [in]  REFIID riid,
  [out] void   **ppv
);

パラメーター

[in] viewId

種類: UINT32

ビューの ID。 リボンまたは ContextPopupCommand.Id の値は 0 です。

[in] riid

種類: REFIID

IUIRibbon または IUIContextualUI のインターフェイス ID。

[out] ppv

型: void**

このメソッドが戻るとき、 には、 IUIRibbon または IUIContextualUI オブジェクトへのポインターのアドレスが含まれます。

戻り値

種類: HRESULT

成功した場合はS_OKを返します。それ以外の場合は、次の一覧のエラー値。

説明
E_INVALIDARG riid は有効なインターフェイス ID ではありません。
E_FAIL 操作が失敗しました。

注釈

リボン フレームワーク UI 機能は、 リボンやContextPopup などの基本的に組み込みのコア フレームワークである Views によって区別されます。

IUIFramework::GetView では、アプリケーションの有効期間を通じてインターフェイスへのポインターを維持するのではなく、ホスト アプリケーションで一時的なインターフェイス ポインターを作成し、必要に応じてメソッドを呼び出します。

メモ ホスト アプリケーションは、メモリ リークを回避するために、一時インターフェイス ポインターで IUnknown::Release を呼び出す必要があります。
 
たとえば、リボンのサイズが変更されるたびに、ホスト アプリケーションは GetHeight を 呼び出して、ホスト クライアント領域のサイズを適切に調整します。

次の例では、 IUIFramework::GetView メソッドを使用してリボン ビュー オブジェクトを取得し、 GetHeight メソッドを呼び出してリボンの高さを取得し、リボンの高さに基づいて Context Popup コントロールの表示場所を計算する方法を示します。

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;
    }
  }
}

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー uiribbon.h
[DLL] Mshtml.dll

こちらもご覧ください

IUIFramework

Windows リボン フレームワークのサンプル