ATL编撰的ActiveX控件作为OLE对象插入到Word文档中,持久化能力不好使
ATL编写的ActiveX控件作为OLE对象插入到Word文档中,持久化能力不好使
就是实现了 IPersistStream的Save等方法, 在里面保存几个DWORD值
再加载文档的时候Load方法里,读取值到变量里。
写是写进去了,我以zip文件的方式解压到当前文件夹,看到里面有activex文件夹,应该是写入了吧……
但是在读取的时候,所有的值都是0,IStream::Read 方法返回 S_OK 啊!!
这个控件插入到Excel文档里则工作正常,
还有一个现象,我使用代码向Word文档里Shapes集合里插入的OLEObject, 设置了控件的大小,保存后再打开,控件的大小貌似“恢复”了……
Office 2007
请教了!
------解决思路----------------------
我算是com新手,目前还在学习阶段。《com原理与应用》其中讲到了持久化。
我个人是这么想的,com在移动互联网的今天属于比较冷门小众的技术了,而且它本身就比较复杂,从应用的角度来说,有些东西没有必要深究,不是说一定非要去用它。
比如持久化,是不是可以用xml或protobuffer来解决呢?
我是新手,也许我对com本身的持久化理解有误,所以上面说的不一定正确哈。。
------解决思路----------------------
楼主解决了吗,路过帮顶。
就是实现了 IPersistStream的Save等方法, 在里面保存几个DWORD值
再加载文档的时候Load方法里,读取值到变量里。
写是写进去了,我以zip文件的方式解压到当前文件夹,看到里面有activex文件夹,应该是写入了吧……
但是在读取的时候,所有的值都是0,IStream::Read 方法返回 S_OK 啊!!
这个控件插入到Excel文档里则工作正常,
还有一个现象,我使用代码向Word文档里Shapes集合里插入的OLEObject, 设置了控件的大小,保存后再打开,控件的大小貌似“恢复”了……
Office 2007
请教了!
------解决思路----------------------
我算是com新手,目前还在学习阶段。《com原理与应用》其中讲到了持久化。
我个人是这么想的,com在移动互联网的今天属于比较冷门小众的技术了,而且它本身就比较复杂,从应用的角度来说,有些东西没有必要深究,不是说一定非要去用它。
比如持久化,是不是可以用xml或protobuffer来解决呢?
我是新手,也许我对com本身的持久化理解有误,所以上面说的不一定正确哈。。
------解决思路----------------------
楼主解决了吗,路过帮顶。