Outlook VSTO 加载项-打开多个 windows 时如何确定项目类型

Outlook VSTO Add In - How to determine the item type when multiple windows are open

我开发了一个 Outlook 插件,可以在电子邮件、会议请求等主题的开头添加一个字符串。

当用户第一次打开它时,程序会检测到屏幕上显示的 "CurrentItem"。

例如,当用户开始回复电子邮件时会出现问题,这会告诉程序当前项目是回复。然后用户在发送回复之前开始一封新电子邮件,将当前项目设置为 mailItem。然后当他们 return 回复他们之前开始的回复时,程序仍然认为它是一个 mailItem,因此它中断了应用程序。

我该如何解决这个问题?任何帮助将不胜感激。

如果有帮助,这是用户首次创建回复时点击的代码。

private void ThisAddIn_InlineResponse(object Item)
    {
        if (Item != null)
        {
            Outlook.MailItem mailItem = Item as Outlook.MailItem;
        }
        TypeCheck = "inline";
    }

本质上,如果它是内联回复,我需要点击此代码,但我似乎无法在 window 初始化之外执行此操作。

使用 Application.ItemSend 事件在实际发送项目时对其进行处理。使用 Class 属性(您可以动态访问它,所有 OM 对象都公开它)来确定项目类型(例如 43 表示 OlObjectClass.olMail)。