integração VSTO Outlook - evento de desligamento Outlook para sincronização
-
08-07-2019 - |
Pergunta
Eu estou trabalhando em um VSTO Outlook 2007 add-in que, basicamente, sincroniza dados do Outlook com o serviço web. Existem três tipos de sincronização que eu quero ter no app: sincronização de arranque, sincronização manual e sincronização no desligamento. Os dois primeiros tão simples e já está feito.
No entanto eu tenho problemas para encontrar um evento apropriado para fogo para lidar com a minha sync no desligamento. Eu tentei ligar para os dois eventos seguintes, mas parece que eles são disparados tarde demais quando add-in não tem acesso aos dados do Outlook e isso simplesmente não funciona:
-
((Outlook.ApplicationEvents_Event)Application).Quit
(este incêndios primeiros, mas já é tarde demais para acessar os conjuntos de dados do Outlook e atualizá-los) -
ThisAddIn.Shutdown
(este é acionado depoisQuit
por isso não é bom também)
Existem outros eventos que são acionados antes aqueles sobre Outlook desligamento que eu poderia usar? Ou talvez alguém sabe qualquer outra maneira de lidar com sync-on-shutdown no Outlook add-in?
Solução
Explorer.Close () e Inspector.Close () fogo antes Application.Quit () - neles você pode verificar:
- Na Explorer.Close (): Application.Explorers.Count <= 1 e Application.Inspectors.Count == 0
- Na Inspector.Close (): Application.Explorers.Count == 0 e Application.Inspectors.Count <= 1
Se assim for, o Outlook será fechado e você pode disparar seus eventos. Basta ter em mente que o Outlook pode ser iniciado janela-less também (automação etc.) se isso é um problema para você.