2010-05-19 12 views
1

Dans mon outlook j'ai 1 échange de connexion et 2 dossiers personnels.MAPI trouver les contacts et le dossier de calendrier

Je veux aller chercher tous les éléments du calendrier et des contacts, donc je l'utilise:

  /** 
      * Create outlook application 
      */ 
      Outlook.Application oApp = new Outlook.Application(); 
      Outlook.NameSpace oNS = oApp.GetNamespace("mapi"); 
      oNS.Logon(Missing.Value, Missing.Value, true, true); 

      /** 
      * Loop through all the folders 
      */ 
      foreach (Outlook.MAPIFolder oFolder in oNS.Folders) 
      { 
       if (oFolder.Name == "Public Folders") 
       { 
        break; 
       } 

       /** 
       * Get calendar items 
       */ 
       //Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar); 
       Outlook.MAPIFolder oCalendar = oFolder.Folders[5]; 
       Outlook.Items oCalendarItems = oCalendar.Items; 

       //Outlook.MAPIFolder oContacts = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts); 
       Outlook.MAPIFolder oContacts = oFolder.Folders[7]; 
       Outlook.Items oContactItems = oContacts.Items; 

Mais cela ne fonctionne pas oFolder.Folders[5] est pas toujours 5 pour le calendrier, il est parfois une valeur différente.

Je ne trouve pas les articles par le nom oFolder.Folders["Calendar"]; car en néerlandais le dossier sera nommé "Agenda".

Habituellement j'utilise: Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);

Mais je reçois seulement le calendrier par défaut. Comment puis-je obtenir les autres calendriers?

Répondre

2

Je pense que vous auriez à rouler à travers youe liste des dossiers et regardez le Folder.DefaultItemType Property qui retourne un type OlItemType vous voulez que ceux qui reviennent olAppointmentItem & olContactItem

Marcus

+0

Merci de c'est exactement ce que je fait maintenant :-) – YesMan85

Questions connexes