begin process at 2008 07 23 23:30:24
1 215 377 membres
516 nouveaux aujourd'hui
14 174 membres club

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é: 10 091 / 946

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
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();
                }
            }
        }
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

25 janvier 2006 00:42:05 :
Mise en forme
  • 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

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS