Condividi tramite


Metodo IOleInPlaceFrame::SetMenu (oleidl.h)

Aggiunge un menu composito alla cornice della finestra contenente l'oggetto attivato sul posto.

Sintassi

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

Parametri

[in] hmenuShared

Handle del menu composito costruito dalle chiamate a IOleInPlaceFrame::InsertMenus e alla funzione InsertMenu .

[in] holemenu

Handle al descrittore del menu restituito dalla funzione OleCreateMenuDescriptor .

[in] hwndActiveObject

Handle a una finestra di proprietà dell'oggetto e a cui inviare messaggi di menu, comandi e acceleratori.

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
E_INVALIDARG
L'handle specificato non è valido.
E_UNEXPECTED
Si è verificato un errore imprevisto.

Commenti

Note ai chiamanti

L'oggetto chiama IOleInPlaceFrame::SetMenu per chiedere al contenitore di installare la struttura di menu composita configurata dalle chiamate a IOleInPlaceFrame::InsertMenus.

Note per gli implementatori

L'implementazione di un contenitore SDI di questo metodo deve chiamare la funzione SetMenu . Un contenitore MDI deve inviare un messaggio di WM_MDISETMENU usando hmenuShared come menu da installare. Il contenitore deve chiamare OleSetMenuDescriptor per installare il codice di invio OLE.

Quando si disattiva, il contenitore deve chiamare IOleInPlaceFrame::SetMenu, specificando NULL per rimuovere il menu condiviso. Questa operazione consente di ridurre al minimo le repaint della finestra. Il contenitore deve anche chiamare OleSetMenuDescriptor, specificando NULL per annullare il codice di invio. Infine, l'applicazione dell'oggetto chiama OleDestroyMenuDescriptor per liberare la struttura dei dati.

Nota Durante l'esecuzione di IOleInPlaceFrame::SetMenu, non effettuare chiamate alle funzioni PeekMessage o GetMessage o a una finestra di dialogo. In questo modo può causare il deadlock del sistema. Esistono ulteriori restrizioni per cui è possibile chiamare metodi e funzioni dell'interfaccia OLE all'interno di IOleInPlaceFrame::SetMenu.
 

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione oleidl.h

Vedi anche

Ioleinplaceframe

IOleInPlaceFrame::InsertMenus

InsertMenu

OleDestroyMenuDescriptor

OleSetMenuDescriptor