C# 如何更改预览窗格中显示或打开的邮件项

C# 如何更改预览窗格中显示或打开的邮件项,c#,outlook,ms-office,outlook-addin,office-2010,C#,Outlook,Ms Office,Outlook Addin,Office 2010,我正在尝试编写一个加载项,它可以在加载Outlook邮件项目时(通过预览窗格或打开它)修改该项目。这是我到目前为止的代码,但我似乎无法实际访问邮件项目 public partial class ThisAddIn { private void ThisAddIn_Startup(object sender, EventArgs e) { Application.ItemLoad += ApplicationOnItemLoad; } privat

我正在尝试编写一个加载项,它可以在加载Outlook邮件项目时(通过预览窗格或打开它)修改该项目。这是我到目前为止的代码,但我似乎无法实际访问邮件项目

public partial class ThisAddIn
{
    private void ThisAddIn_Startup(object sender, EventArgs e)
    {
        Application.ItemLoad += ApplicationOnItemLoad;
    }

    private void ApplicationOnItemLoad(object item)
    {
        var mail = item as MailItem;

        if (mail != null)
        {
            Console.WriteLine(mail.HTMLBody);
        }
    }

    // Etc...
}

代码到达
控制台.WriteLine(mail.HTMLBody)语句很好,这意味着将该项目转换为Outlook邮件项目很好(它不会以null结束)。但是,我无法访问任何MailItem成员。。。它只是抛出异常:

“System.Runtime.InteropServices.COMException”类型的首次意外异常 在MyOutlookProject.DLL中发生
“System.Reflection.TargetInvocationException”类型的第一次意外异常 发生在mscorlib.dll中

在项目完全加载之前发生。除了
消息类
之外,您无法读取
上的任何属性

从MSDN。。。 Outlook项目开始加载到内存时发生此事件。除了Outlook项目的Class和MessageClass属性的值外,该项目的数据尚不可用,因此为项目中返回的Outlook项目调用Class或MessageClass以外的任何属性时发生错误

要访问预览窗格中的
邮件项目
,您应该查看。要访问已打开的
邮件项目
(通过inspector)-利用