I am instantiating a local COM server using CoCreateInstance. Sometimes the application providing the server takes a long time to start. When this happens, Windows pops a dialog box like this:
Server Busy
The action cannot be completed because the other program is busy. Choose 'Switch To' to activate the busy program and correct the problem.
[Switch To...] [Retry] [Cancel]
I have found mention of a Visual Basic property on the Application object, OleRequestPendingTimeout, that can be used to control the time before this dialog comes up. I can't find any good documentation on this or an equivalent that is useful from C++. Can anyone point me in the right direction?
Have a look at
IMessageFilter
andCoRegisterMessageFilter
.To increase timeout call:
See details here How to prevent the OLE Server Busy dialog box from appearing during a lengthy COM operation
If you're using MFC, we used to do stuff like this: