Aug 07 2008
Tobit DavidZehn API unter .Net
Die Tobit API steht zum aktuellen Zeitpunkt leider nur als COM DLL zur Verfügung.
Um trozdem vernünftig unter .Net damit arbeiten zu können benötigt man eine “Wraper” (runtime-callable wrapper / RCW) DLL. Ein solcher Wrapper wird manchmal auch ‘Interop” genannt. Glücklicherweise nimmt uns Microsoft die Erstellung einer solchen DLL ab.
Zum erstellen der “Wrapper” DLL bindet man einfach die ursprüngliche DVAPI32.DLL API in VisualStudio in das Projekt ein (Eigenschaften->Verweise) und VS erstellt eine neue Interop.DvApi32.dll.
Kann, oder möchten man VisualStudio nicht einsetzten, so bringt das .NET SDK auch ein Kommandozeilen Tool mit (TlbImp.exe), mit dem sich die Interop DLL erzeugen lässt.
Die Logik zum Erstellen des RCW Codes befindet sich in der .NET Klasse System.Runtime.InteropServices.TypeLibConverter.
Nun kann man auf alle Datentypen, Methoden, etc der Tobi DavidZehn API zugreifen.
Zwar lässt sich auch ohne Interop DLL mit der API arbeiten, in dem man alle Objekte als “Object” deklariert, aber einige Funktionen wie z.B. DVEmlFromMailItem arbeiten aus meiner Erfahrung wesentlich zuverlässiger, wenn sie mit den richtigen Datentypen aufgerufen werden.
Auch wird die Programmierung im VisualStudio durch die Integration der DLL Dank Intelisense und Co doch wesentlich komfortabler.

