Re: PATCH/RFC: defer OLE apartment window creation
On Wed, Dec 21, 2005 at 02:55:14AM +0000, Robert Shearman wrote:
Marcus Meissner wrote:
@@ -257,6 +254,15 @@ return apt; }
+void make_apartment_window(APARTMENT *apt) { + if (apt->win) return; + if (!(apt->model & COINIT_APARTMENTTHREADED)) + return; + apt->win = CreateWindowW(wszAptWinClass, NULL, 0, + 0, 0, 0, 0, + 0, 0, OLE32_hInstance, NULL); +} +
This isn't thread-safe. It would also be better to make this an accessor function for the win field of struct apartment and fix up all callers to use this. I still have to verify on Windows whether this is what it does or whether it does something funny with message loops.
I lack the time and testing abilities to do this right now (and now on xmas break). Its just a quick hack to get Google Earth running. It is now up to showing the famous GL "black screen". :( (WINEDLLOVERRIDES=*usp10=n) Ciao, Marcus
Marcus Meissner wrote:
On Wed, Dec 21, 2005 at 02:55:14AM +0000, Robert Shearman wrote:
Marcus Meissner wrote:
@@ -257,6 +254,15 @@ return apt; }
+void make_apartment_window(APARTMENT *apt) { + if (apt->win) return; + if (!(apt->model & COINIT_APARTMENTTHREADED)) + return; + apt->win = CreateWindowW(wszAptWinClass, NULL, 0, + 0, 0, 0, 0, + 0, 0, OLE32_hInstance, NULL); +} +
This isn't thread-safe. It would also be better to make this an accessor function for the win field of struct apartment and fix up all callers to use this. I still have to verify on Windows whether this is what it does or whether it does something funny with message loops.
I lack the time and testing abilities to do this right now (and now on xmas break).
Its just a quick hack to get Google Earth running.
Can you update to latest CVS and confirm that this issue is fixed now? -- Rob Shearman
This isn't thread-safe. It would also be better to make this an accessor function for the win field of struct apartment and fix up all callers to use this. I still have to verify on Windows whether this is what it does or whether it does something funny with message loops.
I lack the time and testing abilities to do this right now (and now on xmas break).
Its just a quick hack to get Google Earth running.
Can you update to latest CVS and confirm that this issue is fixed now?
Works fine now, thanks! Ciao, Marcus
participants (2)
-
Marcus Meissner -
Robert Shearman