2008-11-11 12 views
6

Estoy instanciando un servidor COM local utilizando CoCreateInstance. A veces, la aplicación que proporciona el servidor tarda mucho tiempo en comenzar. Cuando esto sucede, Windows aparece un cuadro de diálogo como este:Establecer tiempo de espera de solicitud OLE desde C++

Servidor ocupado

La acción no se puede completar porque el otro programa está ocupado. Elija 'Cambiar a' para activar el programa ocupado y corregir el problema.

[CAMBIAR ...] [Reintentar] [Cancelar]

he encontrado mención de un Visual Basic en la propiedad del objeto de aplicación, OLERequestPendingTimeout, que se puede utilizar para controlar el tiempo antes de que llegue a este cuadro de diálogo . No puedo encontrar ninguna buena documentación sobre esto o un equivalente que sea útil desde C++. ¿Alguien puede señalarme en la dirección correcta?

Respuesta

7

Si está utilizando MFC, que solía hacer cosas como esta:

// prevent the damned "Server Busy" dialog. 
AfxOleGetMessageFilter()->EnableBusyDialog(0); 
AfxOleGetMessageFilter()->EnableNotRespondingDialog(0); 
4

Eche un vistazo a IMessageFilter y CoRegisterMessageFilter.

+1

Este es un buen indicador , resulta que MFC hace parte del trabajo, como se demostró en la respuesta de John Dibling. –

Cuestiones relacionadas