2015-03-03 27 views
0

使用下面的代碼片段,我可以獲得第一個匹配的單個addressEntry對象。如何獲取全局地址列表下匹配的addressEntries對象的集合。從全局地址列表收集AddressEntry對象MSDN

Microsoft.Office.Interop.Outlook.Application app = new Outlook.Application(); 
Outlook.AddressList gal = app.Session.GetGlobalAddressList(); 
Outlook.AddressEntry entry = gal.AddressEntries[name]; 

回答

0

您需要迭代地址列表中的所有項目以獲取與您的要求相對應的所有地址條目。

另外,您可能會考慮調用AddressList類的GetContactsFolder方法,該方法獲取表示AddressList對象的Contacts文件夾的Folder對象。然後,您將能夠使用Find/FindNextRestrict方法查找相應的聯繫人。你可以閱讀更多有關在下面的文章這些方法:

+0

GetContactsFolder?對於全局地址列表? – 2015-03-03 14:03:22

+0

請看第一句。 – 2015-03-03 15:46:40

+0

GetContactsFolder如何適用於GAL?爲什麼OP需要考慮GetContactsFolder,如果它始終爲GAL地址列表返回null? – 2015-03-03 17:21:23

0

在擴展MAPI級別(C++或Delphi),你可以在PR_ANR和呼叫建立RES_PROPERTY限制對應的IABContainer對象的內容表上的IMAPITable :: Restrict。當Outlook解析某個特定容器的名稱並顯示模糊的名稱對話框時,這與Outlook使用的限制相同。

如果使用Redemption是一個選項,則可以使用其RDOSession.Addresbook.GAL.ResolveNameEx方法(返回RDOAddressEntries集合)。