CoGetClassObject (Component Object Model COM)
-
Tag zusammen,
Weiß jemand von euch, woher diese Funktion [GetClassObject] einen Zeiger auf eine Klasse in meiner COM-Komponente bekommt ? Fakt ist, dass meine COM Datei (.ocx, .dll, wie auch immer)
in den Speicher geladen wird. UNd dann...
Gibt es da irgendwo einen Eintrag im Portable Executable Dateiformat, der diesen Zeiger beinhaltet ? Anders kann ich's mir nicht vorstellen.Grüße, Xzi-bit

-
Refresh
-
Das macht das Betriebssystem...
Du registrierst ja Deine Komponente im OS (Registry). Wenn Du dann "CoCreateInstance" machst, wird eine Verbidnung zu der COM-Componente aufegabut (wenn es eine DLL/OCX ist wird sie in den Prozess geladen; bei EXE wird es über das OS gemarschallt).
Mit dem PE-Format hat das absolut nichts zu tun (ausser dass bei einer DLL/OCX min eine exportierte Funktion mit dem Namen "DllGetClassObject" vorhanden sein muss!)
-
Aha. Das mit dem DllGetClassObject interessiert mich jetzt.
Scheint so, als wäre das die Funktion, die ich gesucht habe.Mir war bislang unklar, woher die Zeiger auf die Interfaces kommen, die in den Com Servern implementiert sind. Jetzt lese ich gerade, dass eben "DllGetClassObject" von CoGetClassObject() aufgerufen wird, um einen solchen Zeiger zu bekommen.
Herzlichen Dank Herr Kalmbach

-
Was noch eine Schlüsselrolle speitl ist eine "Class-Factory"... aber lies am besten mal ein Buch drüber...
z.B.
* Don Box: Essential COM
* Kraig Brockschmidt: Inside OLE