c++comatlcross-process

How to disable dialog "switch to"-"retry"-"cancel"


Comunicate between two processes, often pop up boring dialog "This action cannot be completed because the other application is busy.  Choose 'Switch To' to activate the busy application and correct the problem"

Then it offers 3 buttons:  Switch To..., Retry and Cancel.

Could I disable the dialog anyway?


Solution

  • The message box is displayed on caller side when interprocess communication call receives no response from server and passes timeout (server side operation takes too much time).

    If both server and client are your code, you can refactor this to run in a non-blocking manner, such as first method call starts action and returns immediately, and then client polls for updates on completion, or receives a call back. Otherwise, in MFC, you can disable this dialog with COleMessageFilter::EnableBusyDialog, see: Set OLE Request Timeout from C++