Interfaces requises (COM)

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

Interface Requis ? Commentaires
Renvoyé
Oui
IAdviseSink
Non
Uniquement lorsque le conteneur désire (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 un IViewObject2) et (c) d’autres notifications de contrôles agissant comme des objets incorporés standard.
IOleInPlaceSite
Oui
IOleControlSite
Oui
IOleInPlaceFrame
Oui
IOleContainer
Oui
Voir la remarque 1
IDispatch pour les propriétés ambiantes
Oui
Voir la remarque 2 et les 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
Nécessaire uniquement pour les conteneurs qui (a) ont leur propre interface utilisateur de modification de propriété, qui nécessiterait une mise à jour chaque fois qu’un contrôle modifie une propriété elle-même ou (b) souhaite contrôler [ ] les modifications des propriétés modification et d’autres fonctionnalités de liaison de données.
IErrorInfo
Oui
Obligatoire si le conteneur prend en charge les interfaces doubles. Voir la remarque 2.
IClassFactory2
Non
La prise en charge est vivement recommandée.
  1. IOleContainer est implémenté sur l’objet document ou formulaire (ou une valeur analogique appropriée) qui contient les sites conteneurs. Les contrôles utilisent IOleContainer pour naviguer vers 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ôle ActiveX pour tirer parti des interfaces doubles offre de meilleures performances avec les contrôles qui offrent une prise en charge d’interface double.

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 Automation via IErrorInfo.

Containers