2017-07-28 3 views
0

J'ai un complément Outlook dans lequel j'essaye d'accéder aux destinataires de l'invitation de rendez-vous. Même si la colonne destinataires est null, le code Outlook.AppointmentItem.Recipients.Count renvoie 1 et Recipients renvoie l'adresse e-mail de l'expéditeur.Destinataires.Count dans VB ne fonctionne pas

Dim recips As Outlook.Recipients 
Dim recip As Outlook.Recipient 
Dim flag As Boolean = False 

cal = Application.ActiveInspector().CurrentItem 
recips = cal.Recipients 
cal.Save() 
MessageBox.Show(recips.Count) 
For Each recip In recips 
    MessageBox.Show(recip.Address) 
Next 

Quelqu'un peut-il suggérer pourquoi cela se produit?

Répondre

0

Vous pouvez utiliser la méthode GetAssociatedAppointment qui renvoie un objet AppointmentItem qui représente le rendez-vous associé à la demande de réunion. Ensuite, vous pouvez utiliser les propriétés suivantes:

  • RequiredAttendees - renvoie une chaîne délimité par des virgules des noms des participants requis pour la nomination de la réunion.
  • OptionalAttendees - renvoie ou définit une chaîne représentant la chaîne d'affichage des noms de participants facultatifs pour le rendez-vous.

Et bien sûr la propriété Recipients de la classe AppointmentItem.

0

Ceci est par nature - l'organisateur de rendez-vous est toujours dans la table des destinataires. Vous pouvez savoir qui est l'organisateur en regardant la propriété PR_RECIPIENT_FLAGS (nom DALS http://schemas.microsoft.com/mapi/proptag/0x5FFD0003) en utilisant Recipient.PropertyAccessor.GetProperty. L'organisateur aura recipOrganizer (= 2) bit défini.

+0

Je jure que je suis récemment tombé sur une situation où Recipients.Count était 0 pour Outlook 2013, mais 1 pour 2016. Je devais coder délibérément pour accommoder cela –

+0

Oui, les anciennes versions d'Outlook n'avaient aucun destinataire et aucun ID de rendez-vous global jusqu'à le rendez-vous est enregistré. Outlook 2016 ajoute l'organisateur en tant que destinataire dès que Save est appelé. –