Résumé
Un contrôle ActiveX doit implémenter l’interface IProvideClassInfo ou IProvideClassInfo2 pour activer la gestion des événements dans une page Web. Microsoft Internet Explorer utilise cette interface pour obtenir de la bibliothèque de types pour le contrôle et de déterminer le jeu d’événements disponible.
Informations supplémentaires
À l’aide d’un langage de script tel que VBScript ou JavaScript, un auteur de page Web peut utiliser l’automation pour appeler les méthodes et propriétés et gérer les événements pour un contrôle ActiveX placées sur la page avec une balise HTML < OBJECT >. Pour un contrôle ActiveX prendre en charge la gestion de ces événements, elle doit implémenter l’interface IProvideClassInfo ou IProvideClassInfo2. Internet Explorer interroge le contrôle de ces interfaces et, si elle est implémentée, appelle la méthode GetClassInfo() pour obtenir la bibliothèque de types pour le contrôle. Internet Explorer demande initialement le contrôle IProvideClassInfo2 et, si ce n’est pas implémenté, puis interroge pour IProvideClassInfo.The IProvideClassInfo2 interface IProvideClassInfo dérivé et fournit une méthode supplémentaire, GetGUID() , qui retourne un objet sortantes ID d’interface pour le son par défaut jeu d’événements. Pour les contrôles ActiveX développés à l’aide de Microsoft Foundation Classes, l’interface IProvideClassInfo2 est implémentée par défaut. Pour les contrôles ActiveX développés à l’aide de Microsoft Visual Basic, l’interface IProvideClassInfo est implémentée par défaut. Lorsque vous utilisez le Microsoft bibliothèque ATL (Active Template), version 3.0, les objets ATL de « contrôle lite » suivants n’implémentent pas l’interface IProvideClassInfo2 par défaut :
-
Objet simple
-
Objet Internet Explorer
-
Contrôle Lite
-
Lite contrôle Composite
-
Contrôle de HTML Lite
Vous pouvez facilement ajouter la prise en charge de la gestion des événements en implémentant les interfaces IProvideClassInfo. Pour ce faire, vous devez dériver votre contrôle de la mise en oeuvre de ATL par défaut, IProvideClassInfo2Impl.
-
À votre liste de dérivation de classe, ajoutez la ligne suivante :
public IProvideClassInfo2Impl<&CLSID_<object_name>, NULL, &LIBID_<project_name>Lib>
-
Ajoutez les lignes suivantes à votre COM_MAP :
COM_INTERFACE_ENTRY(IProvideClassInfo) COM_INTERFACE_ENTRY(IProvideClassInfo2)
Références
Pour plus d’informations sur l’Active Template Library et la mise en oeuvre des contrôles ActiveX, consultez la documentation Microsoft Visual C++ en ligne. Pour plus d’informations sur le développement de solutions Web pour Microsoft Internet Explorer, visitez les sites Web de Microsoft à l’adresse suivante :
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep(c) Microsoft Corporation 1999, tous droits réservés. Contributions par marque Davis, Microsoft Corporation.