Kurze Frage, weil ich nicht wirklich Ahnung von diesem ganzen Interface-Kram habe.
Ich arbeite gerade mit einem komplett undokumentierten
API.
Ich weiß, dass ich bestimmte Eigenschaften auslesen kann, allerdings liefert die Funktion laut Typbibliothek einen
OleVariant zurück:
function GetProperty(propid: HxRegNamespacePropId): OleVariant; safecall;
Um diese Funktion nutzen zu können zu können, habe ich also "propId" entsprechend als
OleVariant deklariert und dann aufgerufen. Der Konstante in Klammern bezeichnet das eigentliche Objekt, auf das ich es abgesehen habe:
propId := namespace.GetProperty(HxRegNamespacePlugInList);
Dieses Objekt ist allerdings vom Typ "IHxRegPlugInList". Wie komme ich jetzt von meinem
OleVariant an dieses Ding heran?
Gibt´s so was wie Type-casting?
Danke.
PS: Der Sinn ist, dass ich versuche, mir einen Viewer zu schreiben, der mir die im System bekannten Help 2.0-Namespaces anzeigt. Das ist nicht das Problem. Mein Tree-View listet die schon auf und zeigt auch die bekannten Filter an. Per Klick auf auf das Root-Item (= der Namespace) startet auch die entsprechende Hilfe (das
PSDK bspw.).
Jetzt versuche ich eben noch die Plugins und die zugeordneten Hilfedateien auszulesen. Und das geht nur mit der o.g. Methode. Und da hänge ich an dem
OleVariant.