我想使用C#中的以下代码在全局地址列表中搜索addressEntry对象。
Microsoft.Office.Interop.Outlook.Application app = new Outlook.Application();
Outlook.AddressList gal = app.Session.GetGlobalAddressList();
Outlook.AddressEntry entry = gal.AddressEntries[name];

但我得到了第一个匹配的名字,这是不正确的。我想将别名或primarySMTPAddress(mailId)作为索引传递,唯一。给我传递唯一值的方法来获取精确的addressEntry对象。获取所有匹配的addressEntry对象的其他方法。
您可以为下面的代码段建议可能的索引参数。
Outlook.AddressEntry entry = gal.AddressEntries[name];

答案 0 :(得分:-1)
您需要遍历所有项目以找到完全匹配。 Outlook对象模型不提供任何方法或属性。
使用低级代码(扩展MAPI)作为Dmitry建议您可以在PR_ANR上创建RES_PROPERTY限制,并在相应IABContainer对象的内容表上调用IMAPITable :: Restrict。这与Outlook在针对特定容器解析名称并显示模糊名称对话框时使用的限制相同。