Partager via


IOleInPlaceFrame ::SetMenu, méthode (oleidl.h)

Ajoute un menu composite au cadre de fenêtre contenant l’objet en cours d’activation sur place.

Syntaxe

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

Paramètres

[in] hmenuShared

Handle du menu composite construit par les appels à IOleInPlaceFrame ::InsertMenus et à la fonction InsertMenu .

[in] holemenu

Handle du descripteur de menu retourné par la fonction OleCreateMenuDescriptor .

[in] hwndActiveObject

Handle à une fenêtre appartenant à l’objet et à laquelle les messages de menu, les commandes et les accélérateurs doivent être envoyés.

Valeur retournée

Cette méthode retourne S_OK en cas de réussite. Les autres valeurs de retour possibles sont les suivantes.

Code de retour Description
E_INVALIDARG
Le handle spécifié n’est pas valide.
E_UNEXPECTED
Une erreur inattendue s’est produite.

Remarques

Notes aux appelants

L’objet appelle IOleInPlaceFrame ::SetMenu pour demander au conteneur d’installer la structure de menu composite configurée par les appels à IOleInPlaceFrame ::InsertMenus.

Notes aux implémenteurs

L’implémentation de cette méthode par un conteneur SDI doit appeler la fonction SetMenu . Un conteneur MDI doit envoyer un message WM_MDISETMENU , en utilisant hmenuShared comme menu à installer. Le conteneur doit appeler OleSetMenuDescriptor pour installer le code de répartition OLE.

Lors de la désactivation, le conteneur doit appeler IOleInPlaceFrame ::SetMenu, en spécifiant NULL pour supprimer le menu partagé. Cela permet de réduire les repeints de fenêtre. Le conteneur doit également appeler OleSetMenuDescriptor, en spécifiant NULL pour décrocher le code de distribution. Enfin, l’application objet appelle OleDestroyMenuDescriptor pour libérer la structure de données.

Note Lors de l’exécution de IOleInPlaceFrame ::SetMenu, n’appelez pas les fonctions PeekMessage ou GetMessage , ni à une boîte de dialogue. Cela peut entraîner un blocage du système. Il existe d’autres restrictions quant aux méthodes et fonctions d’interface OLE qui peuvent être appelées à partir de IOleInPlaceFrame ::SetMenu.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête oleidl.h

Voir aussi

IOleInPlaceFrame

IOleInPlaceFrame ::InsertMenus

InsertMenu

OleDestroyMenuDescriptor

OleSetMenuDescriptor