Переопределение функции отправки по умолчанию в Outlook - PullRequest
2 голосов
/ 01 ноября 2011

Я разрабатываю решение для Outlook с VSTO, VS 2010 и Outlook 2010.

Я хочу переопределить стандартные функции поведения отправки Outlook.

Вот требование.

Когда пользователь нажимает кнопку «Отправить», я должен проверить, является ли это SMS - «IPM.Note.Mobile.SMS».Если это SMS, то я должен предоставить свою собственную реализацию для отправки.Если это не SMS, то поведение отправки по умолчанию.

Для пользовательской части отправки я должен использовать свой собственный веб-сервис и обработать его.

То, что я хочу от вас, это метод/ способ переопределить функцию отправки по умолчанию в Outlook 2010 .

Я прочитал несколько статей по MSDN, оболочкам инспекторов и применению пользовательских бизнес-правил, но я не получил то, что хотел.И я хочу чистое C # решение, а не стороннюю DLL, как выкуп.Я пытался быть конкретным, насколько я могу, я ожидаю того же:)

Пожалуйста, помогите мне: D Спасибо,

С уважением - Сэм

Ответы [ 2 ]

6 голосов
/ 02 ноября 2011

Вам нужно обработать событие Microsoft.Office.Interop.Outlook.Send (ItemEvents_10_SendEventHandler). Вы можете увидеть ссылку здесь . Грубый пример приведен ниже. Вы можете получить класс сообщения от инспектора и активного инспектора из ссылки на приложение.

((Outlook.ItemEvents_10_Event)inspector.CurrentItem).Send += new Outlook.ItemEvents_10_SendEventHandler(Inspector_Send);

void Inspector_Send(ref bool Cancel)
        {
            if (IPM.Note.Mobile.SMS) 
            {
               // custom implementation
            }
            else
              Cancel = true; // don't send the message out 
        }
3 голосов
/ 27 июня 2013

Здесь у вас есть другое решение.Просто включите эту строку в свой Add-in_StartUp:

Application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);  

И, конечно же, реализацию обработчика событий:

    void Application_ItemSend(object Item, ref bool Cancel)
    {
        MessageBox.Show("Yihha!!");
        Cancel = true;
    }

Это будет перехватывать любое отправленное вами сообщение.

...