Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[.NET2/VSTO2] EXEMPLE D'ADDIN ET D'INSTALLEUR OUTLOOK


Information sur la source

Catégorie :.NET Source .NET ( DotNet ) Classé sous : vsto, outlook, addin, plugin Niveau : Débutant Date de création : 25/01/2006 Date de mise à jour : 25/01/2006 00:42:05 Vu / téléchargé: 12 185 / 1 063

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


Description

Voici un exemple très simple d'Addin Outlook réalisé à l'aide de C# et de Visual Studio Tools For Office 2005.

Au programme, ajout d'un menu et d'un bouton dans Outlook, récupération des contacts et envoie d'Email. Il s'agit de l'exemple présenté lors des Student Days 2005.

Pour la description de la partie "installation et deploiement": http://blogs.developpeur.org/azra/archive/2006/01/24/16785.aspx
 

Source

  • //cet événement se produit lors du chargement de l'Addin, à l'ouverture d'Outlook par exemple
  • private void ThisApplication_Startup(object sender, System.EventArgs e)
  • {
  • //définition de l'oject missing, correspond aux valeures que l'ont ne souhaite pas spécifier
  • object missing = System.Reflection.Missing.Value;
  • //récupération de l'explorer Outlook courant et ajout d'une barre de commandes, a la position "haut"
  • //le derniers attribut empeche la barre de persister et donc d'en avoir une nouvelle instance a chaque chargement de l'Addin
  • Office.CommandBar comm = this.ActiveExplorer().CommandBars.Add("MyCommandBar", Office.MsoBarPosition.msoBarTop, missing, true);
  • //ajout d'un bouton a la barre
  • Office.CommandBarButton button = (Office.CommandBarButton)comm.Controls.Add(Office.MsoControlType.msoControlButton, missing, missing, missing, missing);
  • //définition du style de bouton: contenant du texte
  • button.Style = Office.MsoButtonStyle.msoButtonCaption;
  • //définition du texte
  • button.Caption = "Click me";
  • //définition de l'évenement a déclencher lors du click sur le button
  • button.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(button_Click);
  • //affichage de la barre, attention a "false" par défault
  • comm.Visible = true;
  • }
  • private List<Contact> contacts;
  • public Form1()
  • {
  • InitializeComponent();
  • //récupération de la liste de contacts, "Globals" permet d'accéder aux données Outlook depuis n'importe quelle classe de l'application
  • Outlook.MAPIFolder folders = Globals.ThisApplication.ActiveExplorer().Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);
  • //création d'une liste de classes Contact
  • contacts = new List<Contact>();
  • //récupération de chaque contact, et ajout de ses informations dans la liste de classes
  • foreach (Outlook.ContactItem item in folders.Items)
  • {
  • contacts.Add(new Contact(item.FirstName, item.LastName, item.Email1Address));
  • }
  • //affichage des contacts
  • dataGridView1.DataSource = contacts;
  • }
  • private void button1_Click(object sender, EventArgs e)
  • {
  • //pour chaque contact
  • foreach (Contact conn in contacts)
  • {
  • //si le contact est selectionné
  • if (conn.IsChecked == true)
  • {
  • //création d'un Email
  • Outlook.MailItem Email = (Outlook.MailItem)Globals.ThisApplication.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
  • //définition du déstinataire,du texte
  • Email.To = conn.Email;
  • Email.Body = textBox1.Text;
  • //Demande de ne pas afficher la fénétre d'Email et envoie de l'Email
  • Email.Display(false);
  • Email.Send();
  • }
  • }
  • }
        //cet événement se produit lors du chargement de l'Addin, à l'ouverture d'Outlook par exemple
        private void ThisApplication_Startup(object sender, System.EventArgs e)
        {
            //définition de l'oject missing, correspond aux valeures que l'ont ne souhaite pas spécifier
            object missing = System.Reflection.Missing.Value;

            //récupération de l'explorer Outlook courant et ajout d'une barre de commandes, a la position "haut"
            //le derniers attribut empeche la barre de persister et donc d'en avoir une nouvelle instance a chaque chargement de l'Addin
            Office.CommandBar comm = this.ActiveExplorer().CommandBars.Add("MyCommandBar", Office.MsoBarPosition.msoBarTop, missing, true);
            //ajout d'un bouton a la barre
            Office.CommandBarButton button = (Office.CommandBarButton)comm.Controls.Add(Office.MsoControlType.msoControlButton, missing, missing, missing, missing);

            //définition du style de bouton: contenant du texte
            button.Style = Office.MsoButtonStyle.msoButtonCaption;
            //définition du texte
            button.Caption = "Click me";
            //définition de l'évenement a déclencher lors du click sur le button
            button.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(button_Click);


            //affichage de la barre, attention a "false" par défault
            comm.Visible = true;
        }



        private List<Contact> contacts;

        public Form1()
        {
            InitializeComponent();

            //récupération de la liste de contacts, "Globals" permet d'accéder aux données Outlook depuis n'importe quelle classe de l'application
            Outlook.MAPIFolder folders = Globals.ThisApplication.ActiveExplorer().Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);

            //création d'une liste de classes Contact
            contacts = new List<Contact>();
            
            //récupération de chaque contact, et ajout de ses informations dans la liste de classes
            foreach (Outlook.ContactItem item in folders.Items)
            {
                contacts.Add(new Contact(item.FirstName, item.LastName, item.Email1Address));
            }

            //affichage des contacts
            dataGridView1.DataSource = contacts;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //pour chaque contact
            foreach (Contact conn in contacts)
            {
                //si le contact est selectionné
                if (conn.IsChecked == true)
                {
                    //création d'un Email
                    Outlook.MailItem Email = (Outlook.MailItem)Globals.ThisApplication.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

                    //définition du déstinataire,du texte
                    Email.To = conn.Email;
                    Email.Body = textBox1.Text;

                    //Demande de ne pas afficher la fénétre d'Email et envoie de l'Email
                    Email.Display(false);
                    Email.Send();
                }
            }
        }

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

25 janvier 2006 00:42:05 :
Mise en forme

Commentaires et avis

signaler à un administrateur
Commentaire de citt le 07/02/2006 18:21:31

Bonjour,

Quand je clique sur le command bar rien ne se passe.

Normal ????

signaler à un administrateur
Commentaire de azra le 08/02/2006 12:01:05 administrateur CS

Heu non, pas normal du tout!
Je vais regarder ça.

signaler à un administrateur
Commentaire de pc152 le 23/02/2006 09:44:20

Bonjour,

Le projet merite d'etre regarder mais j'aurais aimer connaitre les logiciel a avoir pour permettre de developer ce style addin ?

Merci

signaler à un administrateur
Commentaire de azra le 24/02/2006 12:28:00 administrateur CS

Bonjour pc152,

Comme précisé dans l'explication, il te faut Visual Studio Tools for Office 2005 (VSTO) pour développer ce style d'Addin.
VSTO te permet aussi de faire du développement .NET dans des documents Word et Excel, tu as un excelent tutorial fait par Thomas Lebrun ici: http://morpheus.developpez.com/vsto2/
Bonne lecture.

signaler à un administrateur
Commentaire de Bouba2 le 15/05/2006 16:59:23

Juste une question concernant "GLOBALS" : comment ça s'utilise, s'instancie ?? Ca fait parti de quel namespace ???
J'ai le message suivant :
"The name 'Globals' does not exist in the current context"

signaler à un administrateur
Commentaire de didaskein le 23/06/2008 11:27:14 10/10

En mettant : Office.CommandBar comm = Application.ActiveExplorer()... ca marche

signaler à un administrateur
Commentaire de sormiou le 20/11/2008 11:34:52

Bonjour ,

Avec visual studio 2008 et outlook 2003. j'ai installé le programme et rien ne se produit lors de léxécution. Seul Outlook est lacé.

J'ai mis un point d'arret dans ThisApplication_Startup et le programme ne passe pas par la.

Avez vous une idée???

Merci

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

developper addin outlook [ par billou77 ] Bonjour, je suis nouveau dans le monde de la programmation Microsoft . J'essaie de voir comment je pourrais programmer un unique add in pour Outlook Installation d'un Addin COM Outlook [ par mastercatz ] BonjourJe suis en train de developper un Addin COM pour Outlook 2003 en C# mais j'ai quelques soucis.Je possede actuellement VB.net 2003 et je travail VSTO pour outlook 2007 [ par Monico9385 ] Bonjour, j'utilise VSTO pour Outlook2007 car je dois créer un bouton dans la barre de menu. Jusqu'ici, avec les différents sources du net, j'arrive b Addin Outlook 2007 : affichage d'un formulaire [ par Trollum ] Salut!Je suis en train de développer un  addin pour Outlook et je ne sait pas comment afficher mon propre formulaire quand je click sur un bouton soit VSTO - Installation ADD-IN OUTLOOK. [ par sormiou ] Bonjour ,Visual studio 2008Outlook 2003J'ai fait un add-in outlook 2003 avec VSTO qui créer un menu de boton dans Outlook.Je voudrais maintenant faire Plugin outlook [ par warenbe ] Bonjour a tous j'aimerai savoir si quelqu'un a sous la main un tutorial ou des sources interessante pour programmer un plugin pour outlook merci d'av WEDAV et format MSG en c# [ par anoho ] Bonjour à tous,Travaux à réaliser: Je dois prendre des mail via WEBDAV sur un serveur exchange et les enregistrer au format msg sur un disque dur.Prob Outlook avec CDO&MAPI [ par cedkat ] Bonjour,J'essaie d'attaquer le calendrier Outlook. J'ai trouver pal mal de code utilisant "Microsoft CDO 1.21 Library". J'ai donc téléchargé cette lib Visual Studio 2005 - Masquer des parties de code [ par Bubuss ] Salut,Voilà j'en peu plus aidez moi lol Je recherche un plugin ou un paramètre que je n'aurai pas remarqué dans VS pour ne pas afficher des parties de Outlook message d'avertissement [ par bensra ] Bonjour, J'essaie de sauvegarder le fichier (.msg) d'un mail lorsque l'évènement Item_send est déclenché dans Outlook.Seulement lorsuqe cette action


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,546 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.