OLE、ActiveX是兩個商標名稱,而COM則是一個純技術名詞,這也是大家更多的聽說ActiveX和OLE的原因。既然OLE是最早出現的,那麼就從OLE說起,自從Windows操作係統流行以來,“剪貼板”(Clipboard)首先解決了不同程序間的通信問題(由剪貼板作為數據交換中心,進行複製、粘貼的操作),但是剪貼板傳遞的都是“死”數據,應用程序開發者得自行編寫、解析數據格式的代碼,於是動態數據交換(DynamicDataExchange,DDE)的通信協定應運而生,它可以讓應用程序之間自動獲取彼此的最新數據,但是,解決彼此之間的“數據格式”轉換仍然是程序員沉重的負擔。對象的鏈接與嵌入(ObjectLinkingandEmbedded,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和WindowsNT中用的是新API,多數是作為COM對象來定義的。
可見,COM雖然起源於複合文檔,但卻可有效地適用於許多軟件問題,它畢竟是處在底層的基礎技術。用一句話來說,COM是獨立於語言的組件體係結構,可以讓組件間相互通信。隨著計算機網絡的發展,COM進一步發展為分布式組件對象模型,這就是DCOM,它類似於CORBA的ORB,本文對此將不再做進一步的闡述。通過上麵的講述相信大家一定對ActiveX、OLE和COM\/DCOM的關係有了一個清楚的了解。
規避因惡意ActiveX控件帶來的風險
ActiveX控件有較強的功能,但也存在被人利用的隱患,網頁中的惡意代碼往往就是利用這些控件編寫的小程序,隻要打開網頁就會被運行。所以要避免惡意網頁的攻擊隻有禁止這些惡意代碼的運行。
!錯有沒總些慎謹,用禁項選關相與件控XevitcA將您議建,”別級義定自“→”全安“→”項選tenretnI“→”具工“:是驟步置設體具,擇選種多了供提此對EI
。響影的大更生產全安腦電地本對並,擇選的多更有時s件控XevitcA待對在們我使以可,開打項選該把表冊注改修過通,定設性全安的”腦電的我“了藏隱裡這在軟微,過不。點站的製限受、點站的任信受、tenartnI地本、tenretnI定設能隻們我中定設性全安的EI在,外另
D到找中口窗邊右在,0\\senoZ\\sgnitteStenretnI\\noisreVtnerruC\\swodniW\\tfosorciM\\erawtfoS\\RESU_TN-ERRUC_YEKH:到開展次順號”“的麵前擊點,器輯編表冊注開打,exe.tidegeR入輸中框話對”行運“的出彈在,”行運“的中單菜”始開“開打:法方的體具是麵下