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


Log in to reply