Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#6

Re: COM: Wie bekomme ich das Objekt hinter einem Interface

  Alt 22. Feb 2008, 11:28
Du kannst COM Objekte in einem eigenen Prozess (exe-Datei) bereitstellen. Das kann z.B. für Automation (Steuererung dieser Applikation) verwendet werden. D.h. alle COM Aufrufe müssen über Prozessgrenzen hinweg geführt werden. Dazu werden Methodenaufrufe in einem Stream gespeichert (d.h. der Stack) und dann über Netzwerk gesendet (auch lokal).
Dieses Kapseln wird Marshalling genannt. Das Problem dabei ist, dass alle Typen, die der Standardmarshaller nicht kennt, nicht übertragen werden können. Darunter sind dynamische Strukturen (=Zeiger + Datenlänge). Nur bei Out-Of-Process Situationen ist ein Marshaller erforderlich, da Zeiger über Prozessgrenzen nicht gültig sind. Bei In-Process ist das garkein Problem. Man kann auch Zeiger im COM Verpacken. Die Ziele der Zeiger sind ja innerhalb desselben Prozesses.
Leider geht diese Situation vermutlich auch schon nicht mehr, wenn COM Objekte in verschiedenen Apartments sich befinden.

Ich habe so ein Problem, wie oben beschrieben in dem anderen Thread geschildert.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat