天天看點

ActiveX 學習筆記 (一)

Activex 學習筆記(一)

    關于ActiveX,就要從COM說起。COM是一種元件開發技術,它實際上是一種共享二進制代碼的技術,依照COM标準,用不同的開發語言都可以開發。從本質上講,COM是一種動态庫的衍生産品,因為遵循COM标準個元件都會在其輸出中導出幾個接口函數:

DllGetClassObject

DllRegisterServer

DllUnregisterServer

DllCanUnloadNow

所有的Com标準元件都必須導出這幾個接口函數。通過DllGetClassObject函數展開,獲得元件的類廠。然後通過通用接口CreateInstance建立對應的類,使用QueryInterface枚舉類接口。

    而Activex就是COM标準的一套實作,最早原型應該是随着VB出現的VBX控件, 由于VBX控件的16位結構并不能适應32位作業系統的要求,于是就誕生了OCX控件, OCX控件是一種32位的自包含的簡單應用, 它實際上是一組完成指定的功能函數集合.它實際上是DLL的另外一種表現形式. OCX控件可以有自己的界面,也可以沒有界面, 它擁有屬性, 方法, 而且一個OCX控件可以觸發出某種類型的事件, 用來通知容器它的狀态的改變或者是某種外部狀态的改變或事件的發生, 實作一個OCX控件必須實作一系列既定的接口, 這使得OCX控件顯得有些龐大和備援, 因為有些控件隻需要實作這些接口的一部分, 而且對于Internet 來說, 實作這些多餘的接口無疑增加了控件的體積.是以在1996年PDC大會上, 微軟提出了它的 Activate Internet的概念, 并把它的一些技術改稱為ActiveX技術, ActiveX控件就在原先的OCX控件上經過對要實作的接口的削減而誕生了, 現在隻要一個COM元件實作IUnknown接口就可以被稱為 ActiveX控件. 是以可以說一個ActiveX控件就是一個實作了IUnknown接口并且支援自注冊的簡單的 COM元件.

    曾經有一段時間,因為Activex技術的産生,讓web應用程式可以得到很多擴充,這使得整個WEB應用多元化。但是這也帶來了一些隐患,因為ActiveX控件由很多人開發,其安全性得不到保障,很多惡意網站會在網頁中嵌入惡意代碼,調用存在漏洞的控件實作自己的攻擊功能。目前因為HTML5技術的興起,各大網際網路首腦紛紛轉向主流的HTML5等技術,現在的ActiveX已經成為了曆史,但是還是有很多值得學習的地方。

後面将具體介紹ActiveX控件的開發流程

繼續閱讀