Поделиться через


Метод IUIFramework::GetView (uiribbon.h)

Извлекает адрес указателя на интерфейс, представляющий представление платформы ленты Windows, например IUIRibbon или IUIContextualUI.

Синтаксис

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

Параметры

[in] viewId

Тип: UINT32

Идентификатор представления. Значение 0 для ленты или Command.IdОбъекта ContextPopup.

[in] riid

Тип: REFIID

Идентификатор интерфейса для IUIRibbon или IUIContextualUI.

[out] ppv

Тип: void**

При возврате этим методом содержит адрес указателя на объект IUIRibbon или IUIContextualUI .

Возвращаемое значение

Тип: HRESULT

В случае успешного выполнения возвращает S_OK; В противном случае — значение ошибки из следующего списка.

Значение Описание
E_INVALIDARG Riid не является допустимым идентификатором интерфейса.
E_FAIL Операция не удалась.

Комментарии

Функциональные возможности пользовательского интерфейса платформы ленты отличаются представлениями, которые по сути являются встроенными основными платформами, такими как лента и ContextPopup.

IUIFramework::GetView позволяет ведущему приложению создать временный указатель интерфейса и при необходимости вызывать методы, вместо того чтобы поддерживать указатель на интерфейс.

Примечание Во избежание утечки памяти ведущее приложение должно вызвать IUnknown::Release для временного указателя интерфейса.
 
Например, при каждом изменении размера ленты ведущее приложение вызывает GetHeight , чтобы соответствующим образом настроить размер клиентской области узла.

Примеры

В следующем примере показано, как использовать метод IUIFramework::GetView для получения объекта Ribbon View, вызвать метод 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;
    }
  }
}

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header uiribbon.h
DLL Mshtml.dll

См. также раздел

IUIFramework

Примеры Windows Ribbon Framework