Ejemplo ATLEventHandling: controla eventos de Word mediante IDispEventImpl e IDispEventSimpleImpl
Actualización: noviembre 2007
El ejemplo ATLEventHandling muestra el uso de IDispEventImpl e IDispEventSimpleImpl para controlar eventos activados por Microsoft Word.
El ejemplo consta de un proyecto ATL que incluye dos clases COM: CSimple y CNotSoSimple. Estas clases representan objetos COM que muestran un cuadro de mensaje en respuesta a eventos de cambio del documento iniciados por Microsoft Word. CSimple muestra cómo controlar eventos con la plantilla de clase IDispEventSimpleImpl de ATL y CNotSoSimple muestra cómo controlar eventos con la plantilla de clase IDispEventImpl de ATL. El código de las dos clases es idéntico, excepto por las diferencias debidas al uso de las diferentes plantillas ATL.
![]() |
---|
Este código de ejemplo se proporciona para ilustrar un concepto y no debe utilizarse en aplicaciones o sitios Web, ya que quizás no ilustre las prácticas de codificación más seguras. Microsoft no asume ninguna responsabilidad por daños incidentales o consecuentes en caso de que el código de ejemplo se utilice para propósitos distintos de aquellos para los que se concibió. |
Para obtener ejemplos e instrucciones para su instalación:
En el menú Ayuda de Visual Studio, haga clic en Ejemplos.
Para obtener más información, vea Localizar archivos de ejemplo.
La lista de ejemplos completa con la versión más reciente está disponible en línea en la página Visual Studio 2008 Samples.
También encontrará ejemplos en el disco duro de su equipo. De manera predeterminada, los ejemplos y el archivo Léame se copian en una carpeta bajo \Archivos de programa\Visual Studio 9.0\Samples\. Para las versiones Express de Visual Studio, todos los ejemplos están en línea.
Generar y ejecutar el ejemplo
![]() |
---|
Este ejemplo requiere que esté instalado Microsoft Office 2000. Si desea utilizar este ejemplo con otras versiones de Microsoft Office, debe especificar la ruta de acceso al archivo dll mso, al que se hace referencia en el archivo StdAfx.h, en el directorio ATLEventHandling. Por ejemplo, Office 2000 utiliza mso9.dll y Office XP utiliza mso.dll. |
Para generar y ejecutar este ejemplo
Abra el archivo de solución ATLEventHandling.sln.
Si utiliza Excel 2000, modifique la línea siguiente en StdAfx.h:
#define OFFICE_VER OFFICEXP
de forma que sea:
#define OFFICE_VER OFFICE2000
En el menú Generar, haga clic en Generar solución.
Ejecute MFCClient.exe.
Verá un cuadro de diálogo con una lista desplegable que permite ejecutar la prueba con IDispEventImpl o IDispEventSimpleImpl. Seleccione uno de estos elementos y, a continuación, haga clic en el botón Iniciar. Si Microsoft Word se encuentra instalado en el equipo, se cargará una instancia nueva y el componente de prueba empezará a recibir eventos enviados por Word cuando el documento activo cambie.
Los eventos se desencadenan al crear nuevos documentos, cargar documentos existentes o cambiar a otros documentos mediante el menú Ventana de Word. Cada vez que el documento cambia, aparece un cuadro de mensaje que indica qué componente está recibiendo los eventos así como el nombre del documento activo. Puede desconectar el controlador de evento de la instancia de Word si utiliza el botón Stop del cuadro de diálogo MFCClient, cambia la selección de la lista desplegable o cierra Word.
Cierre la aplicación de ejemplo con el botón de comando Aceptar o Cancelar, o con el botón Cerrar del cuadro de diálogo.
Palabras clave
En este ejemplo se utilizan las siguientes palabras clave:
_ATL_FUNC_INFO, BEGIN_SINK_MAP, END_SINK_MAP, SINK_ENTRY_EX, SINK_ENTRY_INFO, IDispEventImpl, IDispEventSimpleImpl, IDispEventSimpleImpl::DispEventAdvise, IDispEventSimpleImpl::DispEventUnadvise