如何以编程方式确定从主功能区创建的 Outlook 新项目 --> 新项目

Posted

技术标签:

【中文标题】如何以编程方式确定从主功能区创建的 Outlook 新项目 --> 新项目【英文标题】:How to programmatically determine the Outlook New Item created from Home Ribbon --> New Items 【发布时间】:2012-12-03 13:17:39 【问题描述】:

我有一个 Outlook 插件,它是一个新的功能区选项卡,它连接到我的服务器数据库,以便将一些自定义数据与 Outlook 对象关联。

此功能区选项卡现在显示在邮件项目中。

我正在扩展它以显示在任务和日历项目中(约会、会议等)。

目前我确定创建的新项目的方式如下-->

Microsoft.Office.Interop.Outlook.Application interopApplication = ThisAddIn.Application.Application
if (interopApplication.ActiveExplorer().CurrentFolder.DefaultItemType.ToString() != "olTaskItem")

  ....

这样我就可以确定文件夹及其相关的新项目(比如在收件箱中,我创建新邮件项目,在日历中我创建新约会等

现在,当我在收件箱中并单击“新约会”时,它会将创建的新项目标识为 olMailItem 而不是 olAppointmentItem。当我在日历视图中单击新邮件项目时也是如此。

我的问题是,无论我在哪个文件夹中,如何确定创建的新项目?

【问题讨论】:

【参考方案1】:

您应该检查ActiveInspector 方法的MessageClass 以确定OlItemType

string itemClass = Globals.ThisAddIn.Application.ActiveInspector().CurrentItem.MessageClass;
if (itemClass == "IPM.Appointment")
  // you have a calendar item
else if (itemClass == "IPM.Task")
  // you have a task item
else if (itemClass == "IPM.Note")
  // you have a message item

【讨论】:

@SilverNinja :感谢您提供的信息。但是,如上所述,我无法直接获取 CurrentItem 的 MessageClass。我使用以下链接从 *** [链接] (***.com/questions/6171357/…) 获取 Message 类

以上是关于如何以编程方式确定从主功能区创建的 Outlook 新项目 --> 新项目的主要内容,如果未能解决你的问题,请参考以下文章

通过 vb.net 以编程方式创建 Access 数据库

以编程方式将联系人从outlook导入到iphone

隐藏以编程方式创建的自动完成 UITableView

如何监控 Microsoft Outlook 以确定加载时间和使用第三方程序、PowerShell 或 C# 所涉及的因素?

Outlook 2007/2010 如何对邮件标题进行着色

以编程方式生成的 HTML 电子邮件被 Outlook 归类为垃圾邮件 [重复]