
新教材第10章 COM 1简介
1 COM 简 介 新教材 第10章

10.1.1 COM的概念 组件对象模型COM是Microsoft公司的一种 技术基石,在Microsoft公司的MSDN中是这样 定义的:“COM是软件组件互相通信的一种方 式,它是一种二进制和网络标准,允许任意两 个组件互相通信,而不管它们在什么计算机上 运行(只要计算机是相连的),不管计算机运 行的什么操作系统(只要该操作系统支持 COM),也不管该组件机是用什么语言编写 的
2 10.1.1 COM的概念 组件对象模型COM是Microsoft公司的一种 技术基石,在Microsoft公司的MSDN中是这样 定义的:“COM是软件组件互相通信的一种方 式,它是一种二进制和网络标准,允许任意两 个组件互相通信,而不管它们在什么计算机上 运行(只要计算机是相连的),不管计算机运 行的什么操作系统(只要该操作系统支持 COM),也不管该组件机是用什么语言编写 的

COM是基于客户/服务器模型的,每个 COM对象的工作方式类似于服务器,可接收收 和处理来自客户程序的请求,并产生自动回复信 息。 请求 客户程序 C0M对象 响应 COM对象和客户程序 3
3 COM是基于客户/服务器模型的,每个 COM对象的工作方式类似于服务器,可接收收 和处理来自客户程序的请求,并产生自动回复信 息。 COM对象和客户程序 客户程序 COM对象 请求 响应

通常编写程序,首先要编写源代码,再将这些源 代码编译成目标码。这样做会有两个不便之处: 1.如果有多个程序,而它们多数模块的功能相同, 仅有部分模块功能不同,那么每个程序都要重 新写源代码,重新编译。而已编写好的,功能 相同的程序不能被直接使用 2.不同语言编写的程序,由于源代码不同,因此 不能互相调用,例如用VB编写的程序,不能 调用其它语言编写的程序,也不能把其它语言 编写的源代码直接拷贝的VB程序中
4 通常编写程序,首先要编写源代码,再将这些源 代码编译成目标码。这样做会有两个不便之处: 1. 如果有多个程序,而它们多数模块的功能相同, 仅有部分模块功能不同,那么每个程序都要重 新写源代码,重新编译。而已编写好的,功能 相同的程序不能被直接使用。 2. 不同语言编写的程序,由于源代码不同,因此 不能互相调用,例如用VB编写的程序,不能 调用其它语言编写的程序,也不能把其它语言 编写的源代码直接拷贝的VB程序中

采用C0M模型可以提高软件的重复利 用率和共享程度。随着应用的发展,程 序越来越大,编写程序越来越复杂,可 以让一些模块更加通用,把别人编译好 的软件直接“嵌入” 到自己的软件中, 这样使得在开发大型软件时效率大大提 高
5 采用COM模型可以提高软件的重复利 用率和共享程度。随着应用的发展,程 序越来越大,编写程序越来越复杂,可 以让一些模块更加通用,把别人编译好 的软件直接“嵌入”到自己的软件中, 这样使得在开发大型软件时效率大大提 高

10.1.2C0M对象的类型 C0M对象是通过一系列标准接口与外部程序进 行数据交换的。接口是C0对象和调用程序之间订 立的协议,它指明C0M对象和数据程序交换所使用 的方法、属性和事件。一般来说,C0M对象有两种 类型接口:即标准接口和用户接口 标准接口是Microsoft公司定义的接口, 可以 在编写的程序中通过标准接口访问有关的C0M对象, 这种接口含有或执行各种与C0M有关的作业。编写 人员也可以根据需要,设计自己的C0M对象接口 这就是用户接口
6 10.1.2 COM对象的类型 COM对象是通过一系列标准接口与外部程序进 行数据交换的。接口是COM对象和调用程序之间订 立的协议,它指明COM对象和数据程序交换所使用 的方法、属性和事件。一般来说,COM对象有两种 类型接口:即标准接口和用户接口。 标准接口是Microsoft公司定义的接口,可以 在编写的程序中通过标准接口访问有关的COM对象, 这种接口含有或执行各种与COM有关的作业。编写 人员也可以根据需要,设计自己的COM对象接口, 这就是用户接口

10.1.3 Activex.与C0M的关系 Mi crosoft的Act iveX:技术是遵循COM 规程的,或者说是C0M理论的具体化。因 此Act i veX和C0M的关系可以简单描述如下: Act iveX.是建立在COM基础上的,它采用简 化之后的0LE技术(对象链接与嵌入) 并使OLE随时处于激活(Act ive)状态 以处理信息
7 10.1.3 Activex与COM的关系 Microsoft的ActiveX技术是遵循COM 规程的,或者说是COM理论的具体化。因 此ActiveX和COM的关系可以简单描述如下: ActiveX是建立在COM基础上的,它采用简 化之后的OLE技术(对象链接与嵌入), 并使OLE随时处于激活(Active)状态, 以处理信息

10.2 ActiveX简介 10.2.1 ActiveX模型 ActiveX模型包括: ActiveX控件 ActiveX脚本 ActiveX文档 ActiveX服务器框架 ActiveX会议 Java虚拟机 8
8 10 . 2 ActiveX简介 10 . 2 . 1ActiveX模型 ActiveX模型包括: ActiveX控件 ActiveX脚本 ActiveX文档 ActiveX服务器框架 ActiveX会议 Java虚拟机

1.Activex:控件 ActiveX控件是一个提供特定功能的二进制 对象。程序开发人员可以把ActiveX控件添加 到自己编写的程序中。ActiveX控件可以用于 各种语言环境中,也可以用于Web网页中。 ActiveX:控件是一种开放结构式的对象引用技 术,它不是某个特定对象的语言产物,编程 人员可以通过VB(企业版)、Visual C++、 Borland C++以及Delphi等多种语言来建立 ActiveX控件
9 1. Activex控件 ActiveX控件是一个提供特定功能的二进制 对象。程序开发人员可以把ActiveX控件添加 到自己编写的程序中。 ActiveX控件可以用于 各种语言环境中,也可以用于Web网页中。 ActiveX控件是一种开放结构式的对象引用技 术,它不是某个特定对象的语言产物,编程 人员可以通过VB(企业版)、Visual C++、 Borland C++以及Delphi等多种语言来建立 ActiveX控件

2.ActiveX脚本处理 Activex脚本处理在诸如VBScript、 JavaScript这样的脚本语言中配合使用 ActiveX控件的处理过程。通过使用脚 本语言,可以使程序更具交互能力。 10
10 2. ActiveX脚本处理 ActiveX脚本处理在诸如VBScript、 JavaScript这样的脚本语言中配合使用 ActiveX控件的处理过程。通过使用脚 本语言,可以使程序更具交互能力