[.net2/vsto2] exemple d'addin et d'installeur outlook

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 / Exemple :


//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();
                }
            }
        }

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.