正确语法的 c# VSTO 问题 - activeWindow 是 Explorer

c# VSTO problem with correct syntax with - activeWindow is Explorer

我的 VSTO Outlook 插件,当用户单击 Send 按钮时发送电子邮件。 Outlook 有两个发送电子邮件的选项,从 explorer(如果来自资源管理器,则编写代码来处理消息)或从 Inspector(打开“双击”消息)

最佳来源是

和最佳答案@Dmitry Streblechenko

我确定我已经接近了,但现在我面临着在资源管理器中创建电子邮件时如何获取值 .TOSubject 的问题

part of code :

object activeWindow = Globals.ThisAddIn.Application.ActiveWindow();

if (activeWindow is Explorer)
{
    Explorer explorer = Globals.ThisAddIn.Application.ActiveExplorer();
    MailItem mailExplorer = explorer as MailItem; 

    String Subject = mailExplorer.Subject;
    String FromEmailAddress = mailExplorer.SenderEmailAddress;
    String ToEmailAddress = mailExplorer.Recipients[1].AddressEntry.Address;
    String EmailHTMLBody = mailExplorer.HTMLBody;
    String EmailBody = mailExplorer.Body;

我的错误出现在网上:我的错误意思是,String Subject 是 ````null```

 String Subject = mailExplorer.Subject;  

Object reference not set to an instance of an object.

您正在将 Explorer object 转换为 MailItem。你不能那样做。

使用Explorer.Selection collection(如果Count > 0)访问选定的项目。如果您想要撰写内联响应消息,请使用 Explorer.ActiveInlineResponse 属性。检查以确保它不为空。