Delphi5开发人员指南(二十三).pdf
文本预览下载声明
下载
第2 3章 C O M和A c t i v e X
本章内容:
• COM 基础
• COM 与Object Pascal
• COM对象与类工厂
• 聚合
• 分布式C O M
• 自动化
• 高级自动化技术
• MTS
• TO l e C o n t a i n e r
支持基于C O M 的技术是D e l p h i 的一项可选功能。“基于C O M 的技术”这一术语指的是多种以C O M
为基础的技术,包括C O M服务器和客户、A c t i v e X控件、O L E (对象链接与嵌入) 、自动化以及M i c r o s o f t
Transaction Server(事务处理服务器)等。但是这些新技术都有一定难度。这一章就向你完整地介绍这些
技术,并帮助你把它们应用到应用程序中。在以前说“基于 C O M 的技术”基本上就是指O L E ,它能够
在不同的应用程序间共享数据,把一个应用程序中的数据链接或嵌入到另一个应用程序中 (例如把一个
电子表格嵌入到Wo r d文档) 。但是事实上基于C O M 的技术远不止字处理器那么简单。
这一章将首先介绍基于 C O M技术的背景知识,以及 Object Pascal和V C L是怎样支持这些技术的。
然后介绍了如何把这些知识用到你的应用程序中,如何实现对自动化服务器的控制,如何编写你自己
的自动化服务器。接着还要介绍更高级的C O M主题,例如高级自动化技术、M T S等。最后,本章还涉
及到了V C L 的TO l e C o n t a i n e r类,这是一个A c t i v e X容器。本章并不打算讲述所有关于 O L E和A c t i v e X 的
知识,但对它们的主要特点却全都讲到了,尤其是它们在 D e l p h i 中的应用。
23.1 COM基础
在进入一个主题之前,首先应该懂得关于这项技术的基本概念,因此这一节就向你介绍基于 C O M
的技术的基本概念和术语。
23.1.1 COM :组件对象模型
组件对象模型(Component Object Model ,简称C O M )是O L E和A c t i v e X技术的基础。C O M定义了一
组A P I和一个二进制标准,让来自不同编程语言、不同平台的彼此独立的对象互相进行通信。 C O M对
象类似于你已经熟悉的V C L对象,但它们只能有方法和属性,而没有字段。
一个C O M对象包括一个或多个接口 (接口的概念稍后再讲) ,这些接口构成了C O M对象的功能,你
可以像访问一般的V C L 的方法一样访问接口的方法。
控件对象既可以在E X E 中实现,也可以在D L L 中实现。这种实现对于C O M对象的用户来说是透明
的,因为C O M提供了称为调度( m a r s h a l i n g ) 的服务。C O M 的调度机制能够实现跨进程边界甚至跨机器
边界的函数调用,这使得 1 6位的应用程序能够访问3 2位的应用程序、机器A 中的对象能够访问机器B 中
第2 3章 C O M和ActiveX 7 1 3
下载
的对象。这种机器与机器之间的通信称为分布式C O M ( 即D C O M ) ,在本章的后面部分还要详细介绍。
23.1.2 COM、ActiveX 、OLE的异同
“那么,C O M、O L E和A c t i v e X到底有什么区别?”这是许多初学者最容易问的问题之一。这个问
题问得很好,因为这些技术的创始者 M i c r o s o f t并没有把这个问题讲清楚。前面讲过, C O M是一组A P I
和二进制标准,是其他相关技术的基石。过去 (在1 9 9 5年) ,O L E还是一个神秘的术语,用来描述建立
在C O M体系结构基础上的一整套技术。现在,O L E仅仅是指与对象链接和嵌入有关的技术,比如容器、
服务器、就地编辑、拖放和菜单合并等。 1 9 9 6年,M i c r o s o f t提出了A c t i v e X 的概念,于是A c t i v e X又成
为一个新的神秘术语,用来描述建立在 C O M基础之上的非C O
显示全部