Hmm..
Wieso einen Thread machen, wenn die
COM der App nur MULTITHREADED initiert werden muss??
Um eine Applikation direkt mit COINIT_MULTITHREADED zu starten, genügt eigendlich folgendes:
In der Projekt
DPR :
uses
ActiveX,
ComObj,
...
und dann vor dem Application.Initialize; :
CoInitFlags := COINIT_MULTITHREADED;
Application.Initialize;
Damit sollte die (
VCL) Applikation direkt als MULTITHREADED initialisiert werden.
Lt.
http://docwiki.embarcadero.com/Libra...bj.CoInitFlags
Gibt es diesen Parameter nicht nur in Delphi 6, sondern hoch bis 10 Tokyo!
Somit sollte dieser auch unter D2010 verfügbar sein.
Ich habe dass mit dem hier vorhandenen NotificationTest ausprobiert (ja, nach Anpassungen an und dann mit Delphi 6 !!) und habe alle Messages erhalten.
Habe ich das CoInitFlags auskommentiert, klappte es nicht mehr..
Wenn Du nun in deiner
Unit (AudioSessionNotification) unten das
Delphi-Quellcode:
initialization
CoInitFlags := COINIT_MULTITHREADED;
einbaust (Plus
ActiveX, ComObj in die Uses), wird dies Verwendet, ohne die
DPR ändern zu müssen. Es wird automatisch gesetzt, wenn deine
Unit verwendet wird.
(Mit D6 ausprobiert !)