Мы пишем приложение для синхронизации контактов для Outlook, используя .Net 3.0. Мы используем "библиотеку объектов Microsoft Outlook 12.0" или Microsoft.Office.Interop.Outlook;
Мы замечаем, когда звоним:
ApplicationClass app = new Microsoft.Office.Interop.Outlook.ApplicationClass();
Он запустит Outlook, если пользователь не открыл его. Но если пользователь закрывает Outlook, когда наше приложение открыто, мы получим COMException при следующем обращении к экземпляру Outlook ApplicationClass.
Как мы можем компенсировать это поведение? Мы не хотим повторно открывать Outlook, если получим это исключение.
Мы бы предпочли, чтобы Outlook вообще не запускался или был скрыт, но мы хотим, чтобы пользователь мог использовать Outlook, даже если наше приложение открыто.
Мы могли бы также каким-то образом подключиться к событию ApplicationExit или к чему-то, но если мы создадим новый ApplicationClass в этот момент, запустится ли он снова Outlook?
Как мы можем это исправить?