IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] - MS Outlook 2003


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut [C#] - MS Outlook 2003
    Bonjour a tous !

    Je souhaite créer une classe qui puisse me permettre de créer des contacts et des listes de distributions automatiquement !
    Pour les contacts, je n'ai pas trop de pb, mais pour les liste j'ai qq soucis !
    Voici un bout de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    using System;
    using Outlook = Microsoft.Office.Interop.Outlook;
    using MSN = MessengerAPI;
     
    public class MessengerToOutlook
    {
       private Outlook._Application _application;
       private Outlook._NameSpace _namespace;
       private Outlook._ContactItem _contactItem;
       private Outlook._DistListItem _distListItem;
       private Outlook.MAPIFolder _mapiFolder;
       private Outlook.Items _items;
     
       public MessengerToOutlook()
       {
          this._application = new Outlook.ApplicationClass();
          this._namespace = this._application.GetNamespace("MAPI");
          this._mapiFolder = this._namespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
       }
     
       // Transformation de contact MSN en contact Outlook
       public object MessengerBuddyToOutlookContact(object MessengerBuddy)
       {
          this._items = this._mapiFolder.Items;
          this._contactItem = (Outlook._ContactItem)this._items.Add("IPM.Contact");
     
          this._contactItem.Email1Address = ((MSN.IMessengerContact)MessengerBuddy).SigninName;
     
          this._contactItem.MobileTelephoneNumber = ((MSN.IMessengerContact)MessengerBuddy).get_PhoneNumber(MSN.MPHONE_TYPE.MPHONE_TYPE_MOBILE);
     
          this._contactItem.HomeTelephoneNumber = ((MSN.IMessengerContact)MessengerBuddy).get_PhoneNumber(MSN.MPHONE_TYPE.MPHONE_TYPE_HOME);
     
          this._contactItem.BusinessTelephoneNumber = ((MSN.IMessengerContact)MessengerBuddy).get_PhoneNumber(MSN.MPHONE_TYPE.MPHONE_TYPE_WORK);
     
          this._contactItem.FirstName = ((MSN.IMessengerContact)MessengerBuddy).SigninName.Substring(0,((MSN.IMessengerContact)MessengerBuddy).SigninName.IndexOf("@"));
     
          this._contactItem.Save();
     
          return this._contactItem;
       }
     
       // Transformation d'un groupe MSN en Liste
       public object MessengerGroupToOutlookDistList(object MessengerGroup)
       {
          this._items = this._mapiFolder.Items;
          this._distListItem = (Outlook._DistListItem)this._items.Add("IPM.DistList");
     
          this._distListItem.DLName = ((MSN.IMessengerGroup)MessengerGroup).Name;
     
          this._distListItem.Save();
     
          return this._distListItem;
       }
    Ici, je crée bien dans Outlook 2003 mes contacts et mes listes VIERGES !

    Voilà ou ca coince :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // Ajout d'un contact a une liste
    public void AddContactToDistList(object Contact,object DistList)
    {
       this._contactItem = (Outlook._ContactItem)Contact;
       this._distListItem = (Outlook._DistListItem)DistList;
     
       Outlook.Recipient recipient = this._namespace.CreateRecipient(this._contactItem.Email1Address);
     
       this._distListItem.AddMember(recipient);
    }
    Ici, je ne comprends pas tres bien !
    En effet, si j'execute le code, il n'ajoute pas les contacts aux listes !
    Cepedant, si je fais un breakpoint sur l'ajout du membre a la liste et que j'espionne le recipient puis que je continue l'execution j'ai bien qq chose dans ma liste...

    Merci de votre aide...

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Après cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this._distListItem.AddMember(recipient);
    Essaye de rajouter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    this._distListItem.Save(); 
    this._distListItem.Close();

    Source: http://groups.google.fr/group/microsoft.public.win32.programmer.ole/browse_thread/thread/3cc75280592d511c/33078645354bed3a?lnk=st&q=_DistListItem&rnum=4&hl=fr#33078645354bed3a

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    c'était fait dans une boucle ds mon programme !

    Edit : Je viens de trouver !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void AddContactToDistList(object Contact,object DistList)
    {
       this._contactItem = (Outlook._ContactItem)Contact;
       this._distListItem = (Outlook._DistListItem)DistList;
     
       Outlook.Recipient recipient = this._application.Session.CreateRecipient(this._contactItem.FullName);
     
       if (recipient.Resolve())
          this._distListItem.AddMember(recipient);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/05/2008, 10h29
  2. microsoft outlook 2003
    Par hutchuck dans le forum Outlook
    Réponses: 2
    Dernier message: 05/12/2005, 16h50
  3. (VB6) - Message Outlook (2003) ne se ferme plus
    Par jlvalentin dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/12/2005, 10h55
  4. microsoft outlook 2003
    Par roger12 dans le forum Outlook
    Réponses: 7
    Dernier message: 28/10/2005, 13h56
  5. Outlook 2003 et Delphi 7
    Par Charette dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 30/08/2005, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo