前言 ActiveX 控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件
ActiveX 控件这种技术涉及到了几乎所有的COM 和OLE 的技术精华,如可链接对象、统一数据传输、OLE 文档、属性页、永久存储以及OLE 自动化等
ActiveX 控件作为基本的界面单元,必须拥有自己的属性和方法以适合不同特点的程序和向包容器程序提供功能服务,其属性和方法均由自动化服务的IDispatch 接口来支持
除了属性和方法外,ActiveX 控件还具有区别于自动化服务的一种特性--事件
事件指的是从控件发送给其包容程序的一种通知
与窗口控件通过发送消息通知其拥有者类似,ActiveX 控件是通过触发事件来通知其包容器的
事件的触发通常是通过控件包容器提供的IDispatch 接口来调用自动化对象的方法来实现的
在设计 ActiveX 控件时就应当考虑控件可能会发生哪些事件以及包容器程序将会对其中的哪些事件感兴趣并将这些事件包含进来
与自动化服务不同,ActiveX 控件的方法、属性和事件均有自定义(custom)和库存(stock)两种不同的类型
自定义的方法和属性也就是是普通的自动化方法和属性,自定义事件则是自己选取名字和Dispatch ID 的事件
而所谓的库存方法、属性和事件则是使用了ActiveX 控件规定了名字和Dispatch ID 的"标准"方法、属性和事件
ActiveX 控件可以使COM 组件从外观和使用上能与普通的窗口控件一样,而且还提供了类似于设置 Windows 标准控件属性的属性页,使其能够在包容器程序的设计阶段对ActiveX 控件的属性进行可视化设置
ActiveX 控件提供的这些功能使得对其的使用将是非常方便的
本文下面即以 MFC 为工具对ActiveX 控件的开发进行介绍
建立工程框架 通过"MFC ActiveX