vc调用word完成将当前获得的word文档内容返回

#include "msword.h"
BSTR CWordocx6Ctrl::wordget()
{
 CString strResult;
 // TODO: Add your dispatch handler code here
    CLSID clsid;
 HRESULT hr;//here  is result 32bit long
 hr=::CLSIDFromProgID(L"Word.Application",&clsid);//通过progId取得clsId
 
 if(FAILED(hr))
 {
   return NULL;//如果没有安装word,则返回null
 }
 
 IUnknown *pUnknown=NULL;//com接口
 IDispatch *pDispatch=NULL;
 _Application app=NULL;
 Selection sel=NULL;
 hr=::GetActiveObject(clsid,NULL,&pUnknown);//查找是否有word程序运行
   
 if(FAILED(hr))
 {
  return NULL;//如果没有运行word返回null
 }

   try
   {
  //获得运行word对象调用IUnknown接口的queryinterface方法,返回word对象
     hr=pUnknown->QueryInterface(IID_IDispatch,(LPVOID*)&app);
    
  if(FAILED(hr))
   throw (_T("没有取得iddispatchptr"));
    //释放IUnknown接口对象
  pUnknown->Release();
  pUnknown=NULL;
    //通过app获得选区
  sel=app.GetSelection();
 
  if(!sel)
   throw (_T("没有正在编辑的文档"));
 
  sel.WholeStory();//全部选择
     strResult=sel.GetText();//取得文本
  
   }catch(LPCTSTR lpErr)
   {
  CString s=lpErr;
     return s.AllocSysString();;
   }
   //释放资源
   if(pUnknown)
    pUnknown->Release();
   if(sel)
    sel.ReleaseDispatch();
   if(app)
    app.ReleaseDispatch();
   //返回取得的文档内容
 return strResult.AllocSysString();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值