Hallo zusammen!
Ich arbeite gerade an einer Portierung von einem etwas älteren vba-Addin nach .NET
Prinzipiell komme ich mit den Interop-Klassen auch soweit zurecht, allerdings bin ich jetzt auf folgendes Problem gestossen:
In dem ursprünglichen Addin wird eine Funktion aus einem anderen Addin aufgerufen. Der Aufruf sieht wie folgt aus:
Das Modul wEF000 ist dabei in einem separaten AddIn hinterlegt. Für mein .NET-Addin benötige genau diesen Aufruf, komme aber nicht wirklich mit der C# - Syntax zurecht.
Wenn ich das richtig verstanden habe, muss ich die Funktion irgendwie über einen Dispatch aufrufen, und genau da hakt es:
Wenn ich das nun ausführe, bekomme ich eine Exception "Unbekannter Name. (Ausnahme von HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))"
Jetzt frage ich mich, was ich falsch mache?
Ich arbeite gerade an einer Portierung von einem etwas älteren vba-Addin nach .NET
Prinzipiell komme ich mit den Interop-Klassen auch soweit zurecht, allerdings bin ich jetzt auf folgendes Problem gestossen:
In dem ursprünglichen Addin wird eine Funktion aus einem anderen Addin aufgerufen. Der Aufruf sieht wie folgt aus:
Code:
WordBasic.Call "wEFW000.ISNEU_Daten", var_iskv, rueckgabe, 1
Das Modul wEF000 ist dabei in einem separaten AddIn hinterlegt. Für mein .NET-Addin benötige genau diesen Aufruf, komme aber nicht wirklich mit der C# - Syntax zurecht.
Wenn ich das richtig verstanden habe, muss ich die Funktion irgendwie über einen Dispatch aufrufen, und genau da hakt es:
Code:
object var_iskv = "kvnr";
object retval = "";
object flag = "1";
object[] argValues = new object[] {var_iskv, retval, flag};
string[] argNames = new string[] { "eingang", "ausgang", "flag" };
object oWordbasic=oWord.WordBasic;
oWordbasic.GetType().InvokeMember("wEFW000.ISNEU_Daten",
BindingFlags.InvokeMethod,null, oWordbasic,
argValues,null,null,argNames);
Wenn ich das nun ausführe, bekomme ich eine Exception "Unbekannter Name. (Ausnahme von HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))"
Jetzt frage ich mich, was ich falsch mache?