Cómo insertar un complemento en Outlook, escrito en VC, preferiblemente con código, lo uso para envíos masivos, ¿eres amable?
1. Implementar complementos. Office/VisualStudio admite complementos (complementos). Para implementar un complemento, solo necesita: construir un componente COM e implementar la interfaz IExtensibility2 en el registro. HKCU\Software\Microsoft\ Escriba el modo de inicio y otra información en Office\lt;Appgt;\Addins. De esta manera, cuando se inicie el software Host, construirá el objeto COM de acuerdo con la información del registro y lo llamará. según IExtensibilidad2. El programa complementario ahora puede llamar al componente COM en HostApp para implementar sus propias funciones. Cuando se implementa usando VC/ATL, el marco de esta parte del código se puede construir usando las funciones del IDE (como crear un proyecto ATL/COM, agregar un objeto COM simple e implementar una interfaz). Tenga en cuenta que la clase de interfaz está en Typelib "Microsoft Add-In Designer (1.0)". Para obtener un tutorial detallado, consulte /c/a/C /Building-An-Outlook-COM-AddIn-With-VC. Cabe señalar que el procesamiento de eventos en este tutorial utiliza IDispEventSimpleImpl. Esta función aún es relativamente limitada, así que tenga cuidado. . Para proyectos VC6 ATL, la versión predeterminada agregará la macro _ATL_MIN_CRT, que evita que el proyecto use MSVCRT. Si se introducen componentes de Office en el proyecto, los dos CRT entrarán en conflicto. Debería eliminarse. 2. Referencias No hay referencias para las clases internas de Office en el CD de MSDN. Si desea consultar la ayuda, debe buscarla en Office. Ingrese a la interfaz de edición de VBA de Outlook y use F2 para enumerar todos los objetos COM relacionados con Outlook. Presione F1 nuevamente para ver la ayuda para objetos, propiedades, métodos y eventos. En la versión china de office, la ayuda también está en chino. Al mirar la versión china de este tipo de documento, me siento un poco incómodo. Para ver la estructura de árbol de los objetos COM en Outlook, puede escribir un proceso de este tipo en VBA: Sub a() Set b = Outlook.Application 'o simplemente Set b = ApplicationEnd Sub ejecución de un solo paso o establecer un punto de interrupción, y luego agregue b Para Watch, puede expandir el contenido de b y estudiarlo lentamente. 3. Menú de acción de Outlook El método para agregar un menú está claramente escrito en el Tutorial, por lo que no entraré en detalles aquí. :-) El menú Acción de Outlook es algo especial. Outlook tiene múltiples menús de acción, correspondientes a diferentes carpetas. Es decir, el menú Acción de Contacto es diferente del menú Acción de Tarea. Si planea agregarlo al menú Acción, asegúrese de seleccionar el objeto CommandBarPopup correcto. Vale la pena señalar que este menú Acción es Crear bajo demanda y su orden de creación es incierto. En otras palabras, cuando se inicia por primera vez, no hay un menú de acciones para el contacto. El menú de acciones correspondiente no se crea hasta que el usuario hace clic en la carpeta de contactos. Sin embargo, el ID del menú es fijo y no cambiará no sólo durante ejecuciones múltiples, sino también entre versiones de Office. Puede utilizar CommandBars o el método FindControl de CommandBar para buscar el menú.
En otras palabras, en respuesta al evento OnUpdate de CommandBar, verifique si se ha creado el menú deseado en la función del controlador. Si es así, agregue sus propios elementos de menú. 4. Menú contextual de Outlook (menú contextual) El menú contextual de Outlook es diferente de Excel y otros programas. Se crea dinámicamente, es decir, se crea temporalmente cada vez que se hace clic derecho. Igual que el método anterior, durante OnUpdate, verifico si el menú contextual contiene el elemento de menú que me interesa. Si es así, agrego mi propio elemento de menú antes o después. Hay otra diferencia entre el menú contextual y el menú principal: no permite Personalizar de forma predeterminada. Antes de personalizar el menú, debe modificar la propiedad Protección del menú y eliminar msoBarNoCustomize. Se dice que modificar esta propiedad del menú contextual hará que otros menús desplegables mostrados desaparezcan, por lo que debe configurarse solo cuando sea necesaria la modificación, es decir: si msoBarNoCustomize está configurado, bórrelo si se usa IDispEventSimpleImpl para manejar el evento. Debe tener en cuenta que solo puede establecer una conexión con el mismo componente COM. Antes de DispEventAdvise, el objeto COM anterior debe ser DispEventUnadvise. 5. Menú de subventana Haga doble clic en un contacto o tarea y aparecerá una nueva ventana. Esta ventana es un inspector (consulte la estructura de árbol de los objetos COM). El inspector también tiene sus propias barras, que se pueden procesar como se muestra arriba. y no se describirá en detalle.