Método IOleInPlaceFrame::SetMenu (oleidl.h)

Adiciona um menu composto ao quadro de janela que contém o objeto que está sendo ativado no local.

Sintaxe

HRESULT SetMenu(
  [in] HMENU    hmenuShared,
  [in] HOLEMENU holemenu,
  [in] HWND     hwndActiveObject
);

Parâmetros

[in] hmenuShared

Um identificador para o menu composto construído por chamadas para IOleInPlaceFrame::InsertMenus e a função InsertMenu .

[in] holemenu

Um identificador para o descritor de menu retornado pela função OleCreateMenuDescriptor .

[in] hwndActiveObject

Um identificador para uma janela pertencente ao objeto e para o qual mensagens de menu, comandos e aceleradores devem ser enviados.

Retornar valor

Esse método retorna S_OK com êxito. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
E_INVALIDARG
O identificador especificado é inválido.
E_UNEXPECTED
Ocorreu um erro inesperado.

Comentários

Anotações para chamadores

O objeto chama IOleInPlaceFrame::SetMenu para solicitar que o contêiner instale a estrutura de menu composto configurada por chamadas para IOleInPlaceFrame::InsertMenus.

Anotações aos implementadores

A implementação desse método por um contêiner SDI deve chamar a função SetMenu . Um contêiner MDI deve enviar uma mensagem WM_MDISETMENU , usando hmenuShared como o menu a ser instalado. O contêiner deve chamar OleSetMenuDescriptor para instalar o código de expedição OLE.

Ao desativar, o contêiner deve chamar IOleInPlaceFrame::SetMenu, especificando NULL para remover o menu compartilhado. Isso é feito para ajudar a minimizar as repintações de janela. O contêiner também deve chamar OleSetMenuDescriptor, especificando NULL para remover o código de expedição. Por fim, o aplicativo de objeto chama OleDestroyMenuDescriptor para liberar a estrutura de dados.

Nota Durante a execução de IOleInPlaceFrame::SetMenu, não faça chamadas para as funções PeekMessage ou GetMessage ou uma caixa de diálogo. Isso pode fazer com que o sistema fique em deadlock. Há outras restrições sobre quais métodos e funções de interface OLE podem ser chamados de dentro de IOleInPlaceFrame::SetMenu.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho oleidl.h

Confira também

Ioleinplaceframe

IOleInPlaceFrame::InsertMenus

Insertmenu

OleDestroyMenuDescriptor

OleSetMenuDescriptor