ActiveX 是基于 Component Object Model (COM) 的可视化控件结构的商标名称。它是一种封装技术,提供封装 COM 组件并将其置入应用程序(如(但不限于)Web 浏览器)的一种方法。ActiveX 控件是 VBX 的后继产品。您也可认为曾称做 OLE Custom Control(或 OCX)的组件是 ActiveX 控件。但是我认为 ActiveX 是 Microsoft 整个组件技术的商标名称。
我承认这点。宣传时使用该术语有点言过其实,以至于使好多人相信 ActiveX 就代表了整个组件模型。那是不对的。ActiveX 只是 COM 对象的封装技术。我获悉你们现在不再强调 ActiveX 而重视 COM。
去年秋天,我们取消了因 ActiveX 而出现的过分的定义,并把它还原到其原始的小范围的意义。至于强调 COM,我们实际上已经强调好多年了。这只是我们跟谁讨论和如何讨论的问题。坦白地说,COM 对作者来说可能是一个很难理解的主题。短小的新闻性文章不能将其解释请楚,因而这里只是一些简单的消息。有时使用 COM 控件很不容易。这就是我们为何要创建框架(如 ActiveX)来简化它的原因。虽然如此, COM 自 1993 年以来一直是我们的组件的战略核心。我需要更多细节。ActiveX 控件与 COM 组件间有什么区别?
ActiveX 控件是一种 COM 组件,它支持在可视化开发工具中所使用的必需的协议。换句话说,您可以用眼睛看着使用它。现在,这并不意味着 ActiveX 控件在运行时是可见的。它只有在设计时才是可见的。这种控件的一个示例就是计时器。开发人员在设计应用程序时能看见它,但最终用户是永远也不会看到它的。这些“必需的协议”是什么?
它们包括这样一些东西,如可视化开发工具用来处理屏幕空间以及在注册表中显示出“工具箱”图形的数据项界面等。还有别的方法可以区分 ActiveX 控件吗?
有的,那就是: 通常封装到 DLL 中,扩展名为 .OCX。
自我注册和取消注册。
通过自动操作实现程序设计。 
OLE 在什么地方适用?
OLE 并没有深入到对象技术的整个系统,可以认为它只是 COM 顶层的另一个框架,有点类似于 ActiveX。OLE 支持复合文档或文档内的文档。我何时使用 ActiveX?
如果想要建立一个具有强大功能的小组件,用来访问系统服务并能够被放入窄范围意义的客户端中(如浏览器),这时可以使用 ActiveX。例如,如果您需要一个可打印或写入注册表的组件,请使用 ActiveX。同样,如果您想不用再去学一门新语言就能编写组件,也可使用 ActiveX。您能用任何语言创建 ActiveX 组件。何时我不该用 ActiveX?
如果您正在编写一个简单的、轻量级的用户界面组件,不要使用 ActiveX,我们推荐 Dynamic HTML。老实说,Web 上的许多东西,如选取框控件或是简单的应用程序,都是用 Java 小程序或 ActiveX 控件来编写的,但不应这样做。这些东西最好用 Dynamic HTML 来实现。跨平台支持的情况如何?
ActiveX 是为增加强大的功能而专门设计的,不能普遍应用。这些控件依赖 Win32 特性,因此不能在 UNIX 或者 Macintosh 上使用。如果 ActiveX 没有过时,为何大惊小怪?
许多人都认为 ActiveX 纯粹是 Internet 技术,这正是他们的成功很有限的原因。ActiveX 并不仅限于 Internet。我们将看到在 Intranet 中 ActiveX 的使用不断增多,同样,在前端不是浏览器的应用程序中也将增加 ActiveX 的使用。作者和分析家通常不考虑这些,但这正是 ActiveX 控件的市场所在。