CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

为什么我在容器中调用Word的页面设置对话框时总是会弹出一个消息框,说服务器正在运行中?

楼主rano(性情中人)2004-09-03 14:42:10 在 VC/MFC / ATL/ActiveX/COM 提问

为什么我在容器中调用Word的页面设置对话框时总是会弹出一个消息框,说服务器正在运行中? 问题点数:100、回复次数:8Top

1 楼xindao_wang(山中客)回复于 2004-09-05 03:15:37 得分 0

我也遇到过类似的问题,可能的一种情况是在此之前调用word的服务时,没有释放连接,或者是释放的不干净。Top

2 楼wangweixing2000(星(inspiration(灵感)))回复于 2004-09-06 09:33:41 得分 0

你在看看是不是那个进程正在用word服务?Top

3 楼banjo(3天看问题)回复于 2004-09-06 09:35:11 得分 0

查看后台进程,杀掉Top

4 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-09-06 18:56:20 得分 0

也可能是你引用什么接口时少调用了Release.Top

5 楼rano(性情中人)回复于 2004-09-06 19:09:13 得分 0

惨都尝试过了,还是会。我是用通过Item获得Document,再获得Application,再获得Dialogs,然后获得Dialog,然后调用Dialog的Show方法,一般是对话框弹出来几秒钟后出的那个提示Top

6 楼rano(性情中人)回复于 2004-09-06 20:24:40 得分 0

我是这样做的  
  在MSDN中找到MFCBIND示例  
  在它的CMFCBindView中加入这个函数,运行这个函数  
   
  _Document   、_Application   、Dialogs   、Dialog   是Word2000提供的模板库中的类  
   
  int   CMFCBindView::ShowDialogItem()  
  {  
   
  LPDISPATCH   lpDisp=GetDocument()->GetIDispatch();  
   
  TRY  
  {  
  _Document   doc;  
  doc.AttachDispatch(lpDisp);  
   
  LPDISPATCH   tp   =   doc.get_Application();  
  _Application   app;  
  app.AttachDispatch(tp);  
   
  tp   =   app.get_Dialogs();  
  Dialogs   dlgs;  
  dlgs.AttachDispatch(tp);  
   
   
  tp=dlgs.Item(n);  
  Dialog   dlg;  
  dlg.AttachDispatch(tp);  
   
   
  long   timeout=-1;  
   
  dlg.Show(COleVariant(timeout));  
   
   
  }  
  CATCH(CException,   e)  
  {  
  }  
  END_CATCH  
   
  }Top

7 楼jiangsheng(蒋晟.Net[MVP])回复于 2004-09-10 08:19:08 得分 100

你使用了AfxOleInit()初始化MFC客户端时,会自动在CWinApp中设置一个COleMessageFilter数据成员。该类提供了IMessageFilter的实现,允许用户在等待异步操作的时候有选择性地处理COM操作以提高效率和避免死锁,参见IMessageFilter的文档。你可以创建你自己的COleMessageFilter类并且在此时注册。  
  可以用AfxOleGetMessageFilter()来访问这个对象。这个对象包含和COM服务器通讯的一些设置。  
  一些常用的方法  
  SetMessagePendingDelay(nTimeout);设置在COM调用之后,显示COM服务器忙对话框(COleBusyDialog)之前等待的时间  
  EnableBusyDialog(FALSE);禁用COM服务器忙对话框  
  EnableNotRespondingDialog(FALSE);   禁用未响应对话框。该对话框在鼠标或者键盘操作之后,COM调用超时时显示  
   
  使用OleInitialize初始化的程序不会显示这些对话框。  
  Top

8 楼rano(性情中人)回复于 2004-09-10 15:47:18 得分 0

感激、感谢各位的鼎力相助,困扰小弟一个多月的问题解决了,祝大家中秋节快乐Top

相关问题

  • 在非对话框容器中调用activex出错
  • 弹出对话框
  • 对话框弹出
  • 弹出对话框
  • ........弹出对话框
  • 调用硬件厂商的DLL时,如何对付它弹出的对话框。
  • 请问调用何种方法来关闭JFileChooser弹出的对话框?
  • 怎么调用对话框?
  • 如何调用对话框
  • 在一个panel里弹出一个对话框后,在这个对话框中怎么调用该panel的某些方法?

关键词

  • 服务器
  • word
  • application
  • document
  • 对话框
  • 调用
  • attachdispatch
  • 运行
  • dialog
  • dlg

得分解答快速导航

  • 帖主:rano
  • jiangsheng

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo