我有一个VSTO插件,我正在尝试将地址列表中的人员列表显示为一个表单。我想在我的全球地址列表中搜索,但只根据通配符进行搜索。
我看到this code循环遍历地址列表中的所有条目,但我有超过100K的条目,所以我不想做一个循环,所以我想可能有一种方法来做一个前期过滤器搜索
我想搜索地址簿中以“ABC”开头的任何人作为示例。这可能吗?
答案 0 :(得分:1)
我实际上使用EWS(Exchange的WCF就像Web服务)而不是使用VSTO。这样,几乎可以在任何环境中调用代码。
http://vivekiyer.net/2010/07/17/querying-the-global-address-list-gal-via-exchange-web-services-ews/
答案 1 :(得分:0)
Outlook对象模型不允许您这样做。在扩展MAPI级别(仅限C ++或Delphi),您可以针对GAL容器创建PR_ANR限制。
您还可以使用Redemption及其RDOAddressList。ResolveNameEx方法获取所有匹配条目的列表:
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set AdrrEntries = Session.AddressBook.GAL.ResolveNameEx("ABC")
Debug.Print AdrrEntries.Count & " names were returned by ResolveNameEx:"
for each AE in AdrrEntries
Debug.Print AE.Name
next