ActiveX是在M$與JAVA抗爭時產生的一個新名詞(1996年3月),ActiveX技術的前身是OLE技術是M$為了適應Internet的發展對OLE進行的擴展(當時的含義是“Activeate the Internet”),當時只是為了發展一種小型的可從網絡上快速下載的可重用組件。但是隨著ActiveX技術的發展ActiveX很快成為了M$新的口號。ActiveX由定義WEB頁面到OLE控件的所有內容發展到定義一種可重用組件技術的規范。現在ActiveX已經成為一種概念和潮流。
ActiveX的基礎是OLE和COM,但是通過M$的各種開發工具可以屏蔽掉COM模型中許多另人費解的技術細節。本節主要討論如何開發ActiveX控件,其實這只是AcitveX組件技術中的一部分。ActiveX組件技術包括以下一些方面:
現在的ActiveX控件等價與以前的OLE控件或OCX,一個典型的控件包括設計時和運行時的用戶界面,唯一的IDispatch接口定義了控件的屬性和方法,唯一的IConnectionPoint接口定義控件可引發的事件。一個控件可以在容器中運行,所以從運行的角度看它類似與一個DLL。由於在IE中添加了對控件的支持,所以你可以在WEB頁面中通過VBScript對控件進行操縱。
此外COM組件間在二進制上兼容,當其中一個組件的代碼被修改並且被重新編譯連接後只要能夠保持原來已經存在並被使用的接口不變化(可以添加其他接口)那麼其他使用這個組件的文件都不需要重編譯。所以利用COM組件技術可以很大程度上的提高軟件重用性。同樣如果在程序中使用了ActiveX控件那麼你在以後升級程序時可以單獨升級控件而不需要升級整個程序。在提供靈活性的同時會帶來性能上的犧牲,但和ActiveX為我們代碼的好處上看來這些犧牲都算不了什麼。