标题：ActiveX
微软定义
微软定义根据微软权威的软件开发指南MSDN（Microsoft Developer Network）的定义，ActiveX插件以前也叫做OLE控件或OCX控件，它是一些软件组件或对象，可以将其插入到WEB网页或其它应用程序中。
内容
控件以前称为 OLE 控件或 OCX 控件是组件 （或对象） 打包别人编程功能.以便您可以重用 Web页或在其他程序中插入。 例如, 随 InternetExplorer 一起提供 ActiveX 控件可用于增强 Web页具有复杂格式功能和动画。 
ActiveX 控件结合了Java 程序和 Netscape 插件优点，还可以用许多编程语言, 包括所有 Microsoft编程和在数据库语言编写程序中使用 ActiveX控件。
使用ActiveX控件可快速实现小型的组件重用、代码共享。
除此之外，为了满足更多地需求，也出现集成于各种开发环境的ActiveX控件，由第三方提供，如ComponentOne Studio for ActiveX、ActiveReports COM、TX Text Control ActiveX等。[1]这些ActiveX控件有助于开发出商业级的Windows应用程序。应该根据实际情况，合理使用。文档用一个 ActiveX - 识别 Web 浏览器如 InternetExplorer, 浏览时 ActiveX 文档使您能够使用自己的工具栏和菜单可打开程序。 这意味着您可以通过使用 ActiveX - 识别 Web 浏览器打开非HTML 文件, 如 MicrosoftExcel 或 MicrosoftWord 文件。脚本ActiveX 脚本支持最常用脚本语言, 包括 Microsoft VisualBasic 脚本和 JavaScript。 ActiveX 脚本可用于集成行为若干 ActiveX 控件或 Java 程序从 Web 浏览器或服务器, 扩展其功能。
特点
在因特网上，ActiveX插件软件的特点是：一般软件需要用户单独下载然后执行安装，而ActiveX插件是当用户浏览到特定的网页时，IE浏览器即可自动下载并提示用户安装。 ActiveX插件安装的一个前提是必须经过用户的同意及确认。
ActiveX插件技术是国际上通用的基于Windows平台的软件技术，除了网络实名插件之外，许多软件均采用此种方式开发，例如Flash动画播放插件、Microsoft MediaPlayer插件、CNNIC通用网址插件等。
相关内容
1.浏览器如何保证安全性？当通过Internet发行软件时，软件的安全性是一个非常引人注意的问题，IE浏览器通过以下的方式来保证ActiveX插件的安全：
ActiveX使用了两个补充性的策略：安全级别和证明，来追求进一步的软件安全性；
Microsoft提供了一套工具，可以用它来增加ActiveX对象的安全性；
通过Microsoft的验证代码工具，可以对ActiveX控件进行签名，这告诉用户你的确是控件的作者而且没有他人篡改过这个控件；
为了使用验证代码工具对组件进行签名，必须从证书授权机构获得一个数字证书；证书包含表明特定软件程序是正版的信息，这确保了其他程序不能再使用原程序的标识。证书还记录了颁发日期。当您试图下载软件时，Internet Explorer 会验证证书中的信息，以及当前日期是否在证书的截止日期之前。如果在下载时该信息不是最新的和有效的，Internet Explorer 将显示一个警告；
在IE默认的安全级别中，ActiveX控件安装之前，用户可以根据自己对软件发行商和软件本身的信任程度，选择决定是否继续安装和运行此软件。
在最新的IE 7中，安全性有进一步的提高。2.ActiveX、OLE和COM现在，比较流行的组件模型有COM（Component Object Model，对象组件模型）/DCOM（Distributed COM，分布式对象组件模型）和CORBA（Common Object Request Broker Architecture，公共对象请求代理体系结构）。到这里，已经出现了与本文相关的主题COM，而CORBA与本文无关，就不作介绍。之所以从组件与对象的区别说起，是想让大家明确COM和CORBA是处在整个体系结构的最底层，如果暂时对此还不能理解，不妨继续往下看，最后在回过头看一看就自然明白了。
现在开始阐述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、OLE和COM三者的关系有了一个比较明确的认识，COM才是最根本的核心技术，所以下面的重点 COM。让对象模型完全独立于编程语言，这是一个非常新奇的思想。这一点从C++和Java的对象概念上，我们就能有所了解。但所谓COM对象究竟是什么呢？为了便于理解，可以把COM看作是某种（软件）打包技术，即把它看作是软件的不同部分，按照一定的面向对象的形式，组合成可以交互的过程和一组支持库。COM对象可以用C++、Java和VB等任意一种语言编写，并可以用DLL或作为不同过程工作的执行文件的形式来实现。使用COM对象的浏览器，无需关心对象是用什么语言写的，也无须关心它是以DLL还是以另外的过程来执行的。从浏览器端看，无任何区别。这样一个通用的处理技巧非常有用。例如，由用户协调运行的两个应用，可以将它们的共同作业部分作为COM对象间的交互来实现（当然，现在的OLE复合文档也能做到）。为在浏览器中执行从Web服务器下载的代码，浏览器可把它看作是COM对象，也就是说，COM技术也是一种打包可下载代码的标准方法（ActiveX控件就是执行这种功能的）。甚至连应用与本机OS进行交互的方法也可以用COM来指定，例如在Windows和Windows NT中用的是新API，多数是作为COM对象来定义的。
可见，COM虽然起源于复合文档，但却可有效地适用于许多软件问题，它毕竟是处在底层的基础技术。用一句话来说，COM是独立于语言的组件体系结构，可以让组件间相互通信。随着计算机网络的发展，COM进一步发展为分布式组件对象模型，这就是DCOM，它类似于CORBA的ORB，本文对此将不再做进一步的阐述。通过上面的讲述相信大家一定对ActiveX、OLE和COM/DCOM的关系有了一个清楚的了解。
规避风险
ActiveX控件有较强的功能，但也存在被人利用的隐患，网页中的恶意代码往往就是利用这些控件编写的小程序，只要打开网页就会被运行。所以要避免恶意网页的攻击只有禁止这些恶意代码的运行。
IE对此提供了多种选择，具体设置步骤是：“工具”→“Internet选项”→“安全”→“自定义级别”，建议您将ActiveX控件与相关选项禁用，谨慎些总没有错!
另外，在IE的安全性设定中我们只能设定Internet、本地Intranet、受信任的站点、受限制的站点。不过，微软在这里隐藏了“我的电脑”的安全性设定，通过修改注册表把该选项打开，可以使我们在对待ActiveX控件时有更多的选择，并对本地电脑安全产生更大的影响。
下面是具体的方法：打开“开始”菜单中的“运行”，在弹出的“运行”对话框中输入Regedit.exe，打开注册表编辑器，点击前面的“ ”号顺次展开到：HKEY_CURRE-NT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Zones\0，在右边窗口中找到DWORD值“Flags”，默认键值为十六进制的21(十进制33)，双击“Flags”，在弹出的对话框中将它的键值改为“1”即可，关闭注册表编辑器。无需重新启动电脑，重新打开IE，再次点击“工具→Internet选项→安全”标签，你就会看到多了一个“我的电脑”图标，在这里你可以设定它的安全等级。将它的安全等级设定高些，这样的防范更严密。
备注
在编辑过程中，采用了部分机器翻译的内容。
特注
2008年中 ActiveX为微软十大垃圾软件榜首。