【OLE简介】
OLE(Object Linking and Embedding,对象连接与嵌入)。是一种面向对象的技术,利用这种技术可开发可重复使用的软件组件(COM)。OLE不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为组件对象模型(Component Object Model),简称COM。OLE可以用来创建复合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字、声音、图像、表格、应用程序等组合在一起。
OLE 是在客户应用程序间传输和共享信息的一组综合标准。允许创建带有指向应用程序的链接的混合文档以使用户修改时不必在应用程序间切换的协议。OLE基于组件对象模型(COM) 并允许开发可在多个应用程序间互操作的可重用即插即用对象。该协议已广泛用于商业上,在商业中电子表格、字处理程序、财务软件包和其他应用程序可以通过客户服务器体系共享和链接单独的信息。
例如,一个支持OLE的字处文档(例如word)能够支持嵌入的表格对象。与传统的“拷贝和粘贴”方式不一样,“拷贝和粘贴”会改变粘贴信息的格式。但是嵌入的文档会保留所有原来的属性。如果用户打算编辑嵌入的数据windows操作系统会激活原来的应用程序(例如excel)并(在excel中)载入这个嵌入的文档。
【OLE的发展】
OLE技术是在复合文档中实现链接对象或嵌入对象的一组协议,该技术首先由Aldus公司在1988年提出,后被Microsoft公司引进到Windows中。使用OLE,一个应用程序可以和其他应用程序合作,以产生包含有不同种类对象的复合文档,并且文档中所包含的对象易于被用户操作。
【OLE的版本】
迄今为止,有两种版本的OLE:OLE1.0和OLE2.0。
1991年发布OLE1.0规范,其主要解决多个应用程序之间的通信和消息传递问题。
1993年制定OLE2.0规范,完善并增强了以下各方面的性能:
① OLE自动化:一个程序有计划地控制另一个程序的能力;
② OLE控件:小型的组件程序,可嵌入到另外的程序,提供自己的专有功能;
③ OLE文档:完善了早期的混合文档功能,不仅支持简单链接和嵌入,还支持在位激活、拖放等功能。
OLE2.0是与WINDOWS 3.1一起推出的,它是第一个真正的COM技术。
OLE2.0中产生了一种新的唯一的数据格式,称为复合文件。这种文件中能够包括所有OLE支持的应用程序的相关信息,并在任一工作的应用程序中支持编辑、更新、打印等功能。
创建OLE对象的服务器决定了OLE的激活方式。如果一个OLE1.0的对象在OLE2.0 编译的应用程序中打开,它将采用OLE1.0的方式。
【OLE自动化】
OLE自动化是Windows应用程序操纵另一个程序的一种机制。OLE 2.0提供了一种方法来集成应用程序,这就是应用程序之间的命令操作。
利用OLE 2.0,程序员可以定义一组命令,使它们进入到其它程序中。这些命令可带参数。看起来很象应用程序在调用函数或过程一样。采用上述办法, 可以在人不参与的情况下,就能使得两个应用程序的相互作用。
被自动化的程序称作自动化对象或自动化服务器, 操作或自动化其他程序的应用程序称为自动化控制器或自动化客户器。有些程序既是自动化服务器又是自动化控制器。
典型的OLE自动化服务器的例子有Word和Excel。这两个应用程序能其他自动化应用程序控制。
例如在VC中我们可以通过编程创建并编辑一个Excel工作表(很多参考书都以此为例),这里的VC就是自动化控制器,而创建工作表的Excel程序则是自动化服务器,但在Excel中我们又可以利用VBA语言创建PowerPoint的幻灯片,它又成了自动化控制器。
利用OLE自动化技术可以实现软件的一次开发和多次利用,这也是集成组件的关键技术。无论是操作系统还是应用软件,微软都有意识朝着这个方向发展,例如从Windows95开始,包括WindowsNT4.0以后的操作系统的Shell就实现了OLE自动化技术。
【OLE相关名词】
容器:容器是一个客户程序,它可以申请并使用其它COM组件,通过组件提供的接口为其它程序实现一些功能;
服务器:服务器通过特定的接口将自己完成的一些功能,提供给使用自己的应用程序(例如画笔程序是一个文档服务器,它提供创建并编辑BMP 图像的功能)。当打开Word,选择【插入】菜单下的【对象...】项,您可以看到在您的系统中存在哪些文档服务器,此时的Word以文档容器的身份出现。
在位激活:当您双击插入的对象后发现Word的菜单有些改变,变成了文档服务器程序的菜单,可以在当前的环境下编辑对象,这称为在位激活。