Word OLE自动化-隐藏和耐内存的Word实例可加快文档加载速度

时间:2019-07-04 15:23:06

标签: vba ms-word ole

最初是从事大型软件开发项目多年的软件工程师,作为标准管理的一部分,我现在负责1.5年的维护和开发旧的,大型的,复杂的和不良记录的单词自动化模块(VBA)。在政府和司法环境中的应用。所有文档操作(从db创建合并数据,更新,删除...)以及存储(如db中的blob)都由主应用程序控制,并使用OLE自动化。

背景

该应用程序允许启用所谓的“间接OLE控制”功能,该功能似乎不是官方名称(Google找不到)。此选项有两个好处。如果启用,

  • 它提高了加载单词时的性能
  • 它为应用程序提供了自己的私有单词环境,没有外界的干扰

这是通过在打开第一个文档时启动一个主要的隐藏Word实例来完成的。实际的文档本身和其他任何文档都加载到另一个Word实例中,该实例附加到主要的隐藏实例上。关闭文档将照常关闭其Word会话,但是主Word会话通常保持打开且不可见,直到整个应用程序关闭为止。主要的Word会话会将宏,预加载的模板和自动图文集模板保留在主存储内存中。

只要打开了至少一个文档,您就会在Windows任务管理器中看到:

  • “处理”选项卡中:与往常一样,一个Word实例附加到打开的文档中
  • “详细信息”标签中:主要的隐藏Word实例,另外为每个打开的文档提供一个Word实例

如果当前没有打开任何文档,您将在Windows任务管理器中看到:

  • “处理”标签中:没有Word实例
  • “详细信息”选项卡中:仅此一个主要的隐藏Word实例(您可以通过PID判断)

缺少文档

一段时间以来,我们已经从客户那里获得问题报告,这些问题报告已从Office 2010升级到2016。他们抱怨创建新文档时性能不佳。我看了一下代码,发现了这种行为的一些可能原因,与上述概念的处理中的调用顺序有关。但是在接触这段代码之前,我想了解更多有关整个概念的知识。 您能给我任何提示,链接或文档,或提供有关具有隐藏和耐内存的Word实例的概念的正式说明/文档。

TIA! 彼得

0 个答案:

没有答案