Einzelnen Beitrag anzeigen

Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
416 Beiträge
 
Delphi 11 Alexandria
 
#1

CoInitialize Verständnisproblem

  Alt 7. Aug 2012, 11:33
Ich habe gerade ein massives Verständnisproblem was Coinitialize / CoinitializeEx betrifft: wann verwendet man was.
Hier mal die Situation: ich habe eine VCL Anwendung, die auf die die Microsoft InkOverlay Klasse via COM zugreift. Zudem erzeugt die Anwendung gelegentlich eine Art Wächterthread, der nachschaut, ob dieses Objekt noch Daten aufnimmt. Dazu wird eine Referenz auf das Objekt mitgegeben, das selbst wiederum die Referenz auf das COM Objekt enthält. Von dieser Art Wächterthread können durchaus auch mehrere gleichzeitig aktiv laufen.
Soweit ich es nun bisher verstanden habe, muß sowohl die Anwendung selbst als auch jeder meiner Wächter-Threads Coinitialize(Ex) aufrufen. Aber: reicht hier nun das einfache Coinitialize oder sollte es CoinitializeEx(nil, COINIT_MULTITHREADED) sein?
Das InkOverlay selbst kann laut Doku sowohl in einem multithreaded als auch einem singelthreaded appartment laufen.

Irgendwie blick ich hier nun leider gar nicht mehr durch, was ich nun verwenden soll. Im Moment verwende ich Coinitialize aber da manche Kunden sehr seltsame Hänger melden wo das InkOverlay auf irgendetwas wartet ...


Danke,
Uli
  Mit Zitat antworten Zitat