2008-11-14 43 views
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); 
     } 
    } 
} 

 

身体是我想在四个PIM项目的共同财产。有这样的父母项目吗?如果不是,似乎糟糕的API设计?我想我可以抽象的文件夹项目,使它看起来像有一个父项......我也试图做到这一点使用反射,但不能完全到达那里。

任何suggestsion?

回答

1

望着文档,我没有看到一个类像你想要的。

对于Outlook 2007中,可以在一个项目集合对象的名单是here。它包括诸如没有正文的分发列表之类的东西,这使得你不太可能想要的东西。

0

虽然PIM项目可能来自普通类别,但它不是通过com对象创建的,但是,所有items也会返回class属性,该属性是它的类型的枚举。您可以检查此属性为你想你施放前四种类型的项目,