BUG: DCOM95 MTA Clients May Block Broadcast DDE Messages (181949)
The information in this article applies to:
- Microsoft OLE Libraries, when used with:
- the operating system: Microsoft Windows 95
This article was previously published under Q181949 SYMPTOMS
Due to a bug in the RPC runtime DLLs that ship with DCOM951.1, MTA clients
that do not service the message queue may block the global broadcast of DDE
messages. When a user double-clicks on a desktop icon, the program
associated with the icon may be blocked from launching and Windows Explorer
may hang.
CAUSE
A top-level window is created by the RPC runtime on the MTA client thread
that called CoCreateInstance(Ex), but the window is not destroyed when the
API returns. The client thread has no obligation to service the message
queue under the MTA programming model. If it does not, this top-level
window causes global DDE broadcast messages to block.
RESOLUTION
To work around this bug, you need to make the client's MTA thread behave
like an STA thread (that is, it must service the message queue). If it is
blocking on a win32 handle, it must call the MsgWaitForMultipleObjects()
API to simultaneously dispatch windows messages. See the REFERENCES section
for an article that explains how to do this.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article.
REFERENCES
For additional information, please see the following article in the
Microsoft Knowledge Base:
136885 INFO: OLE Threads Must Dispatch Messages
Modification Type: | Major | Last Reviewed: | 10/16/2003 |
---|
Keywords: | kbBug kbDCOM KB181949 |
---|
|