Outlook erweitern

VSTO 2005-Outlook-Projekte

Wer allerdings hofft, dass mit der Outlook-Unterstützung in VSTO alles wie von selbst geht, hat sich leider getäuscht. Sinn und Zweck der Aufnahme von Outlook in VSTO war, die bekannten Probleme in einer von Microsoft unterstützten Art und Weise zu lösen, so dass die Entwickler einfach mit dem Programmieren ihrer Lösung anfangen können, ohne sich Sorgen um Shims oder Ähnliches machen zu müssen. Da Outlook von der Art der Anwendung auch weniger dokumentzentriert ist als Word oder Excel, wäre hier die Frage, wie solch ein weiterführender Programm-Assistent aussehen sollte, nicht so einfach zu lösen.

Ein Outlook-Projekt wird in VSTO mit File New/Projekt/Visual C# (Visual Basic)/Office/Outlook Add-In angelegt (Bild 2). Hier ist dann doch noch ein Unterschied zu den regulären Add-In-Projekten zu erkennen. Die erstellte Basisklasse bildet die IDTExtensibility2-Klasse nicht mehr exakt nach. Es wird nur noch eine ThisApplication-Klasse mit den Standardprozeduren Startup und Shutdown erstellt.

Bild 2: VSTO integriert neue Projektarten in Visual Studio.
Bild 2: VSTO integriert neue Projektarten in Visual Studio.

Für den Anfang kann jetzt in den beiden Prozeduren durch Einfügen von MessageBox.Show-Befehlen einfach ein Dialog angezeigt werden (Listing 1). Danach kann die Anwendung erstellt werden. Wenn jetzt Outlook gestartet und wieder beendet wird, erscheinen die beiden Dialoge.

Listing 1: Ganz einfaches C#-Add-In mit VSTO
private void ThisApplication_Startup
(object sender, System.EventArgs e)
{
MessageBox.Show("Hallo Welt!");
}
private void ThisApplication_Shutdown
(object sender, System.EventArgs e)
{
MessageBox.Show("Und tschüss!");
}

Wenn das Add-In als Startup-Projekt ausgewählt ist, kann die Anwendung über Visual Studio 2005 im Debug-Modus gestartet werden. Bei Auswahl von StartDebugging wird Outlook automatisch gestartet. Es können dann in Visual Studio 2005 auch Haltepunkte gesetzt werden, um den Programmverlauf näher zu untersuchen.

Auf dem Entwicklungsrechner wird das Add-In automatisch in Outlook integriert und aktiviert. Um das entwickelte Add-In zu deaktivieren, muss der Optionen-Dialog von Outlook geöffnet werden (Extras/Optionen). In der Registerkarte Weitere kann über Erweiterte Optionen/COM-Add-Ins die Add-In-Verwaltung angezeigt werden. Hier lässt sich das neue Add-In deaktivieren oder entfernen werden (Bild 3).

Bild 3: Mit VSTO erstellte Add-Ins integrieren sich automatisch in das lokale Outlook.
Bild 3: Mit VSTO erstellte Add-Ins integrieren sich automatisch in das lokale Outlook.

Ereignisprozeduren

Eine der meistbenötigten Aufgaben in Add-Ins und anderen Programmen ist die Programmierung von Ereignisprozeduren. Diese werden immer beim Eintritt eines bestimmten Ereignisses ausgeführt, beispielsweise bei der Ankunft neuer E-Mails.

Ereignisprozeduren sind eine in .NET gut integrierte Funktionalität, die auch von VSTO direkt unterstützt wird. Um eine Prozedur zu erstellen, die beim Ankommen neuer Nachrichten automatisch ausgeführt wird, muss eine Prozedur der Klasse ThisApplication zur passenden Ereignisprozedurliste von Outlook (New- MailEventHandler) hinzugefügt werden. Dies geschieht am einfachsten in der Startup-Prozedur (Listing 2).

Listing 2: Ereignisprozeduren lassen sich einfach
erstellen
private void ThisApplication_Startup
(object sender, System.EventArgs e)
{
this.NewMail +=
new Microsoft.Office.Interop.Outlook.
ApplicationEvents_11_NewMailEventHandler(
ThisApplication_NewMail);
}
void ThisApplication_NewMail()
{
MessageBox.Show("Sie haben neue Nachrichten!");
}

Die möglichen Arten von Ereignisprozeduren lassen sich am einfachsten über die IntelliSense-Funktion von Visual Studio mit [Strg]+[Leer] anzeigen.