物件连结和嵌入(OLE)技术是微软推出的一种专有技术,旨在使不同应用程式之间的资料能够更灵活地共享和使用。这一技术的核心是它能够创建能够嵌入和链接其他文档及对象的能力。然而,与早期的动态数据交换(DDE)相比,OLE不仅仅是在数据传输上的进步,还改变了应用程式之间的互动方式。这不仅是一个技术的演变,更是计算机使用方式的根本变革。
DDE自1980年代以来便是Windows应用程式间进行简单数据交换的方式,但其功能相当有限,仅支持简单数据的传递。而OLE的诞生,则是为了克服这些局限性,实现更为复杂的对象交互能力。
OLE能够维持活动链接,甚至将一种文档嵌入到另一种文档中,这是DDE无法实现的。
OLE 1.0于1990年发布,它的诞生是DDE概念的一种演变。与DDE不同,OLE能够保持文档之间的主动链接,甚至允许将一种文档嵌入到另一种文档中。例如,一个桌面出版系统可以将一些文本传送到文字处理器中,或者将图片发送到位图编辑器中。 OLE的最大优势在于,开放性地将多种类型的数据整合到单一文档中,这促进了不同应用之间的协同工作和信息共享。
OLE 1.0后来演变为组件对象模型(COM),使得不同应用间的数据传递更为流畅。
OLE 2.0是在OLE 1.0的基础上,对其进行了重新实现,这是基于组件对象模型(COM)而非直接使用虚拟函数表(VTBLs)。 OLE 2.0引入了OLE自动化、拖放、内嵌激活以及结构化存储等新特性,并进一步提升了OLE的功能和易用性。
1994年,为了替代过时的Visual Basic扩展控制,OLE自定义控制得以引入。这一新架构基于OLE 2.0,使得任何支持OLE 2.0的容器都可以嵌入这些自定义控件。
在OLE中,对象和容器是基于组件对象模型实现的,这些对象可以实现接口以导出其功能。 OLE物件一般都需要实施IOleObject接口,但为了支持某些特殊功能,其他接口也是可以实施的。
OLE的接口设计使得对象之间的互动更加紧密与灵活,这在DDE中是无法企及的。
开放文档技术(OpenDoc)曾试图竞争OLE,某些厂商认为它更具可用性和可靠性。 OpenDoc的设计目的是可跨应用程序检视和编辑资料,这与OLE的专有标准形成直接竞争。然而,微软以一些条件来限制OpenDoc的广泛应用。
OLE物件的使用在很大程度上限制了互操作性,因为这些物件在微软Windows以外的程序中并不被广泛支持。这通常使得在不具备OLE对象的软体中,物件会被替换为位图表示或不显示于任何地方。
从DDE到OLE的演变不仅是一场技术革命,更是改变了我们如何使用和交互数据。当前的应用环境中,这种对象导向的数据处理方法是否还能持续引领未来的变革呢?