2008-11-14 44 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屬性,該屬性是它的類型的枚舉。您可以檢查此屬性爲你想你施放前四種類型的項目,