2011-01-04 3 views
3

Некоторые люди имеют несколько списков/папок в Outlook, в разделе «Контакты» (например, кроме «Контакты» и «Рекомендуемые контакты», люди могут добавлять новые «папки» контактов).Outlook: Как получить доступ к другим папкам контактов?

Теперь мои вопросы:

  1. Как я могу получить список всех этих списков/папок?
  2. Как я могу получить доступ ко всем контактам в любой из этих папок?

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

MAPIFolder oMAPIFolder = 
       oNmSpc.GetDefaultFolder(OlDefaultFolders.olFolderContacts); 
    oItemsTemp = oMAPIFolder.Items; 

Как это будет выглядеть, когда доступ к другим спискам контактов/папок ?

Спасибо!

ответ

1

Чтобы получить доступ к "Предлагаемые контакты" Папка проследовать точно так, как вы делаете для контакта, но

Вместо

outlook := CreateOLEObject('Outlook.Application'); 
    NameSpace := outlook.GetNameSpace('MAPI'); 
    ContactsRoot := NameSpace.GetDefaultFolder(olFolderContacts) ; 

Использование

outlook := CreateOLEObject('Outlook.Application'); 
    NameSpace := outlook.GetNameSpace('MAPI'); 
    SuggestedContactsRoot := NameSpace.GetDefaultFolder(olFolderSuggestedContacts); 

Где olFolderSuggestedContacts имеет значение 30 (десятичный) или $ 0000001E в шестнадцатеричном формате

Я знаю, что это язык Delphi, но адаптация к C# должна быть простой.

+1

Хорошо. Но как вы перечислите другие папки с контактами в них? – Andris

+0

Вам потребуется рекурсивно прокрутить все дочерние папки (MAPIFolder.Folders), начиная с коллекции Namespace.Folders (возвращает папки верхнего уровня всех магазинов). –