Pregunta

Estoy trabajando en un complemento VSTO Outlook 2007 que básicamente sincroniza los datos de Outlook con el servicio web. Hay tres tipos de sincronización que quiero tener en la aplicación: sincronización de inicio, sincronización manual y sincronización al apagar. Los dos primeros son simples y ya están hechos.

Sin embargo, tengo problemas para encontrar un evento apropiado para disparar para manejar mi sincronización en el apagado. Intenté conectarme a los siguientes dos eventos, pero parece que se dispararon demasiado tarde cuando el complemento no tiene acceso a los datos de Outlook y esto simplemente no funciona:

  • ((Outlook.ApplicationEvents_Event)Application).Quit (este se dispara primero, pero ya es demasiado tarde para acceder a las colecciones de datos de Outlook y actualizarlas)
  • ThisAddIn.Shutdown (este se dispara después de Quit por lo que tampoco es bueno)

¿Hay otros eventos que se disparen antes de aquellos en el cierre de Outlook que pueda usar? ¿O tal vez alguien conoce alguna otra forma de manejar la sincronización al apagar en el complemento de Outlook?

¿Fue útil?

Solución

Explorer.Close () e Inspector.Close () disparan antes de Application.Quit () - en ellos puede verificar:

  • En Explorer.Close (): Application.Explorers.Count < = 1 y Application.Inspectors.Count == 0
  • En Inspector.Close (): Application.Explorers.Count == 0 y Application.Inspectors.Count < = 1

Si es así, Outlook se cerrará y podrá activar sus eventos. Solo tenga en cuenta que Outlook también se puede iniciar sin ventanas (automatización, etc.) si eso es un problema para usted.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top