我正在读取全局交换通讯簿中的数据。
这适用于没有重复项的名称。
当我发现一个名字有很多次,我需要循环整个地址簿。
我宁愿尝试获得我正在寻找的名称的第一个索引。
例如,AddressEntry对象中的"Peter Name“,并使用此索引遍历下一个AddressEntries。
如果"Peter Name“的索引是"1",那么我就可以循环遍历,例如从条目2到条目10。
是否有AddressEntry对象的索引,还是需要重新考虑寻找同名的人?
发布于 2019-10-07 16:24:29
没有内在的索引属性,因为没有内在的排序顺序。有EntryID属性,但它不是索引,而是唯一的id。
如果您想处理所有重复的名称,循环遍历所有条目是个坏主意--有些GALs包含数万个条目,甚至可能根本不允许您遍历它们。
在Extended (C++或Delphi)中,您可以使用PR_ANR限制获取类似于在Outlook中解析重复名称时所显示的副本列表。但是,该功能不会在Outlook对象模型中公开。如果使用赎罪 (我是它的作者)是一个选项,您可以使用RDOAddressList.ResolveNameEx方法:
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set AdrrEntries = Session.AddressBook.GAL.ResolveNameEx("Peter Name")
for each AE in AdrrEntries
MsgBox AE.Name
nexthttps://stackoverflow.com/questions/58270483
复制相似问题