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 depois Quit 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?

Foi útil?

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ê.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top