3

我想搜索所有 Outlook 项目的正文。我知道如何为四个 PIM 项目(Notes/Tasks/Appointments/Contacts)执行此操作。但是除了将 COM 对象转换为特定的项目类型(即,ContactItem、AppointmentItem 等)之外,它们的代码都是相同的。这些 PIM 项是否有父类,以便我可以在循环中执行以下操作:


using Outlook = Microsoft.Office.Interop.Outlook

List SearchFolderItems( Outlook.Folder folder )
{
   List results = new List();
   foreach( object folderItem in folder.Items )
   {
      //GenericPIMItem is what I am wishing for
      Outlook.GenericPIMItem item  = (Outlook.GenericPIMItem)folderItem;
      if( item.Body.ToLower().Contains( "secret sauce" ) )
      {
         results.Add( item.Name );
      }
   }
}


Body 是我想要获得的四个 PIM 项目的共同属性。有这样的父项吗?如果不是,API 设计似乎很糟糕?我想我可以抽象文件夹项目,让它看起来像有一个父项目......我也尝试使用反射来做到这一点,但不能完全到达那里。

有什么建议吗?

4

2 回答 2

1

查看文档,我没有看到您想要的课程。

对于 Outlook 2007,可以在 Items 集合中的对象列表位于此处。它包括诸如没有正文的分发列表之类的东西,这使得您想要的东西不太可能。

于 2008-11-14T16:30:59.120 回答
0

虽然 PIM 项可能派生自一个公共类,但它不能通过 com 对象创建,但是,所有也返回一个属性,该属性是对它是什么类型的项的枚举。您可以在投射之前检查此属性以获得您想要的四种类型的项目,

于 2008-11-24T20:49:42.760 回答