Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
La biblioteca de plantillas activas (ATL) sigue siendo compatible. Sin embargo, ya no estamos agregando características ni actualizando la documentación.
Puede implementar una interfaz dual mediante la clase IDispatchImpl, que proporciona una implementación predeterminada de los métodos IDispatch en una interfaz dual. Para obtener más información, consulta Implementing the IDispatch Interface.
Para usar esta clase:
Defina la interfaz dual en una biblioteca de tipos.
Derive la clase de una especialización de
IDispatchImpl(pase información sobre la interfaz y la biblioteca de tipos como argumentos de plantilla).Agregue una entrada (o entradas) al mapa COM para exponer la interfaz dual a través de
QueryInterface.Implemente la parte vtable de la interfaz en la clase.
Asegúrese de que la biblioteca de tipos que contiene la definición de interfaz está disponible para los objetos en tiempo de ejecución.
Asistente para objetos simples ATL
Si desea crear una nueva interfaz y una nueva clase para implementarla, puede usar el cuadro de diálogo Agregar clase ATL y, a continuación, el Asistente para objetos simples ATL.
Asistente para implementar interfaces
Si tiene una interfaz existente, puede usar el Asistente para implementar la interfaz para agregar la clase base necesaria, las entradas de mapa COM y las implementaciones del método esqueleto a una clase existente.
Nota:
Es posible que tenga que ajustar la clase base generada para que los números de versión principal y secundaria de la biblioteca de tipos se pasen como argumentos de plantilla a la clase base IDispatchImpl. El Asistente de Implementación de Interfaces no verifica el número de versión de la biblioteca de tipos.
Implementación de IDispatch
Puede usar una clase base IDispatchImpl para proporcionar una implementación de una interfaz dispinterface simplemente especificando la entrada adecuada en el mapa COM (mediante la macro COM_INTERFACE_ENTRY2 o COM_INTERFACE_ENTRY_IID) siempre que tenga una biblioteca de tipos que describa una interfaz dual correspondiente. Es bastante común implementar la interfaz de IDispatch de esta manera, por ejemplo. Tanto el Asistente para objetos simples ATL como el Asistente para implementar interfaces suponen que tiene previsto implementar IDispatch de esta manera, por lo que agregarán la entrada adecuada al mapa.
Nota:
ATL ofrece las clases IDispEventImpl e IDispEventSimpleImpl para ayudarle a implementar dispinterfaces sin necesidad de una biblioteca de tipos que contenga la definición de una interfaz dual compatible.