来自全局地址列表MSDN的AddressEntry对象的集合



使用下面的代码片段,我可以获得第一个匹配的addressEntry对象。如何获取全局地址列表下匹配的addressEntries对象的集合。

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

您需要迭代地址列表中的所有项目,以获得符合您需求的所有地址条目。

您还可以考虑调用AddressList类的GetContactsFolder方法,该方法获取一个Folder对象,该对象表示AddressList对象的Contacts文件夹。然后,您将能够使用Find/FindNext或Restrict方法来查找相应的联系人。您可以在以下文章中阅读更多关于这些方法的信息:

  • 如何:使用Find和FindNext检索Outlook联系人项目
  • 如何:使用Restrict方法检索Outlook联系人项目

在Extended MAPI级别(C++或Delphi)上,可以在PR_ANR上创建RES_PROPERTY限制(请参阅https://learn.microsoft.com/en-us/office/client-developer/outlook/mapi/address-book-restrictions)并在对应的CCD_ 4对象的内容表上调用CCD_。这与Outlook在解析特定容器的名称并显示不明确的名称对话框时使用的限制相同。

如果使用Redemption是一个选项(我是它的作者),您可以使用它的RDOSession。Addresbook。GAL.ResolveNameEx方法(返回具有匹配项的RDOAddressEntries集合):

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set AdrrEntries = Session.AddressBook.GAL.ResolveNameEx("John")
Debug.Print AdrrEntries.Count & " names were returned by ResolveNameEx:"
for each AE in AdrrEntries
    Debug.Print AE.Name
next

最新更新