Article ID: 198996 - View products that this article applies to.
This article was previously published under Q198996
When an application tries to call a Component Object Model (COM) method while the user has displayed the system menu from the application's taskbar button, the COM call fails with RPC_E_CANTCALLOUT_ININPUTSYNCCALL.
The following list outlines in detail what occurs:
COM does not allow normal outgoing COM method calls from a thread that is currently servicing a SendMessage request. For additional information, click the article number below to view the article in the Microsoft Knowledge Base:
131056When the system menu is displayed in the taskbar, the thread that owns the window is servicing a SendNotifyMessage request. On Windows 95, Windows 98, and Windows NT 4.0, COM does not distinguish between SendMessage and SendNotifyMessage.
(http://support.microsoft.com/kb/131056/EN-US/ )PRB: Synch OLE Call Fails in Inter-Process/Thread SendMessage
This bug was corrected in Microsoft Windows 2000. In Windows 2000, COM uses the InSendMessageEx function to detect a true SendMessage request.
To work around this problem if the application is running Windows 95, Windows 98, or Windows NT 4.0, use one of the following methods:
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
This bug was corrected in Windows 2000.