Partager via


Interfaces requises (COM)

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

Interface Obligatoire? 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 provenant 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
Consultez la note 2 et Propriétés ambiantes des contrôles
Jeux d’événements de contrôle
Oui
Voir la note 2
ISimpleFrameSite
Non
ISimpleFrameSite et la prise en charge des images simples imbriquées est facultative.
IPropertyNotifySink
Non
Uniquement nécessaire pour les conteneurs qui ont (a) leur propre interface utilisateur de modification de propriété qui nécessiterait la mise à jour chaque fois qu’un contrôle a changé une propriété elle-même ou (b) souhaite contrôler [demandéit] modifications de propriété et d’autres fonctionnalités de liaison de données.
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 analogique approprié) qui contient les sites 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 est fortement recommandée. L’écriture de conteneurs de contrôle ActiveX pour tirer parti des interfaces doubles offre de meilleures performances avec des contrôles qui offrent une prise en charge 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 deux interfaces, il doit capturer des exceptions d’automatisation via IErrorInfo.

conteneurs