Interop Forms Toolkit mit Visual Basic 2008 Express Edition -Weiche Migration auch mit der "kleinen" Visual Basic Version

(von Klaus Löffelmann und Andreas Belke)

Das Interop Forms Toolkit ist normalerweise nur für den Einsatz mit einer der größeren Visual Studio Versionen konzeptioniert. Dieser Artikel zeigt, wie Sie auch in Zusammenarbeit mit Visual Studio Express Edition die Vorteile einer weichen Migration mit dem Interop Forms Toolkit nutzen können, und welche Voraussetzungen nötig sind, um beide zur Zusammenarbeit zu bewegen!

Voraussetzungen für die Nutzung des Interop Forms Toolkit 2.0 mit der Express-Edition

Im Folgenden wird davon ausgegangen, dass das Interop Forms Toolkit 2.0 im Verzeichnis C:\Program Files\Microsoft Visual Basic 2005 Power Packs\Interop Forms Toolkit 2.0installiert wurde.

...hier gehts los...

Vorarbeiten

Bei der Installation des Toolkits wird im SDK\Source Unterverzeichnis die Datei Source.zip angelegt. Öffnen Sie die Datei und kopieren Sie das Verzeichnis InteropFormProjectTemplate auf den Desktop. Entfernen Sie den Schreibschutz des nun auf dem Desktop liegenden Verzeichnisses und ändern Sie auch die Unterverzeichnisse gleich mit. Wechseln Sie in das Verzeichnis und öffnen Sie die Datei InteropFormProjectTemplate.sln. Das Projekt wird nun konvertiert. Achten Sie auf eine fehlerfreie Konvertierung (Treten Fehler auf, prüfen Sie, ob der Schreibschutz entfernt wurde).

Weiter
Visual Studio

Abbilgund 1: InteropFormProjectTemplate nach der Konvertierung

Wie Sie im Projektmappen-Explorer und in der Fehlerliste sehen, kann die Assembly Microsoft.InteropFormTools nicht verwendet werden. Klicken Sie mit der rechten Maustaste auf den Eintrag und löschen Sie ihn. Im Anschluss fügen Sie einen neuen Verweis ein (rechte Maustaste auf Verweise – Verweise hinzufügen …

Zurück Weiter
Abbildung2

Abbildung 2: Verweis hinzufügen

  • Klicken Sie auf Durchsuchen, und wählen Sie das Toolkit Installationsverzeichnis aus. Dort befindet sich im Unterverzeichnis SDK\Libraries die benötigte Assembly Microsoft.InteropFormTools.dll
  • Beenden Sie den Dialog mit Ok.

Es ist in dem Projekt nun noch ein Fehler vorhanden (Ungültiges UUID-Format). Dieser Fehler ist in diesem Kontext nicht so wichtig und kann ignoriert werden.

Zurück Weiter

Vorlage Exportieren

Nun ist es fast geschafft. Exportieren Sie die nun die Projektvorlage (Datei/Vorlage exportieren).

Vorlage auswählen

Abbildung 3: Vorlagentyp auswählen

Zurück Weiter
Abbildung4

Abbildung 4: Assistent zum importieren von Vorlagen

Achten Sie darauf, dass „Vorlage automatisch in Visual Studio importieren“ aktiviert ist.
Sie können das Projekt nun Schließen und das Verzeichnis auf dem Desktop löschen.

Zurück Weiter

Anlegen eines neuen Projekts in Visual Studio Express Edition

Beim Neuanlegen eines Projekts steht nun die neue Vorlage zur Verfügung.

Abbildung5

Für das folgende Beipsiel werden wir nun einmal ein neues Projekt auf Basis dieser Vorlage erstellen. Das Einzige, was uns jetzt inhaltlich noch fehlt, ist der Wrapper für unsere Objekte (hier also für InteropForm1).
Dazu legen wir eine neue Klasse Namens InteropForm1.wrapper.vb an.

Zurück Weiter
Abbildung6

Für diese Klasse tragen wir nun folgenden Code ein

Option Strict Off
Option Explicit On
Imports
Microsoft.InteropFormTools
Namespace Interop

<System.Runtime.InteropServices.ClassInterface(Runtime.InteropServices.ClassInterfaceType.AutoDual), _
System.Runtime.InteropServices.ComVisible(true)> _
Partial Public Class InteropForm1
Inherits InteropFormProxyBase
Public Sub New()
MyBase.New
FormInstance = New DotNetForm.InteropForm1()
RegisterFormInstance()
End Sub
End Class
tEnd Namespace

Zurück Weiter
Abbildung 7

Dafür wird ebenfalls eine Klasse namens InteropForm1 erstellt. Diese ist - entgegen des Formulars - jedoch in einem anderen Namespace und wird für COM sichtbar gemacht.
In oberem Beispiel muss der vollqualifizierte Name des echten InteropForm1 durch den Stammnamespace und dem Formular ersetzt werden.
DotNetForm.InteropForm1 wird in InteropFormProjectTemplate1.InteropForm1 geändert.
Die Assembly kann nun kompiliert werden und über die normalen Interop Toolkit Mechanismen in VB6 genutzt werden.

Zurück