对象处理程序

如果 OLE 服务器应用程序是本地服务器,这意味着它在自己的进程空间中运行,则容器和服务器之间的通信必须跨进程边界发生。 由于此过程成本高昂,因此 OLE 依赖于加载到容器的进程空间中的代理项对象来代表本地服务器应用程序执行作。 此代理对象,称为 对象处理程序,服务容器请求不需要服务器应用程序的注意,例如请求绘图。 当容器请求对象处理程序无法提供的内容时,处理程序将使用 COM 进程外通信机制与服务器应用程序通信。

对象处理程序对对象类是唯一的。 为一个类创建处理程序的实例时,不能将其用于另一个类。 当用于复合文档时,当远程访问特定类的对象时,对象处理程序将实现容器端数据结构。

OLE 提供本地服务器应用程序可以使用的默认对象处理程序。 对于需要特殊行为的应用程序,开发人员可以实现一个自定义处理程序,该处理程序可以替换默认处理程序或使用它来提供某些默认行为。

对象处理程序是包含多个交互组件的 DLL。 这些组件包括用于管理处理程序与其服务器应用程序之间的通信的远程处理片段、用于存储对象的数据的缓存,以及有关如何设置数据格式和显示数据的信息,以及协调 DLL 的其他组件的活动的控制对象。 此外,如果对象是链接,则 DLL 还包括链接组件,或 链接对象,从而跟踪链接源的名称和位置。

缓存 包含足够的数据和呈现信息,以便处理程序在其容器中显示已加载但未运行的对象。 OLE 提供 OLE 的默认对象处理程序和链接对象使用的缓存的实现。 缓存以对象处理程序所需的格式存储数据以满足容器绘制请求。 当对象的数据发生更改时,该对象会向缓存发送通知,以便可以进行更新。 有关缓存的详细信息,请参阅 查看缓存

有关详细信息,请参阅以下主题:

复合文档