COM-Visible .NET-Assembly - Methoden und Eigenschaften nicht sichtbar

Dey

Banned
Registriert
Mai 2005
Beiträge
1.925
Hi.

Ich habe im Visual Studio 2010 eine .NET 3.5-Assembly programmiert. Konkret ist es ein Word-Addin. Danach habe ich die Optionen "COM-Visible" und "Register for COM-Interop" aktiviert und die Assembly kompiliert.

Nachdem ich im VBA-Editor von Word dann einen Verweis auf die erzeugte Type Library gemacht habe und erfolgreich eine Instanz einer Klasse der Assembly gemacht habe, musste ich feststellen, dass mir leider keine Eigenschaften und Methoden angezeigt werden.

Ich habe den ganzen Tag herumprobiert, weil ich dachte, dass eine wichtige Voraussetzung nicht erfüllt ist. Hab die DLL mit Regasm.exe registriert, die DLL mit tlbexp.exe exportiert, Strong Signing versucht, das Attribut <ComVisible(true)> vor die Methoden/Eigenschaften gesetzt und dennoch keinen Erfolg gehabt.

Was muss getan werden, damit mir die Eigenschaften und Methoden der Klasse angezeigt werden im VBA-Editor bzw. Objekt-Browser?
 
Klaro. Hab heute die Ursache gefunden. Die Klasse, die man nutzen will, muss mit dem XML-Attribut "ClassInterface" versehen werden. Danach werden die Methoden und Eigenschaften in IntelliSense angezeigt.
Ergänzung ()

Ich habe leider ein größeres Problem. Und zwar möchte ich gerne in den Funktionen meiner COM-DLL auf das aktive Dokument zugreifen. Solange es als .NET-Assembly in Form eines AddIns läuft, funktioniert das.

Rufe ich im Makrocode die COM-DLL auf und benutze eine Funktion, die einen Verweis auf "Globals.ThisAddIn.ActiveDocument" hat, dann kriege ich eine Fehlermeldung. Es scheint wohl nicht so ohne weiteres möglich zu sein, dies zu tun.
 
Zurück
Oben