文件管理 · 2022年8月6日

ocx开发自动备份word文档|word2013

❶ 怎样在word文档的指定位置添加一个ocx控件

如果是想将某个文件放到WORD文档中,可以这样操作,点[插入][对象],然后选择一个对象插入,也可以是文件.届时,只需要双击就可以打开它了.

❷ 如何从一个 OCX 获取 IDispatch Excel 或 Word 文档的

执行步骤的示例创建名为 OffCntrDisp 的新 MFC ActiveX 控件向导应用程序。COleControl 派生类中添加下面的成员变量:char m_szDocName[512];IDispatch *m_pDocDisp; 注: m_szDocName 保存包含我们的控制的文档的名称并且 m_pDocDisp 是该文档的 IDispatch 接口。COleControl 派生类定义中的末尾添加以下项:// Interface Maps.protected:// IoleObject.BEGIN_INTERFACE_PART(MyOleObject, IOleObject)INIT_INTERFACE_PART(COffCtlDispCtrl, MyOleObject)STDMETHOD(SetClientSite)(LPOLECLIENTSITE);STDMETHOD(GetClientSite)(LPOLECLIENTSITE*);STDMETHOD(SetHostNames)(LPCOLESTR, LPCOLESTR);STDMETHOD(Close)(DWORD);STDMETHOD(SetMoniker)(DWORD, LPMONIKER);STDMETHOD(GetMoniker)(DWORD, DWORD, LPMONIKER*);STDMETHOD(InitFromData)(LPDATAOBJECT, BOOL, DWORD);STDMETHOD(GetClipboardData)(DWORD, LPDATAOBJECT*);STDMETHOD(DoVerb)(LONG, LPMSG, LPOLECLIENTSITE, LONG, HWND,LPCRECT);STDMETHOD(EnumVerbs)(IEnumOLEVERB**);STDMETHOD(Update)();STDMETHOD(IsUpToDate)();STDMETHOD(GetUserClassID)(CLSID*);STDMETHOD(GetUserType)(DWORD, LPOLESTR*);STDMETHOD(SetExtent)(DWORD, LPSIZEL);STDMETHOD(GetExtent)(DWORD, LPSIZEL);STDMETHOD(Advise)(LPADVISESINK, LPDWORD);STDMETHOD(Unadvise)(DWORD);STDMETHOD(EnumAdvise)(LPENUMSTATDATA*);STDMETHOD(GetMiscStatus)(DWORD, LPDWORD);STDMETHOD(SetColorScheme)(LPLOGPALETTE);END_INTERFACE_PART(MyOleObject)DECLARE_INTERFACE_MAP(); 这将重写您的自定义 MyOleObject 与 IOleObject COleControl 的默认实现。COleControl 派生类的构造函数中添加以下代码:m_pDocDisp = NULL;紧随其后 OffCntrDispCtl.cpp 中的以下行:IMPLEMENT_OLECTLTYPE(COffCntrDispCtrl, IDS_OFFCNTRDISP,_dwOffCntrDispOleMisc) 添加以下代码:BEGIN_INTERFACE_MAP(COffCntrDispCtrl, COleControl)INTERFACE_PART(COffCntrDispCtrl, IID_IOleObject, MyOleObject)END_INTERFACE_MAP() 此操作,请在步骤 3 中所做的修改以及覆盖 COleControl 的 IOleObject。第 5 步中添加的代码,下面添加以下代码:static char buf[8192];static void DoMsg(char *msg) {::MessageBox(NULL, msg, "Message", MB_SETFOREGROUND);}static void DoErr(char *msg, long err) {static char errBuf[8192];sprintf(errBuf, "%s, Error: %ld (%08lx)", msg, err,err);::MessageBox(NULL, errBuf, "Error", MB_SETFOREGROUND);} 这些都是以后用于显示邮件的有用例程。将粘贴的所有以下代码在您的 OffCntrDispCtl.cpp 文件的末尾:STDMETHODIMP COffCntrDispCtrl::XMyOleObject::SetHostNames(LPCOLESTRpwApp, LPCOLESTR pwObj){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);// Convert OLESTR into ASCII string.WideCharToMultiByte(CP_ACP, 0, pwObj, -1, pThis->m_szDocName,512, NULL, NULL);// Get IDispatch.pThis->GetDocDispatch();// Test it out by getting the document name.pThis->TestDispatch();return S_OK;}STDMETHODIMPCOffCntrDispCtrl::XMyOleObject::SetClientSite(LPOLECLIENTSITEpClientSite){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.SetClientSite(pClientSite);}STDMETHODIMPCOffCntrDispCtrl::XMyOleObject::SetColorScheme(LPLOGPALETTE plp){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.SetColorScheme(plp);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::GetMiscStatus(DWORDdwAspect, DWORD* pdwStatus){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.GetMiscStatus(dwAspect, pdwStatus);}STDMETHODIMPCOffCntrDispCtrl::XMyOleObject::EnumAdvise(LPENUMSTATDATA*ppenumAdvise){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.EnumAdvise(ppenumAdvise);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::Unadvise(DWORDdwConnection){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.Unadvise(dwConnection);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::Advise(LPADVISESINKpAdvSink, DWORD* pdwConnection){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.Advise(pAdvSink, pdwConnection);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::GetExtent(DWORDdwDrawAspect, LPSIZEL lpsizel){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.GetExtent(dwDrawAspect, lpsizel);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::SetExtent(DWORDdwDrawAspect, LPSIZEL lpsizel){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.SetExtent(dwDrawAspect, lpsizel);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::GetUserType(DWORDdwFormOfType, LPOLESTR* ppszUserType){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.GetUserType(dwFormOfType,ppszUserType);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::GetUserClassID(CLSID*pClsid){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.GetUserClassID(pClsid);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::IsUpToDate(){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.IsUpToDate();}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::Update(){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.Update();}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::EnumVerbs(LPENUMOLEVERB*ppenumOleVerb){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.EnumVerbs(ppenumOleVerb);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::DoVerb(LONG iVerb, LPMSGlpmsg, LPOLECLIENTSITE pActiveSite, LONG lindex, HWND hwndParent,LPCRECT lprcPosRect){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.DoVerb(iVerb, lpmsg, pActiveSite,lindex, hwndParent, lprcPosRect);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::GetClipboardData(DWORDdwReserved, LPDATAOBJECT *ppDataObject){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.GetClipboardData(dwReserved,ppDataObject);}STDMETHODIMPCOffCntrDispCtrl::XMyOleObject::InitFromData(LPDATAOBJECTpDataObject, BOOL fCreation, DWORD dwReserved){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.InitFromData(pDataObject, fCreation,dwReserved);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::GetMoniker(DWORDdwAssign, DWORD dwWhichMoniker, LPMONIKER *ppmk){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.GetMoniker(dwAssign, dwWhichMoniker,ppmk);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::SetMoniker(DWORDdwWhichMoniker, LPMONIKER pmk){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.SetMoniker(dwWhichMoniker, pmk);}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::Close(DWORDdwSaveOption){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.Close(dwSaveOption);}STDMETHODIMPCOffCntrDispCtrl::XMyOleObject::GetClientSite(LPOLECLIENTSITE*ppClientSite){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.GetClientSite(ppClientSite);}STDMETHODIMP_(ULONG) COffCntrDispCtrl::XMyOleObject::Release(){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.Release();}STDMETHODIMP_(ULONG) COffCntrDispCtrl::XMyOleObject::AddRef(){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.AddRef();}STDMETHODIMP COffCntrDispCtrl::XMyOleObject::QueryInterface(REFIIDiid, LPVOID* ppvObj){METHOD_MANAGE_STATE(COffCntrDispCtrl, MyOleObject)ASSERT_VALID(pThis);return pThis->m_xOleObject.QueryInterface(iid, ppvObj);} 这是您的 IOleObject,通常将委托其调用默认 COleControl 的 IOleObject 实现,除 SetHostNames() 之外的所有实现。补漏白,SetHostNames(),并存储该文档的名称插入控件的位置。遗憾的是,Microsoft PowerPoint 不能调用此方法,因此,此示例将不会使用该产品。但是,Microsoft Powerpoint 是单个服务器,因此您可以使用 GetActiveObject() 来唯一获得 IDispatch 指针。

❸ dsoframer.ocx进行word在线编辑,保存完怎么释放资源,现在保存后进行其他操作浏览器崩溃,内存不能read

类似于HttpPost的提交或保存后如果接受返回值,dsoframer插件就会向js数据空间写数据,造成js数据混乱而不能读写崩溃。所以这是这个插件的bug。找了好多版本都这样。无法取返回值。

❹ 请教MFC操作word,用DsoFramer.ocx或者自动化库,实现把目录提取出来,再跳转到各章节位置

调用微软的MSWORD.OLB库是可以实现的。实在不行可以使用录制宏。

❺ 如何复制和保存网络上的iWebOffice2003.ocx控件打开的word文档

不右击 选中后直接Ctrl+C

❻ word,2013,win7,64位,如何添加AniGIF.ocx在Word中显示动画

插入gif图片,让word动起来经常使用word的朋友都知道,如果在文档中插入了动态gif图片,在文档中显示出来却是静止的,这样就给文档的显示效果大打折扣了。有什么方法可以让文档中的gif图片动起来呢?其实只要用个小小的控件就可以了。我们需要的这个小控件是“anigif.ocx”,它可以在网上下载(下载地址:http://www.afreeocx.com/ocx/get/2888/anigif.ocx),下载后把这个文件复制到“c:\windows\system32”文件夹下。接下来我们打开word2007的“word选项”窗口,在窗口中把“常用”标签里面的“在功能区显示‘开发工具’选项卡”选中,这样“开发工具”标签栏就显示在word2007的功能区中。接着我们再单击“开发工具”里面的“控件——其他工具”按钮,在下拉菜单中选择“注册自定义控件”,然后在弹出的对话框中选择“c:\windows\system32”文件夹下的“anigif.ocx”文件就可以进行注册了(如图1)控件注册成功后会自动在word文档中创建一个控件框,在这个控件框上单击鼠标右键选择“属性”,在弹出的“属性”对话框中可以看见有个“gif”选项,单击它后面的“…”按钮,在弹出的“属性页”窗口中单击“browse”按钮来选择要添加的gif图片,完成后单击“确定”按钮。添加成功后,就可以在word文件中看见已经动起来的gif图片,效果还是很不错的(如图2)。试验一下,是不是很好用呢?动态gif图片插入在文章中让自己的word变得立刻生动起来。笔者周围的人看到以后,都赞叹不已。你也快来试试吧。

❼ word2007开发工具中activex控件无法使用怎么办

注册这个ActiveX控件、方法是:1、找到这个ActiveX控件对应的Dll或OCX文件。2、运行CMD、CD到那个目录3、运行注册命内令:regsvr32空格加容上控件名然后回车提示注册成功后运行Word然后引用或从工具箱中拉出来使用那个控件。要注意的是有些控件是用上面的方法无法达到注册的目的的、如商业用的一些ActiveX、需要付费后用他们提供的工具和注册码注册才能用于开发。

❽ 用.net怎样实现dsoframer.ocx在线编辑word功能

//添加对Excel的引用usingExcel=Microsoft.Office.Interop.Excel;_Click(objectsender,EventArgse){varaxapp=this.axFramerControl1.GetApplication;if(axapp!=null){//获取DSOFramer控件的ApplicationExcel.ApplicationexcelApp=(Excel.Application)axapp;Excel.Workbookexcelbk=excelApp.ActiveWorkbook;Excel.Worksheetws=excelbk.ActiveSheet;for(inti=1;i<100;i++)ws.Cells[i,1][email protected]"Hello";}}

❾ 在使用Dsoframer.ocx控件的时候,有时候能打开Word文档,有时候打不开,这个问题怎么解决

dsoframer目前貌似仅支持office2003标准格式的文档,对其他格式的暂不支持。你说的这种情况只有两种可能,一种是2007及以上的版本不支持,另一种就是2000及以下的版本。估计你的是2000标准的格式!!

❿ 什么是ocx组件

.ocx是ocx控件的扩展名,下来说说什么是ocx控件! 说说什么是OCX控件? 如果你用过Visual Basic或者Delphi一类的可视化编程工具,那么对控件这个概念一定不会陌生,就是那些工具条上的小按钮,如EditBox,Grid,ImageBox,Timer等等。每个控件都有自己的事件、方法和属性。使用了控件的编程非常容易。首先,在程序的设计阶段可以设置一些属性,如大小,位置,标题(caption)等等;在程序运行阶段,可以更改这些属性,还可以针对不同的事件,调用不同的方法来实现对该控件的控制。控件就好像一块块的积木,程序要做的事只是将这些积木搭起来。控件的最大好处是可以重复使用,甚至可以在不同的编程语言之间使用,例如你可以在VB中嵌入用VC开发的控件。 控件的本质是微软公司的对象链接和嵌入(OLE)标准。由于它充分利用了面向对象的优点,使得程序效率得到了很大的提高,从而得到了广泛的应用。国外有很多公司就是专门制作各种各样控件的。控件的最早形式是以.VBX的格式出现的,后来变成了.OCX。由于Internet的广泛流行,微软公司推出了ActiveX技术,就是从OLE发展起来的,加入了WWW上的功能。所以目前最流行的是ActiveX控件。ActiveX控件.ActiveX控件是可重用的软件组件。使用它可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。ActiveX控件的使用者可以无需知道这些组件是如何开发的,便可以完成网页或应用程序的设计。 对象链接和嵌入用户控件(OCX)是一种可以由在微软的Windows系统中运行的应用软件创建使用的特殊用途的程序。OCX提供操作滚动条移动和视窗恢复尺寸的功能。如果你有Windows系统,你会发现在你的Windows地址录里有大量OCX文件名后缀的文件。 对象链接和嵌入(OLE)被设计来支持混合文档(包含多种资料类型,比如文本、绘画图像、声音、动画)。Windows桌面就是一个混合文档的范例,微软使用OLE来建立的。OLE和组件对象模型(COM继OLE后的更常用的概念)支持“即插即用”程序的发展,“即插即用”程序在系统中可以用任何语言写入并可以由任何应用程序动态地使用。这些程序被认为是他们在其上运行的container的组建和应用程序。这种基于组件的近似应用程序的发展缩减了程序调试时间并改善了程序的性能和品质。Windows应用发展程序(比如powerbuilder和Microsoft Access)具有OCX的优势。