2009-09-17 3 views
2

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

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

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

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

ответ

3

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

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

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

Смежные вопросы