Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

COM-Objekte innerhalb von Threads

  Alt 10. Apr 2007, 22:04
Hi,
der ganze OLE/COM-Kram treibt mich gerade zum Wahnsinn.

Ich habe einen Thread, der im Execute Folgendes stehen hat:
Delphi-Quellcode:
  CoInitializeEx(nil, COINIT_MULTITHREADED);
  TunesApp := CoiTunesApp.Create;
  try
    repeat
      {Tue was mit dem TunesApp-Interface}
    until false;
  finally
    TunesApp := nil;
    CoUninitialize;
  end;
Jetzt fliegt mir irgendwann eine EOleSysError-Exception (Erste Gelegenheit für Exception bei $7C812A5B. Exception-Klasse EOleSysError mit Meldung 'Starten des Servers fehlgeschlagen'. Prozess InfoTunes.exe (1708)) an den Kopf, die an folgender Stelle geraiset wird:
Delphi-Quellcode:
class function CoiTunesApp.Create: IiTunes;
begin
  Result := CreateComObject(CLASS_iTunesApp) as IiTunes;
end;
Durch das unmoegliche Debugging von Threads kann ich absolut nicht einschaetzen, warum das alles so passiert und wann genau es zu dieser Exception kommt. Ich vermute, dass der COM-Server ist gar nicht mag, dass in jedem Thread eine neue Referenz erzeugt werden soll.

Weiss jemand, woran das liegen koennte und wie man das Problem loest?

Bin fuer jeden Vorschlag dankbar. Das treibt mich schon den ganzen Tag in den Wahnsinn.
Chris
  Mit Zitat antworten Zitat