文档详情

Delphi5开发人员指南(二十三).pdf

发布:2019-10-07约7.66万字共83页下载文档
文本预览下载声明
下载 第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
显示全部
相似文档