Cómo habilitar el control en una página Web de eventos de Control ActiveX


Resumen


Un control ActiveX debe implementar la interfaz IProvideClassInfo o IProvideClassInfo2 para habilitar el control de eventos en una página Web. Microsoft Internet Explorer utiliza esta interfaz para obtener la biblioteca de tipos para el control y determinan el conjunto de eventos disponibles.

Más información


Creador de una página Web utilizando un lenguaje de secuencia de comandos, como VBScript o JavaScript, puede utilizar automatización para llamar a métodos y propiedades y controlar los eventos de un control ActiveX que se colocan en la página con una etiqueta HTML < OBJECT >. Para que un control ActiveX admitir el control de tales eventos, debe implementar la interfaz IProvideClassInfo o IProvideClassInfo2. Internet Explorer consulta el control para estas interfaces y, si se implementa, se llama el método GetClassInfo() para obtener la biblioteca de tipos para el control. Internet Explorer consultará inicialmente el control para IProvideClassInfo2 y, si no se implementa, se consulta entonces IProvideClassInfo.The IProvideClassInfo2 interfaz se deriva de IProvideClassInfo y proporciona un método adicional, GetGUID() , que devuelve un objeto saliente ID de interfaz para su conjunto de eventos predeterminado. Para los controles ActiveX desarrollados con Microsoft Foundation Classes, se implementa la interfaz IProvideClassInfo2 de forma predeterminada. Para los controles ActiveX desarrollados con Microsoft Visual Basic, se implementa la interfaz IProvideClassInfo de forma predeterminada. Cuando se utiliza Microsoft Active Template Library (ATL), versión 3.0, los siguientes objetos ATL 'control lite' no implementan la interfaz IProvideClassInfo2 de forma predeterminada:
  • Objeto simple
  • Objeto Internet Explorer
  • Control Lite
  • Control compuesto Lite
  • Control HTML Lite
Puede agregar fácilmente compatibilidad para controlar implementando las interfaces IProvideClassInfo eventos. Para ello, derivar el control de la implementación de ATL predeterminado, IProvideClassInfo2Impl.
  1. Agregue la línea siguiente a la lista de derivación de la clase:
       public IProvideClassInfo2Impl<&CLSID_<object_name>, NULL,                                 &LIBID_<project_name>Lib>
  2. Agregue las siguientes líneas a su COM_MAP:
       COM_INTERFACE_ENTRY(IProvideClassInfo)   COM_INTERFACE_ENTRY(IProvideClassInfo2)

Referencias


Para obtener más información acerca de la Active Template Library y la implementación de los controles de ActiveX, consulte la documentación de Microsoft Visual C++ Online. Para obtener más información acerca de cómo desarrollar soluciones basadas en Web para Microsoft Internet Explorer, visite los siguientes sitios Web de Microsoft:(c) Microsoft Corporation 1999, Reservados todos los derechos. Contribuciones por Mark Davis, Microsoft Corporation.