Partager via


Interfaces requises (COM)

Le tableau ci-dessous répertorie les interfaces de conteneur de contrôles ActiveX et indique les interfaces facultatives, et celles qui sont obligatoires et doivent être implémentées par les conteneurs de contrôle.

Interface Requis ? Commentaires
IOleClientSite
Oui
IAdviseSink
Non
Uniquement lorsque le conteneur souhaite (a) des notifications de modification de données (contrôles avec IDataObject), (b) afficher la notification de modification (contrôles qui ne sont pas actifs et qui ont IViewObject ou IViewObject2) et (c) d’autres notifications de contrôles agissant en tant qu’objets incorporés standard.
IOleInPlaceSite
Oui
IOleControlSite
Oui
IOleInPlaceFrame
Oui
IOleContainer
Oui
Voir la note 1
IDispatch pour les propriétés ambiantes
Oui
Voir la remarque 2 et propriétés ambiantes pour les contrôles
Jeux d’événements de contrôle
Oui
Voir la remarque 2
ISimpleFrameSite
Non
ISimpleFrameSite et la prise en charge des frames simples imbriqués sont facultatifs.
IPropertyNotifySink
Non
Uniquement nécessaire pour les conteneurs qui (a) ont leur propre interface utilisateur d’édition de propriétés qui nécessiterait une mise à jour chaque fois qu’un contrôle a modifié une propriété elle-même ou (b) souhaite contrôler les modifications de propriété [requestedit] et d’autres fonctionnalités de liaison de données de ce type.
IErrorInfo
Oui
Obligatoire si le conteneur prend en charge les interfaces doubles. Voir la note 2.
IClassFactory2
Non
La prise en charge est fortement recommandée.
  1. IOleContainer est implémenté sur l’objet document ou formulaire (ou analogue approprié) qui contient les sites de conteneur. Les contrôles utilisent IOleContainer pour accéder à d’autres contrôles dans le même document ou formulaire.
  2. La prise en charge des interfaces doubles n’est pas obligatoire, mais elle est fortement recommandée. L’écriture de conteneurs de contrôles ActiveX pour tirer parti des interfaces doubles offre de meilleures performances grâce aux contrôles qui offrent la prise en charge de la double interface.

Les conteneurs de contrôle ActiveX doivent prendre en charge les exceptions OLE Automation. Si un conteneur de contrôle prend en charge les interfaces doubles, il doit capturer les exceptions d’automatisation via IErrorInfo.

Containers