2011-01-04 9 views
3

Certaines personnes ont un certain nombre de listes/dossiers dans Outlook, sous Contacts (par exemple, en plus des contacts et des contacts suggérés, les utilisateurs peuvent ajouter de nouveaux «dossiers» de contacts).Outlook: Comment accéder aux autres dossiers de contacts?

Maintenant, mes questions:

  1. Comment puis-je obtenir une liste de toutes ces listes/dossiers?
  2. Comment puis-je accéder à tous les contacts dans l'un de ces dossiers?

Je sais que si je veux accéder aux contacts de la liste principale « Contacts », le code ressemble à ceci:

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

Comment serait-il ressembler lors de l'accès d'autres listes de contacts/dossiers ?

Merci!

Répondre

1

Pour accéder au "Contacts suggérés" Dossier procéder exactement comme vous le faites pour le contact, mais

Au lieu de

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

Utilisez

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

olFolderSuggestedContacts a une valeur de 30 (décimal) ou $ 0000001E en hexadécimal

Je sais que c'est un langage Delphi, mais l'adaptation à C# devrait être simple.

+1

Ok. Mais comment répertoriez-vous d'autres dossiers contenant des contacts? – Andris

+0

Vous devrez parcourir de manière récursive tous les dossiers enfants (MAPIFolder.Folders) en commençant par la collection Namespace.Folders (retourne les dossiers de niveau supérieur de tous les magasins). –

Questions connexes