delphi com plugins outlook
complemento Babelfishcomplementos

Cómo crear un plugin de Outlook usando Delphi?



com plugins (5)

Estoy trabajando en un proyecto de base de datos y necesito crear un complemento de Outlook 2007 que guarde el mensaje de vista previa actual en mi base de datos.

¿Puede alguien darme una guía paso a paso sobre cómo crear un complemento de Outlook en Delphi y cómo implementarlo?

Gracias



Creé un complemento una vez para utilizarlo en Excel (crear mis propias funciones definidas por el usuario) con Delphi. Lo que necesita es un Complemento que implemente la interfaz _IDTExtensibility2.

Ahora no sé los pasos exactos, pero buscar _IDTExtensibility2 te ayudará mucho.

Consulta este artículo para ver un buen cómo hacerlo. El procedimiento OnConnection de la interfaz _IDTExtensibility2 le da la entrada a la aplicación de Outlook.


Para mal, el trabajo tiene que hacerse en Delphi. Con .NET y VSTO crear Outlook addins es mucho menos doloroso en comparación con los malos viejos tiempos. He hecho complementos de Office en COM (que NO era nada gracioso) y en la versión anterior de VSTO, pero VSTO 3 es una muy buena noticia para el desarrollador de Office.


Si solo quiere aprender y entender cómo hacerlo, simplemente busque google para Delphi Outlook addin (estoy bastante seguro de que "addin" debería darle resultados mucho más relevantes que "plugin" en este contexto) y debería encontrar un número de complementos de muestra ligeramente anticuados pero formalmente correctos, por ejemplo, el complemento Babelfish de Dmitry Streblechenko (que ya no es útil porque el servicio web en el que se basa ya no existe pero muestra los conceptos básicos) o el complemento de Paul Qualls (que es lamentablemente ya no está disponible desde el sitio original). También hay un complemento de correo whitelister disponible con una fuente completa, pero aún no lo he visto.

Sin embargo, tarde o temprano querrá comenzar a utilizar un marco probado como ADX , especialmente si su complemento va a ser utilizado fuera de su empresa. Desarrollamos un complemento shareware en Delphi y aproximadamente el 75% del código en el complemento está ahí para brindar soporte para las diversas versiones de Outlook (especialmente Outlook XP) y diferentes configuraciones (la opción más notable para usar Word para edición de mensajes ha sido un importante mordedor de mesa para nosotros).

Otro factor es tener que trabajar constantemente en torno al estúpido modelo de seguridad OOM. Estás atrapado sin Redemption o Outlook Security Manager allí. La redención, en particular, no podía recomendarse lo suficiente, no solo para evitar los avisos de seguridad sino también para simplificar una gran cantidad de tediosas tareas rutinarias con un marco sólido y fácil de usar propio.

[Adición:] Empezamos con nuestro propio framework y todo estuvo bien hasta que la cantidad de usuarios y con ellos el número de configuraciones diferentes para apoyar explotó. Cambiamos a ADX hace aproximadamente un año y nunca miramos hacia atrás. Sin embargo, usar Redemption fue una obviedad desde el principio, o fue eso o pasaste meses aprendiendo MAPI extendido antes de que comenzáramos (todavía tiendes a retomarlo mucho más fácil a medida que avanzas una vez que Redemption te ha guiado sobre el primeros obstáculos).

Por cierto: otra herramienta indispensable para cualquier desarrollador de complemento que se precie (independientemente del lenguaje de programación utilizado) es OutlookSpy . Esto realmente le permitirá ver (y manipular) lo que sucede dentro de Outlook (y hasta cierto punto, Exchange) a medida que sucede y le dará una mejor comprensión de lo que su complemento tendrá que hacer para lograr el efecto que desea.


Creé un add-in de perspectiva usando Delphi (integrando un sistema de reserva de salas en el formulario de citas).

Algún consejo:

  • Compre y use add-in express . Le ahorrará mucho tiempo y le permite crear complementos COM que no requieren componentes de terceros en el momento de la instalación. Intentamos crear nuestro propio componente primero, y aunque logramos poner botones en los formularios que hicieron algo, la cantidad de tiempo invertido fue desproporcionada con respecto al resultado.
  • Use el servicio complementario de soporte rápido cuando tenga dudas. Ellos saben sus cosas.
  • La interfaz COM para Outlook (que se encuentra en la carpeta delphi / ocx / servers /) es tu amiga. Add-In Express simplemente proporciona un envoltorio (mucho) más conveniente para esta funcionalidad.

Cosas a evitar:

  • Llamadas MAPI rectas. Se puede hacer, y de hecho tuve que recurrir a él para modificar flujos de mensajes en tránsito, pero es un PITA real con el que trabajar y muy poco documentado.
  • Formas únicas. Perdimos mucho tiempo tratando de hacer que los formularios únicos funcionen. Solo use formularios publicados. Puede publicar un formulario en la carpeta local desde el código, por lo que en la práctica esto no es un gran problema. Aún mejor es usar regiones de formulario, que es la forma más robusta de extender formas.
  • Pretender que COM en Delphi es como la programación VCL normal. Mi consejo si no tienes experiencia COM es leer toda la documentación que puedas tener. Algunas lecciones difíciles de aprender fueron siempre establecer las variables a cero antes del final de una función para que Word pueda liberar los objetos correctamente y siempre solicitar la interfaz adecuada de un objeto en lugar de intentar lanzarlo.