2011-01-04 10 views
3

Einige Personen haben in Outlook eine Reihe von Listen/Ordnern unter Kontakte (z. B. können neben Kontakten und vorgeschlagenen Kontakten Personen neue "Ordner" von Kontakten hinzufügen).Outlook: Wie auf andere Kontaktordner zugreifen?

Nun meine Fragen:

  1. Wie kann ich eine Liste aller dieser Listen/Ordner bekommen?
  2. Wie kann ich auf alle Kontakte in diesen Ordnern zugreifen?

Ich weiß, dass wenn ich die Kontakte von den wichtigsten „Kontakte“ Liste zugreifen möchten, dann ist der Code wie folgt aussieht:

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

Wie wäre es wie beim Zugriff auf andere Kontaktlisten/Ordner suchen ?

Danke!

Antwort

1

Um die "vorgeschlagene Kontakte" Ordner genau so, wie Sie für den Kontakt zu tun fortfahren Zugriff aber

Statt

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

Verwenden

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

Wo olFolderSuggestedContacts einen Wert von 30 hat (dezimal) oder $ 0000001E in Hexadezimal

Ich weiß, dass dies Delphi ist, aber die Anpassung an C# sollte einfach sein.

+1

Ok. Aber wie listen Sie andere Ordner mit Kontakten auf? – Andris

+0

Sie müssen alle untergeordneten Ordner (MAPIFolder.Folders) rekursiv durchlaufen, beginnend mit der Namespace.Folders-Auflistung (gibt Ordner der obersten Ebene aller Speicher zurück). –

Verwandte Themen