ActiveExplorer.ActiveInlineResponse замедляет работу надстройки Outlook - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть надстройка, которая обычно включена для вновь создаваемых писем. Задача состоит в том, чтобы включить его для встроенного ответа / ответа на все сообщения / пересылки windows.

. Для нового сообщения электронной почты я использую Inspector.CurrentItem as Outlook.MailItem, но для встроенного обозревателя windows мне нужно использовать Globals.ThisAddIn.Application.ActiveExplorer().ActiveInlineResponse as Outlook.MailItem, чтобы получить mailitem object.

Все работает нормально, когда я использую Inspector, но когда я использую ActiveInlineResponse действительно замедляет обработку моего приложения. В какой-то момент внешний вид не отвечает вообще.

В приложении я программно добавляю вложения, пишу свойства заголовка письма, меняю тему, тело и т. Д. c ...

Может кто-нибудь объяснить, почему это происходит и как я могу это исправить? Я использую его в течение 1 дня, но безуспешно.

РЕДАКТИРОВАТЬ: Это метод, который я использую для получения текущего mailitem.

        private MailItem GetMailItem()
    {
        Outlook.Application application = Globals.ThisAddIn.Application;

        if (application != null)
        {
            var windowType = application.ActiveWindow();
            Inspector inspector = application.ActiveInspector();
            if (inspector != null && windowType is Inspector)
            {
                return inspector.CurrentItem as MailItem;
            }
            else
            {
                if (application.ActiveExplorer().Selection.Count > 0)
                {
                   return application.ActiveExplorer().ActiveInlineResponse as MailItem;
                }
            }
        }
        else
        {
            logEx_.Log("Null outlook aplication.", EventLogEntryType.Error);
        }

        return null;
    }

Вот как я используйте mailitem. (Я не проводил всю обработку, но в основном я добавляю вложения в mailitem, получатели, изменяю тело)

string officeEmail = string.IsNullOrWhiteSpace("foo") ? "foo1" : "foo";
Recipient recipient = mailitem.Recipients.Add(officeEmail);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...