none
Ambiguité entre la méthode et l'élément etc RRS feed

  • Question

  • Bonjour,

    Je suis entrain de mettre en place un envoie d'email dans une application à l'aide de Outlook.

    Voilà comment j'ai procédé : 

    J'ai ajouté la référence suivante au projet :  Microsoft.Office.Interop.Outlook   

    j'ai ajouter dans mon form : 
    using Outlook = Microsoft.Office.Interop.Outlook;

    et j'ai créer un simple message de la manière suivante : 

    Outlook.Application myOutlook = new Outlook.Application();
    
    Outlook.MailItem mail = (Outlook.MailItem)(myOutlook.CreateItem(OlItemType.olMailItem));
    mail.Subject = "sujet";
    mail.Body = "corp";
    mail.To = "test@test.be";
    
    mail.Send();


    Et il me met un avertissement sur la méthode  Send()

    Avertissement	1	Ambiguïté entre la méthode 'Microsoft.Office.Interop.Outlook._MailItem.Send()' et l'élément 'Microsoft.Office.Interop.Outlook.ItemEvents_10_Event.Send' qui n'est pas une méthode. Utilisation du groupe de méthodes.	\\MyServer\new data\home\f.gerard\mes documents\visual studio 2010\Projects\test\test\Form1.cs	30	18	test


    (Je n'ai pas ajouter 2 fois une référence vers outlook dans le projet)

    Auriez-vous une idée sur ce que je dois faire ?



    • Modifié draco951 lundi 27 août 2012 12:06
    lundi 27 août 2012 11:54

Réponses

Toutes les réponses

  • Bonjour,

    Apparemment utiliser (mail as Outlook._MailItem).Send(); vu sur http://bytes.com/topic/c-sharp/answers/258870-outlook-2003-object-model-using-visual-c-2005-express-ide-beta1 (le problème étant que l'on a une méthode et un évènement avec le même nom et il faut donc indiquer explicitement l'interface concernée pour lever l'ambiguïté).


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".


    lundi 27 août 2012 12:14
    Modérateur
  • Bonjour,

    Un grand merci, c'est parfait,  3 heures que je cherche ... 

    lundi 27 août 2012 12:23
  • malheureusement, j'ai été trop vite, je n'as plus le problème pour la méthode send() mais j'ai de nouveau un problème d'ambiguité sur : 

    mail.GetInspector.Activate();

    J'ai donc juste changé le 'MailItem' en '_MailItem'

    Une idée ? :p



    • Modifié draco951 lundi 27 août 2012 12:46
    lundi 27 août 2012 12:43
  • Si j'ai bien compris le topic, je devrais faire quelque chose comme ca :

    ((Outlook._Inspector)mail).Activate();

    Au compilateur, je n'ai pas d'erreur, par contre quand je lance l'application, ca plante :

    Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type d'interface 'Microsoft.Office.Interop.Outlook._Inspector'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{00063005-0000-0000-C000-000000000046}' a échoué en raison de l'erreur suivante : Cette interface n'est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)).
       à Deominateur.Formulaire.ongCommunications.tsb_nouveau_Click(Object sender, EventArgs e) dans C:\Projet_VS_2010\ContMaint\Deominateur\Formulaire\ongCommunications.cs:ligne 196}

    lundi 27 août 2012 12:58
  • Outlook._Inspector recupSignature = (Outlook._Inspector)msg.GetInspector;
                    recupSignature.Activate();

    • Marqué comme réponse draco951 lundi 27 août 2012 13:29
    lundi 27 août 2012 13:29
  • Est-ce que le problème pourrait être que vous faites un cast de la variable mail en _Inspector alors qu'il faudrait faire un cast de ce que vous récupérez via mail.GetInspector ?

    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    lundi 27 août 2012 13:30
    Modérateur