Active X - Benutzerdefinierte Datentypen
-
Hallo Leute,
Ist es möglich, dass man auf Funktionen des Active X Controls zugreifen kann, die benutzerdefinierte Datentypen in der Paramenterliste haben?
Der Assistent zum hinzufügen von Methoden mäckert, wenn der Datentyp nicht VARIANT- kompantibel ist.
Danke schon mal im voraus.
Mike
-
Nein, das ist nicht möglich.
1. problem: es gibt sprachen die keine benutzerdefinierte Datentypen kennen
2. problem: der MIDL compiler kann die keinen proxy/stub dafür erzeugen (einpacken/auspacken des datentyps), denn müsstes dann selbst machen
-
Nach eigenen Erfahrungen geht sowas, wenn das Umfeld stimmt, d.h. wenn der
universal marshaller (oleaut32.dll) dies unterstützt. Dies tut er ab Win NT SP 4
wenn ich mich richtig erinnere.Beispiel:
Dummy.idl:
typedef struct MyStruct { long a; short b; } MyStruct; ... interface ITester : IDispatch { [id(1), helpstring("Methode FillMyStruct")] HRESULT FillMyStruct([in, out] MyStruct* pVal); ... };
VB6-Client:
Private Sub Command1_Click() Dim x As DUMMYLib.MyStruct Dim y As New DUMMYLib.Tester x.a = 200000 x.b = 12 y.FillMyStruct x End Sub
Ob das jedoch auch "einfache" Scripting-Sprachen nutzen können will ich
lieber nicht garantieren.
Hab noch nachfolgenden Link wiedergefunden:
http://www.codeproject.com/atl/udtdemo.asp
-
super. danke ersteinmal für die antworten, wäre cool wenn ihr bald nochmal hier rein guckt. vielleicht brauche ich jas noch irgendwas. aber danke schonmal.
gruß mike