捕获邮件项预览打开事件

时间:2017-07-26 14:50:03

标签: c# outlook vsto outlook-addin

我希望在用户点击它之前更改mailitem的正文(不保存更改!),然后才能在预览中显示。我认为预览控件被称为Explorer,我订阅了NewExplorer事件,但是当我点击消息时它不会触发。

Microsoft.Office.Interop.Outlook.Explorers explorers = Application.Explorers;
explorers.NewExplorer += new Microsoft.Office.Interop.Outlook.ExplorersEvents_NewExplorerEventHandler(Open_NewExplorer);

1 个答案:

答案 0 :(得分:0)

您需要通过调用SelectionChange方法在当前有效Explorer对象上使用ActiveExplorer事件。

Application.Startup事件处理程序中,您需要为事件添加处理程序;你的代码可能看起来像......

this.Application.ActiveExplorer().SelectionChange += new Outlook.ExplorerEvents_10_SelectionChangeEventHandler(Explorer_SelectionChange);

处理程序内部使用Selection;你的代码可能看起来像......

void Explorer_SelectionChange()
{
    if (this.Application.ActiveExplorer().Selection.Count == 1)
    {
        Outlook.MailItem item = this.Application.ActiveExplorer().Selection[1] as Outlook.MailItem;

        if (item != null)
        {
           //do something
        }
    }
}