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

C# Discussion :

Addin pour OutLook


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut Addin pour OutLook
    Bonjour je demarre dans add-in pour les produit office en C#.
    Je n'arrive pas à créer une nouvelle barre d'outil dans OutLook.
    J'ai pu ajouter un bouton menu mais j'arrive pas à ajouter un séparateur entre les menus que j'ai crée.

    Merci de me donne le plus ample explication.
    Merci!

  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
    Commence par nous montrer ton code

  3. #3
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut Voici mon code
    Voici le contenu de mon fichier connect.cs
    J'aimerais ajouter un nouvelle barre d'outils et y placer mes boutons
    D'abord j'ai le code ci-dessous qui montre comment ajouter un nouvelle barre d'outils mais quand je le test ca ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CommandBars oCommandBars; // Collection des commandbars de l'application hôte
    CommandBar oStandardBar;  // Notre barre d'outils
    oCommandBars = (CommandBars)applicationObject.GetType().InvokeMember("CommandBars", 
                                                                          BindingFlags.GetProperty , 
                                                                          null, 
                                                                          applicationObject, 
                                                                          null);
    oStandardBar = oCommandBars.Add("Ma barre d'outils", Microsoft.Office.Core.MsoBarPosition.msoBarTop, omissing, true);
    oStandardBar.Visible=true; // rend la barre d'outils visible
    le code ci-dessous ajoute un bouton menu déroulant avec des sous menu, moi mon soucis c'est de pouvoir ajouter ma propre barre d'outils.
    le fchier connect.cs
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    namespace EwayComAddin
    {
    	using System;
    	using Microsoft.Office.Core;
    	using Extensibility;
    	using System.Runtime.InteropServices;
    	using System.Reflection;
     
     
     
    	#region Read me for Add-in installation and setup information.
    	// When run, the Add-in wizard prepared the registry for the Add-in.
    	// At a later time, if the Add-in becomes unavailable for reasons such as:
    	//   1) You moved this project to a computer other than which is was originally created on.
    	//   2) You chose 'Yes' when presented with a message asking if you wish to remove the Add-in.
    	//   3) Registry corruption.
    	// you will need to re-register the Add-in by building the MyAddin21Setup project 
    	// by right clicking the project in the Solution Explorer, then choosing install.
    	#endregion
     
    	/// <summary>
    	///   The object for implementing an Add-in.
    	/// </summary>
    	/// <seealso class='IDTExtensibility2' />
    	[GuidAttribute("E3071F4A-77A1-4A7F-AA0E-189815986A6E"), ProgId("EwayComAddin.Connect")]
    	public class Connect : Object, Extensibility.IDTExtensibility2
    	{
    		#region Variables
    		//les variable pour l'addin
    		private object applicationObject;
    		private object addInInstance;
     
    		// le Menu
    		private CommandBarPopup MenuEwayCom;
    		//les sous menu
    		private CommandBarButton SMenuEwaySMS;
    		private CommandBarButton SMenuEwayFax;
    		private CommandBarButton SMenuEwayRecupMails;
    		private CommandBarButton About;
    		#endregion
     
     
     
    		public Connect()
    		{
    		}
     
    		#region OnConnection
    		public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom)
    		{
     
     
    			applicationObject = application;
    			addInInstance = addInInst;
     
     
    			if(connectMode != Extensibility.ext_ConnectMode.ext_cm_Startup)
    			{
    				OnStartupComplete(ref custom);
    			}
     
    		}
    		#endregion
     
     
    		#region OnDisconnection
    		public void OnDisconnection(Extensibility.ext_DisconnectMode disconnectMode, ref System.Array custom)
    		{
    			if(disconnectMode != Extensibility.ext_DisconnectMode.ext_dm_HostShutdown)
    			{
    				OnBeginShutdown(ref custom);
    			}
    			applicationObject = null;
    		}
    		#endregion
     
     
    		#region OnAddInsUpdate
    		public void OnAddInsUpdate(ref System.Array custom)
    		{
    		}
    		#endregion
     
    		#region OnStartupComplete
    		public void OnStartupComplete(ref System.Array custom)
    		{
    			#region Objets: CommandBars et CommandBar
    			CommandBars oCommandBars;// Collection des commandbars de l'application hôte
    			CommandBar oStandardBar;// Notre barre d'outils
    			#endregion
     
     
     
    			object oActiveExplorer;
    			// obtenir l'explorer courant
    			oActiveExplorer= applicationObject.GetType().InvokeMember("ActiveExplorer",BindingFlags.GetProperty,null,applicationObject,null);
    			// obtenir la collection de barre d'outils
    			oCommandBars= (CommandBars)oActiveExplorer.GetType().InvokeMember("CommandBars",BindingFlags.GetProperty,null,oActiveExplorer,null);
    			// obtenir la barre d'outil standard
    			oStandardBar = oCommandBars["Standard"];      
     
    			//essayer de recuperer le bouton
    			try
    			{
    				MenuEwayCom = (CommandBarPopup)oStandardBar.Controls["E&wayCom"];
    			}
    				// si on echoue c'est qu'il n'exsite pas encore 
    				// il faut le creer
    			catch(Exception)
    			{
    				object omissing = System.Reflection.Missing.Value ;
    				MenuEwayCom = (CommandBarPopup)oStandardBar.Controls.Add(MsoControlType.msoControlPopup, omissing, omissing, omissing, true);
    				//le texte a afficher
    				MenuEwayCom.Caption = "E&wayCom";
    				//ToolTip Text
    				MenuEwayCom.TooltipText = "EwayCom SMS and Fax Manager";
     
     
    			}
    			#region le sous menu d'envoi de sms
    			/////////////////////////////////////////////////////
    			//le menu pour les sms///////////////////////////////
    			object missing = System.Reflection.Missing.Value ;
     
    			SMenuEwaySMS=(CommandBarButton)MenuEwayCom.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlButton, missing, missing, missing, missing);
    			SMenuEwaySMS.Style = MsoButtonStyle.msoButtonIconAndCaption;
    			//le titre du sous-menu
    			SMenuEwaySMS.Caption = "EwaySMS";
    			//image
    			SMenuEwaySMS.FaceId = 273;
    			//tooltip
    			SMenuEwaySMS.TooltipText= "Envoyer un EwaySMS";
    			// configuration de la méthode
    			SMenuEwaySMS.OnAction = "!<EwayComAddin.Connect>";
    			SMenuEwaySMS.Click += new _CommandBarButtonEvents_ClickEventHandler(this.SendEwaySMS_Click);			
    			#endregion
     
    			#region le sous menu d'envoie de fax
    			//////////////////////////////////////////////////////
    			//le sous menu pour les Fax////////////////////////////////
    			object missings = System.Reflection.Missing.Value ;
    			SMenuEwayFax=(CommandBarButton)MenuEwayCom.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlButton,missings,missings,missings,missings);
    			SMenuEwayFax.Style = MsoButtonStyle.msoButtonIconAndCaption;
    			//le titre du sous-menu
    			SMenuEwayFax.Caption = "EwayFax";
    			//icone
    			SMenuEwayFax.FaceId = 274;
    			//tooltip
    			SMenuEwayFax.TooltipText= "Envoyer un EwayFax";
    			//le tooltip
    			SMenuEwayFax.Tag = "Envoyer un EwayFax";
    			// configuration de la méthode
    			SMenuEwayFax.OnAction = "!<EwayComAddin.Connect>";
    			SMenuEwayFax.Click += new _CommandBarButtonEvents_ClickEventHandler(this.SendEwayFax_Click);			
    			#endregion
     
    			#region le sous menu de récupération des adresses mail
    			//////////////////////////////////////////////////////
    			//le sous menu pour la récupération des adresses email////////////////////////////////
    			object missing2 = System.Reflection.Missing.Value ;
    			SMenuEwayRecupMails=(CommandBarButton)MenuEwayCom.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlButton,missing2,missing2,missing2,missing2);
    			SMenuEwayRecupMails.Style = MsoButtonStyle.msoButtonIconAndCaption;
    			//le titre du sous-menu
    			SMenuEwayRecupMails.Caption = "RécupMails";
    			//icone
    			SMenuEwayRecupMails.FaceId = 25;
    			//tooltip
    			SMenuEwayRecupMails.TooltipText= "Récupérer les mails";
    			//configuration de la méthode
    			SMenuEwayRecupMails.OnAction = "!<EwayComAddin.Connect>";
    			SMenuEwayRecupMails.Click += new _CommandBarButtonEvents_ClickEventHandler(this.RecupMails_Click);			
    			#endregion
     
    			#region A propos de EwayCom
    			//////////////////////////////////////////////////////
    			//le sous menu pour la récupération des adresses email////////////////////////////////
    			object missin = System.Reflection.Missing.Value ;
    			About=(CommandBarButton)MenuEwayCom.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlButton,missin,missin,missin,missin);
    			About.Style = MsoButtonStyle.msoButtonIconAndCaption;
    			//le titre du sous-menu
    			About.Caption = "?";
    			//tooltip
    			About.TooltipText= "EwayCom";
    			//configuration de la méthode
    			About.OnAction = "!<EwayComAddin.Connect>";
    			About.Click += new _CommandBarButtonEvents_ClickEventHandler(this.About_Click);			
    			#endregion
     
     
     
    			oStandardBar = null;
    			oCommandBars = null;
    		}
    		#endregion
     
    		#region les méthodes
    		//l'action à faire pour le bouton d'envoie de sms
    		public void SendEwaySMS_Click(CommandBarButton btn,ref bool cancel)
    		{
    			FormSendSMS fSendSMS = new FormSendSMS();
    			fSendSMS.ShowDialog();
    		}
    		//l'action à faire pour le bouton d'envoie de fax
    		public void SendEwayFax_Click(CommandBarButton btn,ref bool cancel)
    		{
    			FormSendFax fSendFAx = new FormSendFax();
    			fSendFAx.ShowDialog();
    		}
    		//la methode d'interaaction avec outlook pour le récupération des adesses mails
    		public void RecupMails_Click(CommandBarButton btn,ref bool cancel)
    		{
     
    		}
    		//la methode d'interaaction avec outlook pour le récupération des adesses mails
    		public void About_Click(CommandBarButton btn,ref bool cancel)
    		{
    			About fAbout = new About();
    			fAbout.ShowDialog();
    		}
    		#endregion
     
     
    		public void OnBeginShutdown(ref System.Array custom)
    		{
     
    		}
     
    	}
    }
    Merci

  4. #4
    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
    Ta technique pour ajouter une barre de menu me semble bizarre


    Tu as essayé de debugger pour voir si tu n'as pas une exception qui arrive ?

  5. #5
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut Mon code marche...
    Mon code marche, il ajoute seuelement un bouton avec un menu déroulant.
    Mais moi mon soucis c'est de pouvoir ajouter un nouvelle barre d'outil dans OutLook. Pourquoi cela par ce que que je fais "Nouveau" dans Outlook je ne vois plus mon bouton que j'avais ajouter...


    Aussi j'aimerais ajouter un bouton dans le volet de navigation de OutLook..Merci ce me donner des Tuto pour que je me lance..

  6. #6
    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

  7. #7
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut Problème...
    Merci pour la page que tu m'a filé...

    Moi je developpe mon Add-in avec Visual Studio 2003;
    Alors que j'ai essai les codes que tu m'a filé, j'ai des soucis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cbar = this.ActiveExplorer().CommandBars.Add("Menu .NET Solutions - Outlook", oMissing, oMissing, (object)true);
    Aussi je du mal avec ces références:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    using Microsoft.Office.Interop.Outlook;
    Je suis allé téléchargé O2003PIA.msi sur le site de microsoft mais je n'arrive toujours à faire référence ... or j'ai besoin de ca pour interagir avec OutLook!

  8. #8
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut Problème avec l'utilisation des reference
    je n'arrive à utilises ces references avec la directive using
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    using System.Collections.Generic;
    using Outlook = Microsoft.Office.Interop.Outlook;
    using Office = Microsoft.Office.Core
    Merci de me filer un tuyau!

  9. #9
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut Office Primary Interop Assemblies
    Mon soucis demeurre concernant mes reference.
    En fait pour pouvoir interagir avec OutLook, les tutoriaux que j'ai lu m'indique d'installé Office 2003 Primary Interop Assemblies (PIAs) qui va me fournir le dll suivant: Microsoft.Office.Interop.Outlook.dll
    Alors je pourai donc utiliser les classe qui y sont, comme:
    using Microsoft.Office.Interop.Outlook;

    J'ai donc télécharge Office Primary Interop Assemblies, que j'ai installé mais je n'arrive toujours pas à utiliser cette référence dont j'ai t'en besoin.
    Je suis vraiment embêté..

  10. #10
    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
    Tu as téléchargé et installé les PIA. Maintenant, que ce pasent-ils si tu les rajoutent à ton projet ? (Clic droit dans l'explorateur de solution => Add Référence et là, où bien elles sont dans l'onglet COM ou bien ils faut aller les chercher via l'onglet Parcourir)

  11. #11
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut J'ai télécharger le PIAs
    J'ai télécharger le Office XP PIAs et comme tu me l'a indiqué j'ai fai le browser et c'est bon.
    Je developpe mon Addin avec VS.NET et non avec VSTO.
    Alors je cois avoir un soucis.
    Je te montre ce code:
    //Comment : rechercher un contact spécifique
    //Cet exemple recherche dans un dossier de contacts Microsoft Office Outlook 2003 un contact
    //spécifique par son nom et son prénom. L'exemple suppose qu'un //contact nommé John Evans
    //existe dans le dossier de contacts.
    //C#
    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
     
    private void FindContactEmailByName(string firstName, string lastName)
    {
        Outlook.NameSpace outlookNameSpace = this.GetNamespace("MAPI");
        Outlook.MAPIFolder contactsFolder =
            outlookNameSpace.GetDefaultFolder(
            Microsoft.Office.Interop.Outlook.
            OlDefaultFolders.olFolderContacts);
     
        Outlook.Items contactItems = contactsFolder.Items;
     
        try
        {
            Outlook.ContactItem contact =
                (Outlook.ContactItem)contactItems.
                Find(String.Format("[FirstName]='{0}' and "
                + "[LastName]='{1}'", firstName, lastName));
            if (contact != null)
            {
                contact.Display(true);
            }
            else
            {
                MessageBox.Show("The contact information was not found.");
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    Cette ligne m'intrigue, il me signal une erreur;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Outlook.NameSpace outlookNameSpace = this.GetNamespace("MAPI");
    je ne comprends pas...surtout il me signal que la méthode n'existe pas, je ne sais pas quoi faire.

  12. #12
    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
    Tu as bien rajouté les bons using ?

  13. #13
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut Les using
    J'ai utilisé cette référence:
    using using Microsoft.Office.Interop.Outlook;

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

Discussions similaires

  1. AddIn pour Outlook
    Par subzero01 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 24/09/2008, 18h00
  2. [EDI]developpement pour outlook
    Par mikees dans le forum Général Dotnet
    Réponses: 25
    Dernier message: 05/08/2006, 15h23
  3. [C#] Addin pour Outlook
    Par therock dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/07/2006, 12h08
  4. API java pour outlook
    Par snoopysnoop dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 21/01/2006, 21h13
  5. plugin pour outlook
    Par GMI3 dans le forum Outlook
    Réponses: 1
    Dernier message: 15/08/2005, 23h46

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