Partager via


Utilisation des fonctionnalités du conteneur

Les sections précédentes ont décrit certaines des prises en charge requises côté appelant qu’un contrôle ActiveX doit avoir pour accéder à certaines fonctionnalités de son conteneur. Le tableau suivant décrit l’utilisation par un contrôle des interfaces côté conteneur et le moment où une telle utilisation se produit.

Interface Container, objet Utilisation
IOleClientSite
Site
Les contrôles qui implémentent IOleObject appellent des méthodes IOleClientSite dans le cadre du protocole d’incorporation OLE standard, en particulier les méthodes SaveObject, ShowObject, OnShowWindow (uniquement si un état d’activation de fenêtre distincte est pris en charge), RequestNewObjectLayout et GetContainer (si la communication avec d’autres contrôles est souhaitée). La méthode GetMoniker n’est utilisée que lorsque le contrôle peut être lié à l’externe, c’est-à-dire que le contrôle n’est pas marqué avec OLEMISC_CANTLINKINSIDE.
IOleInPlaceSite
Site
Les contrôles qui ont un état activé sur place et éventuellement un état actif de l’interface utilisateur appellent les méthodes IOleInPlaceSite (généralement toutes, à l’exception de ContextSensitiveHelp) dans le cadre du protocole d’activation sur place OLE standard.
IAdviseSink
Site
Le contrôle appelle OnDataChange si le contrôle prend en charge IDataObject, OnViewChange si le contrôle prend en charge IViewObject2 et OnClose, OnSave et OnRename si le contrôle prend en charge IOleObject.
IOleControlSite
Site
S’il est pris en charge, le contrôle appelle OnControlInfoChanged lorsque les éléments mnémoniques changent, LockInPlaceActive et TransformCoords si des événements sont déclenchés (cette dernière méthode est utilisée uniquement si les coordonnées sont transmises en tant qu’arguments d’événement), OnFocus et TranslateAccelerator si le contrôle a un état actif de l’interface utilisateur, et GetExtendedControl si le contrôle souhaite examiner les propriétés de contrôle étendu (appartenant au conteneur).
IDispatch (propriétés ambiantes)
Site
Utilisé pour accéder aux propriétés ambiantes.
IPropertyNotifySink
Variable
Un contrôle doit générer OnChanged et OnRequestEdit pour toutes les propriétés de contrôle qui sont marquées comme [bindable] et [request], respectivement.
Autres interfaces de récepteur d’événements
Variable
Un contrôle qui a des interfaces sortantes autres que IPropertyNotifySink reçoit d’autres pointeurs d’interface de l’IID correct vers les implémentations IConnectionPoint::Advise du contrôle (qui se trouvent généralement dans les sous-objets du contrôle). Un contrôle sait toujours comment appeler ses propres interfaces d’événements, car le contrôle définit ces interfaces.
IOleInPlaceFrame
Frame
Utilisé lorsqu’un contrôle a un état actif de l’interface utilisateur sur place qui nécessite des outils au niveau de l’image ou des éléments de menu.
IOleInPlaceUIWindow
Document
Utilisé uniquement lorsqu’un contrôle a un état actif de l’interface utilisateur sur place qui nécessite des outils d’interface utilisateur au niveau du document ou du volet. Ceci est rare.

Contrôles