首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OLE:用于多个OLE对象的共享IStorage?

OLE:用于多个OLE对象的共享IStorage?
EN

Stack Overflow用户
提问于 2016-11-10 14:20:49
回答 1查看 255关注 0票数 0

我目前正在实现一个IOleObject接口,将我们软件的可视化数据嵌入到其他软件中,比如PowerPoint。我们的软件创建了测量数据(图表等)的图形评估。

目标是,最终用户可以双击嵌入式OLE对象,在我们的软件中编辑它。数据将使用给定的IStorage接口在IPersistStorage::Save/Load中存储。测量的数据必须嵌入,而不是链接。

我目前的解决方案运行良好,但问题是,每个OLE对象都会保存嵌入的数据一次。例如,我们有10 MB的测量数据,最终用户将测量数据的50个不同图表嵌入到PowerPoint中,测量数据将被嵌入PowerPoint文件中50次(50 * 10 MB = 500 MB,尽管每个PowerPoint文件10 MB就足够了)。

我的问题是,整个容器是否存在共享的IStorage接口(?)或者类似的东西?

IPersistStorage::Load/Save中给定的IStorage接口仅依赖于特定的嵌入式OLE对象。

如果我能告诉主机应用程序一些类似"PowerPoint,我的50个OLE对象在那里共享IStorage,请只在PPTX文件中保存一次“之类的话,那就太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-10 14:57:19

不,这就是OLE嵌入应该工作的方式。每个对象在容器中都有自己的存储。如果它是同一个具有相同数据的对象,那么为什么它需要嵌入50次呢?如果它是同一个对象,并且希望它在演示文稿中的不同页面上,为什么不嵌入第一个实例并创建所有剩余的实例链接?这样可以节省存储空间。当然,如果删除第一个嵌入实例,所有链接都将转到.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40529840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档