3

我正在使用 VSTO、VS 2010 和 Outlook 2010 为 Outlook 开发解决方案。

我想覆盖 Outlook 发送行为的默认功能。

这是要求。

当用户点击发送按钮时,我必须检查它是否是短信 - “IPM.Note.Mobile.SMS”。如果它是短信,那么我必须提供我的自定义实现来发送。如果它不是 SMS,则默认发送行为。

对于自定义发送部分,我必须使用自己的 Web 服务并处理它。

我想要你的是一种方法/方式来覆盖 Outlook 2010 中的默认发送功能

我已经阅读了几篇关于 MSDN、inspector wrappers 和执行自定义业务规则的文章,但我没有得到我想要的。我想要一个纯 C# 解决方案,而不是像赎回这样的第三方 dll。我试图尽可能具体,我希望是一样的:)

请帮助我 :D 谢谢,

问候 - 山姆

4

2 回答 2

6

您需要处理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 
        }
于 2011-11-02T15:26:16.880 回答
4

在这里,您有不同的解决方案。只需将此行包含在您的 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;
    }

这将拦截您发送的任何消息。

于 2013-06-27T16:37:32.857 回答