Partager via


IUIFramework ::GetView, méthode (uiribbon.h)

Récupère l’adresse d’un pointeur vers une interface qui représente une vue de l’infrastructure du ruban Windows, telle que IUIRibbon ou IUIContextualUI.

Syntaxe

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

Paramètres

[in] viewId

Type : UINT32

ID de l’affichage. Valeur 0 pour un ruban ou la Command.Id d’un ContextPopup.

[in] riid

Type : REFIID

ID d’interface pour IUIRibbon ou IUIContextualUI.

[out] ppv

Type : void**

Lorsque cette méthode est retournée, contient l’adresse d’un pointeur vers un objet IUIRibbon ou IUIContextualUI .

Valeur retournée

Type : HRESULT

Retourne S_OK en cas de réussite ; sinon, une valeur d’erreur de la liste suivante.

Valeur Description
E_INVALIDARG riid n’est pas un ID d’interface valide.
E_FAIL L'opération a échoué.

Remarques

La fonctionnalité d’interface utilisateur de l’infrastructure du ruban se distingue par les vues, qui sont essentiellement des infrastructures de base intégrées, telles que le ruban et ContextPopup.

Au lieu de conserver un pointeur vers une interface tout au long de la vie d’une application, IUIFramework ::GetView permet à une application hôte de créer un pointeur d’interface temporaire et d’appeler des méthodes si nécessaire.

Note L’application hôte doit appeler IUnknown ::Release sur le pointeur d’interface temporaire pour éviter une fuite de mémoire.
 
Par exemple, chaque fois que la taille du ruban est modifiée, une application hôte appelle GetHeight pour ajuster la taille de la zone cliente hôte de manière appropriée.

Exemples

L’exemple suivant montre comment utiliser la méthode IUIFramework ::GetView pour récupérer un objet Ribbon View, appeler la méthode GetHeight pour récupérer la hauteur du ruban et calculer un emplacement d’affichage pour un contrôle Contextuel en fonction de la hauteur du ruban.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête uiribbon.h
DLL Mshtml.dll

Voir aussi

IUIFramework

Exemples d’infrastructure du ruban Windows