C# 以编程方式为Outlook 2010创建自定义通讯簿

C# 以编程方式为Outlook 2010创建自定义通讯簿,c#,outlook,vsto,outlook-addin,C#,Outlook,Vsto,Outlook Addin,我想创建一个自定义联系人列表(或其名称为通讯簿),以便用户在Outlook中查看“建议联系人”、“联系人”等,然后查看“自定义联系人”。我走了,尝试了以下方法 int count = this.Application.GetNamespace("MAPI").AddressLists.Count; 这给了我8的值。因此,很自然地,我尝试向address list对象添加一些内容,但是猜猜看,没有这样的方法。这一点并不奇怪,因为API明确声明它是只读对象。但是,我需要为我的客户设置一个地址簿/列

我想创建一个自定义联系人列表(或其名称为通讯簿),以便用户在Outlook中查看“建议联系人”、“联系人”等,然后查看“自定义联系人”。我走了,尝试了以下方法

int count = this.Application.GetNamespace("MAPI").AddressLists.Count;
这给了我8的值。因此,很自然地,我尝试向address list对象添加一些内容,但是猜猜看,没有这样的方法。这一点并不奇怪,因为API明确声明它是只读对象。但是,我需要为我的客户设置一个地址簿/列表(不管它叫什么)


如何将新的通讯簿添加到Outlook中?

您可以使用以下代码创建Outlook通讯簿条目:

Outlook.Folder contacts=this.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts)作为Outlook.Folder;
Outlook.Folder addressBook=contacts.Folders.Add(“业务联系人”,Outlook.OlDefaultFolders.olFolderContacts)作为Outlook.Folder;
addressBook.ShowAsOutlookAB=true;//强制在Outlook通讯簿中显示
Outlook.ContactItem contact=addressBook.Items.Add();
contact.FullName=“Custom Industries,Inc.”;
contact.Email1地址=”sales@customindustries.com";
contact.Save();

我现在还不是太迟钝,我看到你使用了一个文件夹thingy(第1行联系人的默认文件夹)。然后创建另一个全新(子)文件夹。然后,将其显示为默认值。这是正确的认识吗?这并不像我希望的那样直截了当。。。您还可以给我指一些关于这种方法的文档吗?您可以使用创建一个新的联系人文件夹,然后您可以使用添加一个新联系人。在通讯簿中看到这个的诀窍是切换。很好。。。谁想出了这个名字?!我错过了那件事。。。在瑞典,如果你愿意,它代表“公司”或“有限公司”。应该是IsAddressBook并且可以设置。很高兴它帮助了您!奇怪的名字,毫无疑问。我必须首先通过UI(文件夹属性->Outlook通讯簿)找到AB切换,然后找到class属性。请详细说明最后一部分。通过UI定位切换是什么意思?听起来好像你有Outlook的源代码。。。