CoInitialize() May Cause OLE Applications to Stop Responding

ID: Q159273


The information in this article applies to:
  • Microsoft Windows NT 3.1
  • Microsoft Windows NT Advanced Server, version 3.1
  • Microsoft Windows NT Workstation versions 3.5, 3.51
  • Microsoft Windows NT Server versions 3.5, 3.51, 4.0


SYMPTOMS

After a Windows OLE application (such as Date/Time in Control Panel) issues a SendMessage(HWND_BRAODCAST) to a console application, the Windows OLE application appears to stop responding.


CAUSE

The console application does not have a Windows message loop.

If a console application calls CoInitialize() to initialize the Component Object Model (COM) library, it does not have a Windows message queue. This causes OLE applications to stop responding while they are waiting for the console application to process their messages. The basic assumption with OLE is that OLE applications are Windows applications, and that they process messages on a regular basis.


WORKAROUND

To work around this problem, do either of the following:

  • Make sure your console application has an active Windows message loop.

    -or-


  • In Windows NT 4.0, instead of using CoIninitialize(), write your code to call CoInitializeEx(NULL, COINIT_MULTITHREADED), which does not use Windows messages for object remote procedure calls (RPCs).


Additional query words: prodnt prodsna 2.11 hang hung crash fail RPC call

Keywords : kbinterop kbnetwork ntnetserv ntprotocol NTSrvWkst
Version : winnt:3.1,3.5,3.51,4.0; :3.1
Platform : winnt
Issue type : kbprb


Last Reviewed: January 5, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.