呈现Outlook全局地址列表

时间:2009-06-12 13:28:24

标签: c# outlook mapi

我需要创建一个与新邮件上的Outlook To ...按钮功能相同的控件(即单击时,会创建一个模式对话框,其中包含整个列表框中的全局地址列表。)

我没有访问这些数据的问题,我有一个我希望在ListBox中显示的AddressEntries列表,但是,由于数据集的大小(~300K记录),这证明非常困难。

我想避免一次流式传输100个左右的记录,因为Outlook不会这样做。

有没有人知道这样做的好方法?

如果有帮助,我用来获取地址列表的代码是:

public AddressEntries GetGlobalAddressList()
        {
            Outlook.Application oApp = new Outlook.Application();
            Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
            oNS.Logon(Missing.Value, Missing.Value, false, true); 
            Outlook.AddressLists oDLs = oNS.AddressLists;  
            Outlook.AddressList oGal = oDLs["Global Address List"];  
            Outlook.AddressEntry oEntry = default(Outlook.AddressEntry);

            return oGal.AddressEntries;            

         }

1 个答案:

答案 0 :(得分:1)

可能最简单的方法是使用CDO的Session.AddressBook()。或者如果您想绕过安全提示等,请使用兑换(http://www.dimastr.com/redemption/)RDO AddressBook。