Hm, also mit solche
ActiveX-Dlls habe ich selber noch nie mit gearbeitet, also noch keine programmiert, aber OleVariant, kannst du alles zuweisen, was die größe von 4 Bytes hat. Interfaces sind Pointer, also nur Zeiger. Also ich Bezweifle das du so an den String kommst. So wie ich das verstehe übergibt er dir eine Pointer zu ICWData. Und bei ICWData gibt es die Funktion Value. Die wiederum einen OleVariant zurückgibt. Wie schon gesagt, da kann alles drinliegen, was die größe von 4 Bytes hat. Delphi bzw. die
OLE-Schnittstelle wandelt das beim zuweisen in den richtig Typ um.
Wenn du einen String zu OleVariant zuweisst, weis ich jetzt nicht 100% aber vermute ich. Wird daraus ein PChar. Also ein Zeiger auf die Daten von dem Text.
Wenn du dan diese OleVariant bekommst, musst du Wissen als was du das Interpretieren musst. In diesem Beispiel, weis die Funktion
function Get__Value: OleVariant; safecall;
, dass der Wert ('ChannelName') ein String ist. Also ist OleVariant ein PChar.
Im Klartext zusagen, du müsstest mit OleVariant arbeiten und eine Liste der Kommandos haben und in welchem Typ die sind. In diesem Beispiel übernihmt das ICWData Interfaces das für dich.
Und der User müsste eine Funktion aufrufen, wo er die Typbezeichnung sowie den eigentliche Typ, da kommt wieder mein Beispiel ins Spiel, hinzufügen kann. Dadurch weis deine Anwendung wie er den Typ OleVariant interpretieren muss.
Gruß NickelM