Darin
Brodie Thiesfield wrote:
Hi,
I'm using XPCOM components in a server (no UI) on Windows. The application is a SOAP server waiting for socket connections from clients, upon which it then processes the SOAP request using the XPCOM components.
There is a problem with this server were Windows DDE requests will hang while the server is running. This means that any DDE request like pressing Windows-E to start explorer, or double clicking a file to open it in a text editor will cause the system to hang while the server is running.
I have isolated the problem to the fact that starting XPCOM creates a top-level window under Windows for the use of the eventQ service. Under Windows, DDE messages will be sent to all top-level windows. Until the DDE message is handled, the application calling DdeConnect() will hang.
The window has a class of "XPCOM:EventQueue" and is created within NS_InitXPCOM2() at the following lines:
nsxpcominit.cpp:584 rv = eventQService->CreateThreadEventQueue(); if ( NS_FAILED(rv) ) return rv;
If I set a breakpoint here and skip executing these lines, the application runs fine and without the DDE problem.
If NS_InitXPCOM2() had another parameter like:
PRBool startEventQueue = PR_TRUE
which skipped the creation of the ThreadEventQueue when FALSE it would be the best solution for me. However I would like to solve this without modifying the standard Mozilla code if possible.
Can someone advise me how I might get around this problem? Do I need to create some sort of message loop to handle this?
Regards, Brodie.
_______________________________________________ Mozilla-xpcom mailing list [EMAIL PROTECTED] http://mail.mozilla.org/listinfo/mozilla-xpcom
