Ja, jeder Thread muss auf
COM-Objekte vorbereitet werden. Für den Anwendungsthread macht Delphi das automatisch.
Delphi-Quellcode:
uses
ActiveX;
constructor TMyThread.Create(Suspended: Boolean);
begin
...
CoInitialize(
nil);
//evtl. mit "Ex" am Ende...
end;
destructor TMyThread.Destroy;
begin
...
CoUninitialize;
inherited;
end;
Wichtig:
CoInitialize und
CoUninitialize müssen gleich oft aufgerufen werden. Also evtl. alles in der Execute-Methode und ein try...finally drumrum, sonst gibt es im Programm später böse AVs oder anderes unerklärliches Verhalten.
...
...