Mit Visual Studio Tools for Office die Kontakte erweitern

QR-Code-Integration in Outlook-Kontaktdaten
Kommentare

Der sogenannte QR-Code (Quick Response) ist ein zweidimensionaler Code bestehend aus einer Matrix von schwarzen und weißen Pixeln, die binär kodierte Daten enthalten. 1994 von der japanischen Firma Denso Wave entwickelt, diente er ursprünglich der Identifizierung von Bauteilen für die Logistik in der Automobilproduktion des Toyota-Konzerns. Heutzutage begegnet man solchen Codes immer häufiger – sei es auf Werbeplakaten oder Bahntickets. Das liegt vor allem am Durchbruch der Smartphones, die in der Lage sind, solche Codes zu scannen und zu verarbeiten.

In den QR-Codes lässt sich grundsätzlich eine Vielzahl von Informationen kodieren. QR-Codes mit kodierten Kontaktdaten in die Outlook-Kontakte einzubinden, ermöglicht es einfach und schnell diese Information vom Rechner auf das Smartphone zu bekommen.
Dieser Artikel demonstriert, wie ein Add-in für Outlook realisiert werden kann, das auf die Kontaktdaten in Outlook zugreift und diese binär als QR-Code kodiert. Die erzeugten QR-Codes werden dann zusammen mit den Kontaktdaten angezeigt.

Visual Studio Tools for Office

Die Visual Studio Tools for Office erleichtern die Entwicklung von Erweiterungen für Office-Produkte. Es gibt diverse Projektvorlagen, die den Entwickler dabei unterstützen sollen, verschiedene Arten von Erweiterungen zu implementieren. Auch auf den Designer muss man dabei nicht verzichten, so dass erste mehr oder weniger sinnvolle Erweiterungen schon in wenigen Minuten „zusammengeklickt“ werden können.
Auch die hier vorgestellte Lösung ist relativ schnell implementiert und benötigt nur wenige Zeilen Code. Sie veranschaulicht jedoch auf eine interessante Art, wie man mit den Visual Studio Tools eine Erweiterung für Outlook entwickelt.

Erstellen eines Outlook Add-ins

Als Projekttyp dient hier das Outlook 2010 Add-in (Abb. 1), dem ein neues Element vom Typ Outlook Form Region hinzugefügt wird. Im Wizard wählen wir nun Design a new Form Region und klicken auf Next.Für dieses Add-in wählen wir Adjoining als Region Type. Nachdem der Name vergeben ist, wählen wir als Standard Message Class den Contact (IPM.Contact). Mit einem Klick auf Finish wird der Wizard beendet und die FormRegion erstellt.

Abb. 1: Office-Projekttyp Outlook 2010 Add-in

Damit der QR-Code auch in den Kontakten von Outlook dargestellt werden kann, fügen wir der FormRegion eine PictureBox hinzu.

Messaging-Toolkit-QR-Code-Bibliothek

Diese Bibliothek dient der Konvertierung von String Informationen in einen QR-Code als Bitmap und ist unter der GPL lizensiert. Herz dieser Bibliothek ist der QR-Code-Encoder, da er unsere vCard-Informationen in einen QR-Code kodieren wird. Über die Properties dieses Objektes können diverse Eigenschaften des QR-Codes definiert werden, darunter die QR-Version und der Kodiermodus. Für unseren Outlook-QR-Code werden folgende Definitionen vorgenommen:

private System.Drawing.Bitmap GetImageForVcard(string p)
{
    var encoder = new QRCodeEncoder();
    encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
    encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
    encoder.QRCodeVersion = 18;
    encoder.QRCodeScale = 2;

    return encoder.Encode(p, Encoding.GetEncoding("UTF-8"));
}

Integration der QR-Code-Bibliothek in das Outlook Add-in

Bisher haben wir die FormRegion erstellt und wissen, wie wir ein QR-Bild von der Bibliothek geliefert bekommen. Nun müssen diese beiden Elemente noch miteinander verknüpft werden. Zum einen brauchen wir die Kontaktdaten des derzeit geöffneten Kontaktes. Diese werden über das ContactItem abgefragt. Im Event AdditionalQRFormRegion_FormRegionShowing erhalten wir das Objekt folgendermaßen:

var contact = (ContactItem)this.OutlookItem;

Dieses Objekt übergeben wir dann an eine Methode, die eine vCard daraus generiert (Listing 2).

private string GetVcardForContact(ContactItem contact)
{
    var sb = new StringBuilder("BEGIN:VCARD");
    sb.AppendLine(" VERSION:3.0");
    sb.AppendLine(string.Format("N:{0};{1}", 
        contact.LastName, 
        contact.FirstName));
    sb.AppendLine(string.Format("FN:{0}", 
        contact.FullName));
    sb.AppendLine(string.Format("EMAIL;TYPE=PREF,INTERNET:{0}", 
        contact.Email2Address));
    sb.AppendLine(string.Format("ADR;TYPE=work:;;{0};{1};;{2};{3};", 
        contact.BusinessAddressStreet, 
        contact.BusinessAddressCity, 
        contact.BusinessAddressPostalCode,
        contact.BusinessAddressCountry));
    sb.AppendLine("END:VCARD");

    return sb.ToString();
}

In diesem Beispiel wurden die abgefragten Informationen nur auf das Nötigste begrenzt. Die Menge der hinterlegten Informationen lässt sich aber entsprechend des vCard-Standards beliebig erweitern.
Mit dem vCard-String, den diese Methode generiert, wird die oben gezeigte Methode GetImageForVcard aufgerufen. Das Ergebnis dieses Aufrufs wird der PictureBox zugewiesen und der Kontakt erhält somit im unteren Bereich des Fensters einen QR-Code mit den definierten Informationen.

Abb. 2: QR-Code im Kontakt

Einbinden des Add-ins in Outlook

Hier beschreibe ich beispielhaft für Microsoft Outlook 2010, wie man das fertige Add-in einbinden kann. Für die Entwicklung reicht es im Visual Studio in den Debugger zu gehen (F5). Es wird dann automatisch Outlook mit eingebundenem Add-in aufgerufen.
Wenn wir aber dieses Add-in kompilieren und über Outlook einbinden wollen, müssen wir wie folgt vorgehen: Im binRelease-Ordner des Projektes wird eine Datei mit der Endung .vsto erstellt. Ein Doppelklick auf diese Datei installiert das Add-In automatisch. Wenn man es wieder entfernen möchte, geht das ganz bequem über die Systemsteuerung.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -