VSTO Outlook интеграция - событие закрытия Outlook для синхронизации - PullRequest
2 голосов
/ 17 сентября 2009

Я работаю над надстройкой VSTO Outlook 2007, которая в основном синхронизирует данные Outlook с веб-службой. В приложении есть три типа синхронизации: синхронизация при запуске, синхронизация вручную и синхронизация при завершении работы. Первые два так же просты и уже сделаны.

Однако у меня возникают проблемы с поиском подходящего события для запуска моей синхронизации при выключении. Я попытался подключиться к следующим двум событиям, но кажется, что они запускаются слишком поздно, когда надстройка не имеет доступа к данным Outlook, и это просто не работает:

  • ((Outlook.ApplicationEvents_Event)Application).Quit (это срабатывает первым, но уже слишком поздно для доступа к коллекциям данных Outlook и их обновления)
  • ThisAddIn.Shutdown (это срабатывает после Quit, так что это тоже не хорошо)

Существуют ли какие-либо другие события, которые запускаются раньше, чем те, что при отключении Outlook, которые я мог бы использовать? Или, может быть, кто-то знает какой-либо другой способ обработки синхронизации при отключении в надстройке Outlook?

1 Ответ

3 голосов
/ 18 сентября 2009

Explorer.Close () и Inspector.Close () срабатывают перед Application.Quit () - в них вы можете проверить:

  • В Explorer.Close (): Application.Explorers.Count <= 1 и Application.Inspectors.Count == 0 </li>
  • В Inspector.Close (): Application.Explorers.Count == 0 и Application.Inspectors.Count <= 1 </li>

Если это так, Outlook закроется, и вы сможете запускать события. Просто имейте в виду, что Outlook может быть запущен без окон (автоматизация и т. Д.), Если это проблема для вас.

...