VSTO Outlook: создание динамического пользовательского контекстного меню для почтового элемента, определяемого строкой темы - PullRequest
2 голосов
/ 28 июля 2010

Можно ли добавить различные элементы в пользовательское контекстное меню почтового элемента, проверив содержимое элемента?
Например, добавлять элемент можно только в том случае, если строка темы содержит «ВАЖНО».

1 Ответ

2 голосов
/ 12 октября 2010

Это похоже на работу.

void Application_ItemContextMenuDisplay(Office.CommandBar CommandBar, Outlook.Selection Selection)
    {
        foreach (Outlook.MailItem m in Selection)
        {
            if (m.Subject.Contains("IMPORTANT"))
            {
                DeliveryFailureButton(CommandBar, Selection);
                break;
            }
        }
    }

    void DeliveryFailureButton(Office.CommandBar CommandBar, Outlook.Selection Selection)
    {
        Office.CommandBarButton btn = CommandBar.Controls.Add(
              Office.MsoControlType.msoControlButton,
              missing, missing, missing, true) as
              Office.CommandBarButton;
        btn.Caption = "Move to IMPORTANT messages";

        btn.Click += (Office.CommandBarButton Ctrl, ref bool CancelDefault) =>
        {
            string msg = "CRM Records\r\n";

            foreach (Outlook.MailItem item in Selection)
            {
                if (item is Outlook.MailItem)
                {
                    var mitem = item as Outlook.MailItem;
                    msg += "\r\n" + MoveToImportant(mitem);
                }
            }

            MessageBox.Show(msg);

        };
    }
...