这是自动化服务超时引起,它有一个默认的响应时间,解决方法:
在App::InitInstance()里AfxOleInit()之后加上这个:
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYLATER);
AfxOleGetMessageFilter()->EnableNotRespondingDialog(TRUE);
AfxOleGetMessageFilter()->SetMessagePendingDelay (-1);
如果编译不通过,包含头文件#include <afxole.h>
| 构造一个COleMessageFilter对象 |
| 注册OLE系统DLL的消息过滤器 | |
| Revoke | 激活OLE系统DLL消息过滤器的注册过程 |
| BeginBusyState | 使应用程序处于忙的状态 |
| EndBusyState | 结束应用程序忙的状态 |
| SetBusyReply | 确定忙的应用程序对OLE调用的回答 |
| SetRetryReply | 确定调用者应用程序对忙应用程序的回答 |
| SetMessagePendingDelay | 确定应用程序要等多长时间才对OLE调用做出响应 |
| EnableBusyDialog | 使能或禁止在被调用的应用程序处于忙状态时所显示的对话框 |
| EnableNotRespondingDialog | 使能或禁止在被调用的应用程序没有响应时所显示的对话框 |
|
OnMessagePending
| 在处理OLE调用时框架调用该方法处理消息 |
1865



被折叠的 条评论
为什么被折叠?



