Compartilhar via


Método IUIFramework::Initialize (uiribbon.h)

Conecta o aplicativo host à estrutura da Faixa de Opções do Windows.

Sintaxe

HRESULT Initialize(
  [in] HWND           frameWnd,
  [in] IUIApplication *application
);

Parâmetros

[in] frameWnd

Digite: HWND

Manipule para a janela de nível superior que conterá a Faixa de Opções.

[in] application

Tipo: IUIApplication*

Ponteiro para a implementação IUIApplication do aplicativo host.

Retornar valor

Tipo: HRESULT

Retorna S_OK se tiver êxito; caso contrário, um valor de erro da lista a seguir.

Valor Descrição
HRESULT_FROM_WIN32(ERROR_INVALID_WINDOW_HANDLE) frameWnd é NULL, não aponta para uma janela existente ou não é uma janela de nível superior da área de trabalho.
Nota Esse erro também será retornado se frameWnd for uma janela filho (WS_CHILD), for declarada como uma janela de ferramentas (WS_EX_TOOLWINDOW) ou não tiver uma propriedade legenda (WS_CAPTION é obrigatório).
 
HRESULT_FROM_WIN32(ERROR_WINDOW_OF_OTHER_THREAD) frameWnd não pertence ao thread de execução.
E_POINTER o aplicativo é NULL ou um ponteiro inválido.

Comentários

Esse método deve ser chamado pelo aplicativo host para cada janela de nível superior que requer uma faixa de opções.

Esse método é usado para configurar os ganchos que permitem que a estrutura da Faixa de Opções invoque retornos de chamada no aplicativo host.

Para inicializar a Faixa de Opções com êxito, um arquivo de marcação da Faixa de Opções compilado deve estar disponível como um recurso e especificado em uma chamada subsequente para IUIFramework::LoadUI. Esse arquivo de marcação é um componente integral da estrutura; especifica os controles a serem usados e seu layout.

Se IUIFramework::Initialize retornar com êxito:

  • Para eliminar inconsistência, redundância e incompatibilidade entre a Faixa de Opções e os modelos de comando tradicionais, a estrutura da Faixa de Opções remove a barra de menus padrão da janela de nível superior no aplicativo host.
  • A estrutura remove referências ao estilo WS_EX_CLIENTEDGE.
    Nota O estilo WS_EX_CLIENTEDGE especifica que uma janela tem uma borda com uma borda submersa. Esse estilo interfere visualmente na integração da Faixa de Opções e do aplicativo host.
     
  • A estrutura requer que o estilo de WS_SYSMENU seja habilitado. Se WS_SYSMENU não estiver habilitado, a estrutura não fornecerá funcionalidade alternativa e a renderização imprevisível da Faixa de Opções poderá resultar.
    Nota O estilo WS_SYSMENU especifica que a janela do aplicativo tem um menu do sistema na barra de título. Por associação, o estilo de WS_CAPTION também deve ser especificado (consulte ERROR_INVALID_WINDOW_HANDLE em Valores retornados acima).
     

Exemplos

O exemplo a seguir demonstra uma função básica de inicialização de estrutura.

//
//  FUNCTION:    InitializeFramework(HWND)
//
//  PURPOSE:    Initialize the Ribbon framework and bind a Ribbon to the application.
//
//  PARAMETERS:    
//                hWnd - Handle to the Ribbon host application window. 
//
//  COMMENTS:
//
//    In order to get a Ribbon to display, the Ribbon framework must be initialized. 
//    This involves three important steps:
//      1) Instantiate the Ribbon framework object (CLSID_UIRibbonFramework).
//      2) Pass the host HWND and IUIApplication object to the framework.
//      3) Load the binary markup compiled by the UI Command Compiler (UICC.exe).
//
//
bool InitializeFramework(HWND hWnd)
{
    // Instantiate the Ribbon framework object.
    HRESULT hr = CoCreateInstance(
        CLSID_UIRibbonFramework, 
        NULL, 
        CLSCTX_INPROC_SERVER, 
        IID_PPV_ARGS(&g_pFramework));
    if (!SUCCEEDED(hr))
    {
        return false;
    }    

    // Create the application object (IUIApplication) and call the 
    // framework Initialize method, passing the application object and the 
    // host HWND that the Ribbon will attach itself to.
    CComObject<CApplication> *pApplication = NULL;
    CComObject<CApplication>::CreateInstance(&pApplication);
    hr = pApplication->QueryInterface(&g_pApplication);
    if (!SUCCEEDED(hr))
    {
        return false;
    } 

    hr = g_pFramework->Initialize(hWnd, g_pApplication);
    if (!SUCCEEDED(hr))
    {
        return false;
    }

    // Load the binary markup.  
    // Initiate callbacks to the IUIApplication object that was 
    // provided to the framework earlier and bind command handler(s) 
    // to individual commands.
    hr = g_pFramework->LoadUI(GetModuleHandle(NULL), L"APPLICATION_RIBBON");
    if (!SUCCEEDED(hr))
    {
        return false;
    }
    return true;
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho uiribbon.h
DLL Mshtml.dll

Confira também

IUIFramework

IUIFramework::LoadUI

Elementos de marcação

Exemplos da Estrutura da Faixa de Opções do Windows