认识ActiveX控件

本文介绍了组件对象模型(COM)、对象链接和嵌入(OLE)以及ActiveX控件的概念及其关系。COM是OLE和ActiveX的基础,而ActiveX主要应用于网络环境,提供更丰富的用户交互。ActiveX控件具有属性、方法和事件,常用于封装功能并供其他开发人员使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要了解ActiveX控件,我觉得有必要分清楚3个概念:

1.组件对象模型(Component Object Model,COM

2.对象链接和嵌入(Object Liking and Embedding,OLE

3.ActiveX控件


ActiveX、OLE和COM的关系。首先,让大家有一个总体的概念,从时间的角度讲,OLE是最早出现

的,然后是COM和 ActiveX;从体系结构角度讲,OLE和ActiveX是建立在COM之上的,所以COM是基础;单从名

称角度讲,OLE、ActiveX是两个商标 名称,而COM则是一个纯技术名词,这也是大家更多的听说ActiveX和

OLE的原因。既然OLE是最早出现的,那么就从OLE说起,自从 Windows操作系统流行以来,“剪贴

”(Clipboard)首先解决了不同程序间的通信问题(由剪贴板作为数据交换中心,进行复制、粘贴的操

作),但是剪贴板传递的都是“死”数据,应用程序开发者得自行编写、解析数据格式的代码,于是动态数

据交换(Dynamic Data Exchange,DDE)的通信协定应运而生,它可以让应用程序之间自动获取彼此的最新

数据,但是,解决彼此之间的“数据格式”转换仍然是程序员沉重的 负担。对象的链接与嵌入(Object

 Linking and Embedded,OLE)的诞生把原来应用程序的数据交换提高到“对象交换”,这样程序间不但获

得数据也同样获得彼此的应用程序对象,并且可以直接使用 彼此的数据内容,其实OLE是Microsoft的复合文

技 术,它的最初版本只是瞄准复合文档,但在后续版本OLE2中,导入了COM。由此可见,COM是应OLE的需

求而诞生的,所以虽然COM是OLE的基础, 但OLE的产生却在COM之前。COM的基本出发点是,让某个软件通过

一个通用的机构为另一个软件提供服务。COM的第一个使用者却是OLE2,所以 COM与复合文档间并没有多大的

关系,实际上,后来COM 就作为与复合文档完全无关的技术,开始被广泛应用。这样一来,Microsoft就开

始“染指”通用平台技术。但是COM并不是产品,它需要一个商标名 称。而那时Microsoft的市场专家们已经

选用了OLE作为商标名称,所以使用COM技术的都开始贴上了OLE的标签。虽然这些技术中的绝大多数与复 合

文档没有关系。Microsoft的这一做法让人产生这样一个误解OLE是仅指复合文档呢?还是不单单指复合文

档?其实OLE是COM的商标名称,自然 不仅仅指复合文档。但Microsoft自己恐怕无法解释清楚,这要花费相

当的精力和时间。于是,随着Internet的发展,在1996年 春,Microsoft改变了主意,选择ActiveX作为新的

商标名称。ActiveX是指宽松定义的、基于COM的技术集合,而OLE仍然仅指复合文 档。当然,ActiveX最核心

的技术还是COM。ActiveX和OLE的最大不同在于,OLE针对的是桌面上应用软件和文件之间的集成,而

 ActiveX则以提供进一步的网络应用与用户交互为主。(该段落摘自百度文库


ActiveX控件

ActiveX controls是一个很完整的PME(Proterties-Method-Event)结构的控件,但一般C++类不会有那么完整的设计和封装,必须要变为一个单一的文件,内含类信息及所有必须资源。

作为一个典型的ActiveX控件,他具有,属性(Proterties)、方法(Methods)、事件(Events三种特性。在实际编程工作中,常将有用的功能封装在一个ActiveX控件中,然后将提供给其他开发人员使用。现在,很多公司做ActiveX控件的开发,提供给其他公司或客户使用。


属性:相当于C++类的成员变量,控件的使用者可以通过属性改变控件的状态,ActiveX控件中有四种属性:

Stock:标准属性

Ambient:环境属性

Extended:由容器处理的属性(控件的大小和位置)

Custom:控件开发者添加的属性

方法:相当于C++类的成员函数,在控件中实现,由容器调用。

事件:相当于Windows控件发出的notification消息,由控件发出事件,容器去实现。分为标准事件和自定义事件两种。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值