Установить время ожидания OLE-запроса из C++
Я создаю экземпляр локального COM-сервера, используя CoCreateInstance. Иногда для запуска приложения, предоставляющего сервер, требуется много времени. Когда это происходит, Windows выдает диалоговое окно, подобное этому:
Сервер занят
Действие не может быть завершено, потому что другая программа занята. Выберите "Переключить на", чтобы активировать занятую программу и устранить проблему.
[Переключиться на...] [Повторить] [Отмена]
Я обнаружил упоминание о свойстве Visual Basic в объекте приложения OleRequestPendingTimeout, которое можно использовать для управления временем до появления этого диалогового окна. Я не могу найти хорошую документацию по этому или эквивалент, который полезен из C++. Может кто-то указать мне верное направление?
3 ответа
Если вы используете MFC, мы использовали такие вещи:
// prevent the damned "Server Busy" dialog.
AfxOleGetMessageFilter()->EnableBusyDialog(0);
AfxOleGetMessageFilter()->EnableNotRespondingDialog(0);
Чтобы увеличить время ожидания звонка:
AfxOleGetMessageFilter()->SetMessagePendingDelay(nTimeout);
Подробности здесь Как предотвратить появление диалогового окна "Занят сервер OLE" во время длительной операции COM