如何通过插件设置默认地址簿

时间:2019-03-25 13:49:42

标签: c# outlook-addin

我需要更改用户写电子邮件时看到的地址簿。但是我找不到任何选择。

一般而言,我看到两种解决此问题的方法: 1)设置默认地址簿 2)在用户打开“选择名称”对话框并修改初始地址列表时做出反应

对于选项1,我找不到执行此操作的任何功能,而对于选项2,我只是解决方案的一部分。

foreach (Outlook.AddressList addrList in addrLists)
{
    Outlook.Folder testFolder = addrList.GetContactsFolder() as Outlook.Folder;

    if (Application.Session.CompareEntryIDs(testFolder.EntryID, addressbookID))
    {
        writeLog("passendes Adressbuch gefunden", 4);
        namesDialog.InitialAddressList = addrList;
        namesDialog.Display();
    }
}

使用此代码,我可以设置初始地址列表并显示对话框,但是我不知道按下“ to”,“ cc”,“ bcc”按钮时发生的事件。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当用户单击“ To / CC / BCC”按钮时,您不能覆盖Outlook行为。 InitialAddressList属性仅在您显式显示地址簿对话框时适用。

在MAPI级别(C ++或Delphi)上,您需要调用IAddrBook.SetDefaultDir并传递容器的条目ID(以及在配置文件部分将PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY属性设置为false)。

Outlook对象模型不提供该功能。如果使用Redemption是一个选项(我是它的作者),它将公开RDOAddressBookDefaultAddressList的r / w属性。