Как подключиться к Outlook 2010 во время его работы на C #?

Я пытаюсь добавить кнопку "Отправить по электронной почте ..." в клиент winform, который открывает новое окно почты Outlook и прикрепляет файл, чтобы пользователь мог переслать Это.Я могу заставить интеграцию Outlook работать нормально, если Outlook еще не запущен. Это приложение winforms C # .NET 4.0, использующее библиотеку взаимодействия Outlook 14.0, с 32-разрядным Outlook 2010, работающим на 64-разрядной машине с Windows 7. У меня есть приложение, уже скомпилированное для x86 по другим причинам, поэтому я сомневаюсь, что это проблема 32/64 бит. Вот мой код:

// Connect to outlook and create a new mail item
var app = new Outlook.Application();
var ns = app.GetNamespace("MAPI");
var mailItem = (Outlook.MailItem)ns.Application.CreateItem(Outlook.OlItemType.olMailItem);

// create the mail item and attach the file
mailItem.To = "";
mailItem.Subject = "Emailing: " + Path.GetFileName(_currentFilePath);
mailItem.Attachments.Add(_currentFilePath, Outlook.OlAttachmentType.olEmbeddeditem);

// show the email dialog window
mailItem.Display(true);

Если Outlook не запущен, он работает безупречно. После его открытия я получаю следующую ошибку в самой первой строке, где он пытается создать объект Outlook.Application:

Получение фабрики классов COM для компонент с CLSID {0006F03A-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80080005 Ошибка выполнения сервера (Исключение из HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

Есть идеи, что могло вызвать это? Это какой-то конфликт версий?

12
задан Jason 23 June 2011 в 14:12
поделиться