Поиск в глобальном списке адресов / книгах - PullRequest
4 голосов
/ 18 ноября 2010

Я занимаюсь разработкой приложения, которое позволит пользователю просматривать содержимое папки «Входящие», к которой он имеет доступ.Я с трудом пытаюсь найти способ поиска в глобальном списке адресов, отличный от

AddressEntries entries = global.AddressEntries;
AddressEntry entry = entries["search value"];

Это работает, но возвращает только один экземпляр, и это первый найденный.Я в основном хочу предоставить список пользователю, если есть несколько результатов.

Во-вторых, я хотел бы иметь возможность просматривать контактные данные, но когда я использую

ContactItem contact = entry.GetContact();

, он всегда возвращает ноль, я думаю, что это потому, что он смотрит на текущийличный список контактов пользователя

Я предполагаю, что я пытаюсь создать простую версию окна Глобальной адресной книги в Outlook, если это имеет смысл.

В любом случае, если у кого-то есть идеи или рекомендации, я был бы признателен!

Спасибо, Патрик

Ответы [ 2 ]

4 голосов
/ 08 февраля 2012
string[] names;
Outlook.AddressLists addrLists = Application.Session.AddressLists; 
Outlook.AddressList gal = addrLists["Global Address List"];

//for a distrubution list do this...
Outlook.AddressEntry entry = gal.AddressEntries["distribution list"];
Outlook.ExchangeDistributionList exchDL = entry.GetExchangeDistributionList();
Outlook.AddressEntries addrEntries = exchDL.GetExchangeDistributionListMembers();

names = new string[addrEntries.Count];

for (int i = 0; i < addrEntries.Count; i++)
{
    Outlook.AddressEntry exchDLMember = addrEntries[i];
    names[i] = exchDLMember.Name;
}

return names;

//for an individual you could do something like this...
Outlook.AddressEntry entry = gal.AddressEntries["contact nickname"];

Outlook.ContactItem contact = entry.GetContact();
string name = contact.NickName;
string email = contact.Email1Address;
3 голосов
/ 18 ноября 2010

Вы должны иметь возможность получить глобальный список адресов из текущего профиля, как показано ниже.

Outlook.AddressLists addrLists = Application.Session.AddressLists;
Outlook.AddressList gal = addrLists["Global Address List"];

Затем вы можете перечислить и отобразить членов этого AddressList.

Есть еще один способ сделать это, описанный в MSDN здесь .

Как: перечислить записи в глобальном списке адресов

...