引言-概述
ole/activex/com技術是ms的核心應用技術,只有徹底洞察其理論精髓,才能以不變應萬變。
我們首先從ole談起。
一、過去的ole和今天的ole
作為com技術前身的ole,其最初含義是指在程式之間鏈結和嵌入物件資料(object link embeded)。它提供了建立混合文件的手段(資深windows 3.x 使用者可能記得當初在word6.0中插入乙個圖形的新奇和喜悅,有關復合文件,後面文章詳細講述),使得那些沒有太多專業知識的使用者能夠很容易地協調多個應用程式完成混合文件的建立。2023年制定的ole1.0規範主要解決多個應用程式之間的通訊和訊息傳遞問題,微軟希望第三方開發商能夠遵守這個規範,以使在當時的windows平台上的應用程式能夠相互協調工作,更大的提高工作效率。然而事與願違,只有很少的軟體開發商支援它。為此,微軟於2023年發布了新的規範——ole2.0,它在原有的基礎上完善並增強了以下各方面的效能:
1.ole自動化:乙個程式有計畫地控制另乙個程式的能力。
2.ole控制項:小型的元件程式,可嵌入到另外的程式,提供自己的專有功能。
3.ole文件:完善了早期的混合文件功能,不僅支援簡單鏈結和嵌入,還支援在位啟用、拖放等功能。
強大的功能使得很多的開發商開始支援新的ole技術,因為微軟在ole2.0中建立了乙個稱為com(component object model即元件物件模式)的新規範。
伺服器:
伺服器通過特定的介面將自己完成的一些功能,提供給使用自己的應用程式(例如畫筆程式是乙個文件伺服器,它提供建立並編輯bmp 影象的功能)。當開啟word,選擇【插入】選單下的【物件...】項,您可以看到在您的系統中存在哪些文件伺服器,此時的word以文件容器的身份出現。
在位啟用:
當您雙擊插入的物件後發現word的選單有些改變成文件伺服器程式的選單,可以在當前的環境下編輯物件,這稱為在位啟用。
自動化:
和ole文件技術類似,允許乙個應用程式通過程式設計控制另乙個應用程式「自願」提供的功能的技術稱為ole自動化。自身暴露一些可程式設計物件給其它程式的應用程式叫自動化伺服器,利用並操縱自動化伺服器提供的功能的應用程式叫自動化客戶或自動化控制器,有些程式既是自動化伺服器又是自動化控制器。例如在vc中我們可以通過程式設計建立並編輯乙個excel工作表(很多參考書都以此為例),這裡的vc就是自動化控制器,而建立工作表的excel程式則是自動化伺服器,但在excel中我們又可以利用vba語言建立powerpoint的幻燈片,它又成了自動化控制器。利用ole自動化技術可以實現軟體的一次開發和多次利用,這也是整合元件的關鍵技術。無論是作業系統還是應用軟體,微軟都有意識朝著這個方向發展,例如從windows95開始,包括windowsnt4.0以後的作業系統的shell就實現了ole自動化技術。 那麼什麼是activex?它和ole有什麼聯絡呢?
三、activex戰略
同早期的功能薄弱的ole1.0相比,ole2.0得到了很多軟體廠商的支援。許多程式設計人員編寫了大量的實現ole自動化伺服器功能的元件(不一定是exe檔案),這些元件一般不求功能齊全、強大,而是實現專門的功能,可以被其它程式程式設計控制,由此承襲ole的名字稱為ole控制項。它們在檔名中的副檔名一般為ocx(ole control extension)。 微軟剛剛贏得廣大軟體廠商的支援,使ole技術深入人心,然而「人算不如天算」,國際網際網路的超速發展讓比爾·蓋茨始料未及。加上早期的ole1.0不得人心,導致後來的人們總把在word中插入乙個圖形當作ole技術的全部,各類資料在介紹新ole技術時命名也不統一,造成很大的混亂。針對這些情況,微軟在2023年重新制訂了乙個關於ole的規範——ole 96規範。這個規範擴充套件了 ole控制項的能力,並貫徹微軟的internet戰略使它更易於在網路環境中使用,還考慮命名混淆的問題,重新給ole控制項貼上乙個標籤——activex控制項。不僅如此,以前的什麼ole文件也相應稱為activex 文件了。總之,為了滿足internet戰略,微軟把ole換成了activex,企圖使人們重新看待新的ole——activex,把它看做網路上的解決軟體元件問題的標準。 許多在windows上同微軟合作得很好的廠商在開發新版本軟體時都開始支援activex技術,例如delphi、powerbuild等開發工具。原來同windows競爭的作業系統也開始支援activex,例如macintosh,甚至老對手os/2上也可以使用activex控制項。activex技術也許真的會成為乙個異種平台爭相支援的規範,如果能夠進一步完善activex、採用更開放的策略以及微軟不被卸成八大塊的話。
(待續。。)
第一講 大資料概述
內容來自廈門大學林子雨教授的 大資料技術原理 課程,作為學習筆記。1.1大資料時代 1.2大資料概念 1.3大資料的影響 1.4大資料的應用 1.5大資料關鍵技術 1.6大資料計算模式 1.7大資料產業 1.8大資料與雲計算 物聯網的關係 1.1.1第三次資訊化浪潮 第一次 1980年前後 個人計算...
第一講 C語言預處理概述
在前面各章中,已多次使用過以 號開頭的預處理命令。如包含命令 include,巨集定義命令 define等。在源程式中這些命令都放在函式之外,而且一般都放在原始檔的前面,它們稱為預處理部分。所謂預處理是指在進行編譯的第一遍掃瞄 詞法掃瞄和語法分析 之前所作的工作。預處理是 語言的乙個重要功能,它由預...
第一講 遞迴
遞迴 recursion 程式呼叫自身的程式設計技巧。遞迴滿足2個條件 1 有反覆執行的過程 呼叫自身 2 有跳出反覆執行過程的條件 遞迴出口 一 階乘 include using namespace std int recursive int i int main main 三 斐波那契數 inc...