![]() |
Re: COM-Objekte innerhalb von Threads
Ich würde das Interface für iTunes nur einmal erzeugen und zwar im Hauptthread.
Dann gibt man das Interface beim Erzeugen des Thread-Objekts "einfach" weiter. Wenn 5 Threads das Interface benützen, dann steht RefCount auf 6 (5 Thread + die Referenz im Hauptthread). Wenn Interface-Pointer von einem Thread an einen anderen Thread weitergereicht werden soll, dann muss man Marshaling anwenden. siehe: ![]() |
Re: COM-Objekte innerhalb von Threads
Hi shmia,
wie soll denn der Pointer weitergegeben werden? Reicht ein einfaches zuweisen, wie ich es oben schon probiert habe? Das Marshalling versuche ich nachher. Danke, Chris |
Re: COM-Objekte innerhalb von Threads
Zitat:
Auf der obigen Webseite werden 2 Techniken gezeigt; die 2. Technik mit dem Hilfs-Interface IGlobalInterfaceTable ist für deinen Zweck am Besten. |
Re: COM-Objekte innerhalb von Threads
Hi shmia,
ja, die Fehlermeldung hatte ich zwischen durch auch mal, aber wie gesagt, kommt jetzt im Moment der Fehler ja in erster Linie bei CoiTunesApp.Create und das passiert ja vor dem marshalen, oder? Chris |
Re: COM-Objekte innerhalb von Threads
Hi,
hab es jetzt auch so implementiert, wie es auf der Seite gezeigt wird. Der Fehler beim Erzeugen ist immer noch da. Und wie gesagt nehme ich an, dass iTunes es nicht mag, wenn man es über Dienste ansteuert. Chris |
Re: COM-Objekte innerhalb von Threads
Falls es nur am fehlenden Fenster liegt, kannst Du Dir ja ein unsichtbares Fenster mittels AllocateHwnd holen (das musst Du aber auch mit UnAllocateHwnd wieder freigeben!), nen Test kann ja nicht schaden.
|
Re: COM-Objekte innerhalb von Threads
Und was soll ich mit dem Fenster machen? Woher will iTunes denn wissen, ob ich ein Fenster habe oder nicht? Es wird nirgendwo ein Parameter gefordert, der so einen Schluss zulassen würde.
Chris Edit: Einfach so ein Handle zu erzeugen, hilft aber nicht. |
Re: COM-Objekte innerhalb von Threads
iTunes könnte z.B. sich das Top Level Window des Callers holen wollen (wozu auch immer, seitdem ich Entwicklerfeuerwehr spiel, halte ich keine Idee mehr für unmöglich *g*), dazu musst Du keinen Parameter übergeben.
Edit: Na jut, dann hat sich das wohl erledigt. Naja, ist nicht das erste Mal dass iTunes für graue Haare sorgt :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz