Creazione di un pulsante per Outlook 2010 tramite VSTO 4.

Articolo che illustra la creazione di una barra in Outlook 2010.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Introduzione

In quest’articolo, vedremo come creare un pulsante per la barra degli strumenti di Microsoft Outlook 2010, tramite la tecnologia VSTO con il linguaggio Visual Basic Net e C#

Creazione del progetto

Si apra Visual Studio 2010, e dopo aver scelto il linguaggio di nostro interesse, selezioniamo la voce Office 2010, nella parte destra, selezioniamo la voce “Componente aggiuntivo per Outlook 2010” il tutto come mostrato in figura 1

 

 

 

Figura 1


Dopo aver confermato il tutto tramite il pulsante ok, verrà aperta la finestra in visualizzazione codice, a differenza degli altri modelli, per word, excel, per Outlook non abbiamo una parte designer, ma solo codice.
A livello di form, si crea un oggetto di tipo commandBar, che avrà il compito di aggiungere alla barra di outlook un pulsante. Sempre a livello di form, si crea un oggetto di tipo pulsante, il quale verrà applicato alla barra.
Di conseguenza avremmo due oggetti, uno per la gestione della barra e l’altro per la gestione del pulsante.
Qui di seguito si riporta la dichiarazione di tale operazione.

VB.Net
Dim ComBar As Microsoft.Office.Core.CommandBar
Dim pulsante As Microsoft.Office.Core.CommandBarButton
C#
Microsoft.Office.Core.CommandBar ComBar;
Microsoft.Office.Core.CommandBarButton pulsante;

Si crea una funzione che permetta la creazione della barra per Outlook, inizializzando l’oggetto CommandBar, creato in precedenza. Qui di seguito si riporta il frammento di codice.

VB.Net
  ' funzione per la creazione della barra
    Private Sub CreaBarra()
        ComBar = Globals.ThisAddIn.Application.ActiveExplorer().CommandBars.Add(
                   "Barranuova",
                   Office.MsoBarPosition.msoBarTop,
                   False,
                   True)
        ComBar.Protection = Office.MsoBarProtection.msoBarNoCustomize
        ComBar.Visible = True
    End Sub
C#
//funzione per la creazione della barra
        private void CreaBarra()
        {
            ComBar = Globals.ThisAddIn.Application.ActiveExplorer().CommandBars.Add(
                   "Barranuova",
                   Office.MsoBarPosition.msoBarTop,
                   false,
                   true);
            ComBar.Protection = Office.MsoBarProtection.msoBarNoCustomize;
            ComBar.Visible = true;
        }

 


Ora dobbiamo creare una funzione per la creazione del pulsante, inizializzando l’oggetto pulsante creato in precedenza.
Si crea anche un gestore di evento click per tale pulsante.

VB.Net
'funzione per la creazione del pulsante
    Private Sub CreaPulsante()
        'Aggiungo il pulsante alla barra ed imposto la proprietà testo oltre al gestore di evento click
        pulsante = CType(ComBar.Controls.Add(Office.MsoControlType.msoControlButton, Type.Missing, Type.Missing, Type.Missing, True), Office.CommandBarButton)
        pulsante.Caption = "Pulsante nuovo"
        pulsante.Style = Office.MsoButtonStyle.msoButtonIconAndCaption
        pulsante.TooltipText = "Testo descrittivo"
        'gestore dell'evento click
        AddHandler pulsante.Click, AddressOf pulsante_Click
    End Sub
    Sub pulsante_Click(ByVal Ctrl As Office.CommandBarButton, ByRef CancelDefault As Boolean)
        System.Windows.Forms.MessageBox.Show("Prova2")
    End Sub
C#
//funzione per la creazione del pulsante
        private void CreaPulsante()
        {
            //aggiungo il pulsante alla barra ed imposto la proprietà testo oltre al gestore di evento click
            pulsante = ComBar.Controls.Add(Office.MsoControlType.msoControlButton, Type.Missing, Type.Missing, Type.Missing, true) as Office.CommandBarButton ;
            pulsante.Caption = "Pulsante nuovo";
            pulsante.Style = Office.MsoButtonStyle.msoButtonIconAndCaption;
            pulsante.TooltipText = "Testo descrittivo";
            //gestore dell'evento click
            pulsante.Click += new Office._CommandBarButtonEvents_ClickEventHandler(pulsante_Click);
        }
void pulsante_Click(Office.CommandBarButton Ctrl, ref bool CancelDefault)
        {
            System.Windows.Forms.MessageBox.Show("Prova");
        }


Le funzioni appena create, devono essere richiamata nell’evento del caricamento della nostra applicazione Outlook e precisamente nell'evento StartUp.

VB.Net
Private Sub ThisAddIn_Startup() Handles Me.Startup
        CreaBarra()
        CreaPulsante()
    End Sub
C#
private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            CreaBarra();
            CreaPulsante();
        }

 


Ora non resta che eseguire la nostra applicazione per vedere il risultato, il tutto come mostrato in figura 2


Figura 2

Conclusioni

L’articolo ha voluto fornire le  basi per la creazione di un semplice pulsante per la barra di Microsoft Outlook 2010, fornendo al lettore le basi per iniziare a programmare in ambiente Office 2010, tramite Visual Studio Tools For Office (VSTO 4).