Как подключиться к Outlook 2010, пока он работает в C #? - PullRequest
12 голосов
/ 23 июня 2011

Я пытаюсь добавить кнопку «Отправить по электронной почте» к клиенту 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)).

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

Ответы [ 2 ]

19 голосов
/ 14 февраля 2012

Это связано с привилегиями процесса.Обычно я запускаю Visual Studio от имени администратора, но если ранее Outlook не запускался с правами администратора, COM-вызов не удастся выполнить. Запускать оба от имени администратора или запускать оба с обычным уровнем привилегий.

1 голос
/ 06 декабря 2011

У меня была такая же проблема.Это проблема безопасности.При запуске Outlook от имени администратора (Shift правой кнопкой мыши).Проблема больше не существует.Отключение настройки контроля учетных записей может решить эту проблему.

...