CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

vc操作word后,word进程退不出来

楼主fzq426(天涯海角 不见不散)2003-11-04 17:40:44 在 VC/MFC / 基础类 提问

我是利用MsWord9.olb将_Application、Documents和Selection类导入到工程中,将一个word文档中的内容拷贝到剪贴板上,再粘帖到m_Edit   中显示出来。但执行之后,word的进程没有退出来,这样在下次打开该文档时就有问题了。请大家帮帮忙改一下:  
  static   char   BASED_CODE   szFilter[]="Word   Files(*doc)|*.DOC||";  
  CFileDialog   fd(true,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter,NULL);  
  CString   strFilePath;//用来保存打开的文件名;  
  if(fd.DoModal()==IDOK)  
  strFilePath=fd.GetPathName();//获取要打开的Word文档的名字;  
   
  _Application   m_App;//定义Word提供的应用程序对象;  
  Documents   m_Docs;//定义Word提供的文档对象;  
  Selection   m_Sel;//定义Word提供的选择对象;  
   
  m_Docs.ReleaseDispatch();  
  m_Sel.ReleaseDispatch();  
  m_App.m_bAutoRelease=true;  
   
  if(!m_App.CreateDispatch("Word.Application"))  
  {    
  AfxMessageBox("创建Word2000服务失败!");    
  exit(1);    
  }    
   
  //下面是定义VARIANT变量;  
  COleVariant   varFilePath(strFilePath);  
  COleVariant   varstrNull("");  
  COleVariant   varTrue(short(1),VT_BOOL);  
  COleVariant   varFalse(short(0),VT_BOOL);  
  COleVariant   varLong((long)DISP_E_PARAMNOTFOUND,   VT_ERROR);  
   
  m_Docs.AttachDispatch(m_App.GetDocuments());//将接口关联起来;  
  m_Docs.Open(varFilePath,varFalse,varFalse,varFalse,  
  varstrNull,varstrNull,varFalse,varstrNull,  
  varstrNull,varTrue,varTrue,varTrue);  
   
   
  //打开Word文档;    
  m_Sel.AttachDispatch(m_App.GetSelection  
  m_Sel.WholeStory();//选择文档中的全部内容;  
  m_Sel.Copy();//将数据拷贝到剪贴板    
  m_Edit.Paste();  
  m_Edit.UpdateData();  
  m_Sel.ReleaseDispatch();  
  m_Docs.ReleaseDispatch();//断开关联;  
  m_App.ReleaseDispatch();  
   
  m_Docs.Close(varLong,varLong,varLong);  
  m_App.Quit(varLong,varLong,varLong); 问题点数:20、回复次数:4Top

1 楼ifengfeng(fengfeng)回复于 2003-11-04 18:35:16 得分 10

去掉m_App.ReleaseDispatch();可以关闭吗?  
  就执行这个m_App.Quit(varLong,varLong,varLong);  
  Top

2 楼canjian(奋斗,探求,不达目的誓不罢休!)回复于 2003-11-04 18:59:07 得分 0

学习Top

3 楼sxxny(轻云(Srj))回复于 2003-11-04 19:53:00 得分 10

你想要它马上就结束进程的话可以调用一下CoUninitle(..)(函数名错了)  
  就可以了Top

4 楼fzq426(天涯海角 不见不散)回复于 2003-11-05 09:04:53 得分 0

谢谢各位的帮忙,sxxny的方法可行。是调用CoInitialize()函数。Top

相关问题

  • vc嵌入word操作
  • VC求助:如何实现VC对WORD文档的操作
  • 用VC对WORD文档进行一些操作,高分求救
  • 关于用vc操作word中表格的问题
  • VC++.net中操作word的简单问题
  • VC操作Word加入背景,页眉,页脚
  • 关于vc操作word文档,有经验的进来看看。
  • VC++中操作Access2000
  • informix /sqlc ,多进程操作,报-25587错
  • Windows 操作系统进程描述(系统进程)

关键词

  • 文档
  • word
  • application
  • null
  • varlong
  • releasedispatch
  • varfalse
  • varstrnull
  • vartrue
  • colevariant

得分解答快速导航

  • 帖主:fzq426
  • ifengfeng
  • sxxny

相关链接

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

广告也精彩

反馈

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