Как установить адресную книгу по умолчанию через Addin - PullRequest
0 голосов
/ 25 марта 2019

Мне нужно изменить адресную книгу, которую видит пользователь, когда пишет электронное письмо. Но я не могу найти никакой возможности сделать это.

В общем я вижу 2 способа решения этой проблемы: 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 голосов
/ 25 марта 2019

Вы не можете переопределить поведение Outlook, когда пользователь нажимает кнопки To / CC / BCC. InitialAddressList свойство только для случаев, когда вы явно показываете диалоговое окно адресной книги.

На уровне MAPI (C ++ или Delphi) вам нужно будет вызвать IAddrBook.SetDefaultDir, передав идентификатор записи контейнера (а также установить для свойства PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY значение false в разделе профиля).

Объектная модель Outlook не раскрывает эту функциональность. Если опция Redemption является опцией (я являюсь ее автором), она предоставляет свойство RDOAddressBook . DefaultAddressList r / w.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...