我需要更改用户写电子邮件时看到的地址簿。但是我找不到任何选择。
一般而言,我看到两种解决此问题的方法: 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”按钮时发生的事件。
有什么想法吗?
答案 0 :(得分:0)
当用户单击“ To / CC / BCC”按钮时,您不能覆盖Outlook行为。 InitialAddressList
属性仅在您显式显示地址簿对话框时适用。
在MAPI级别(C ++或Delphi)上,您需要调用IAddrBook.SetDefaultDir
并传递容器的条目ID(以及在配置文件部分将PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY
属性设置为false)。
Outlook对象模型不提供该功能。如果使用Redemption是一个选项(我是它的作者),它将公开RDOAddressBook。DefaultAddressList
的r / w属性。