ActiveX技術揭示 - www.rising.com.cn
1. ActiveX概要 1.1. ActiveX的定義 ActiveX是Microsoft提出的一組使用COM(Component Object Model,部件對象模型)使得軟件部件在網絡環境中進行交互的技術集。它與具體的編程語言無關。作為針對Internet應用開發的技術,ActiveX被廣泛應用于WEB服務器以及客戶端的各個方面。同時,ActiveX技術也被用于方便地創建普通的桌面應用程序。 1.2. ActiveX的內容 ActiveX 既包含服務器端技術,也包含客戶端技術。其主要內容是: ActiveX 控制(ActiveX Control);用于向WEB頁面、Microsoft Word等支持ActiveX的容器(Container)中插入COM對象。 ActiveX 文檔(ActiveX Document);用于在WEB Browser或者其它支持ActiveX的容器中瀏覽復合文檔(非HTML文檔),例如Microsoft Word文檔,Microsoft Excel文檔或者用戶自定義的文檔等。 ActiveX 腳本描述(ActiveX Scripting);用于從客戶端或者服務器端操縱ActiveX控制和Java程序,傳遞數據,協調它們之間的操作。 ActiveX 服務器框架(ActiveX Server Framework);提供了一系列針對WEB服務器應用程序設計各個方面的函數及其封裝類,諸如服務器過濾器、HTML數據流控制等。 在Internet Explorer中內置Java虛擬機(Java Virtual Machine),從而使Java Applet能夠在Internet Explorer上運行,并可以與ActiveX控制通過腳本描述語言進行通信。 1.3. ActiveX與Java的比較 ActiveX提供了一種擴展包括Java在內的任何編程語言的機制,Java的開發人員可以在Applet中使用ActiveX技術,直接嵌入ActiveX控制,或者以ActiveX技術為橋梁,將其它開發商提供的多種語言的程序對象集成到Java中。與Java的字節碼技術相比,ActiveX提供了“代碼簽名”(Code Signing)技術保證其安全性。2. ActiveX控制和Internet ActiveX控制是OLE控制的更新版本。控制是建立可編程部件的主要元素。ActiveX控制可以用于所有支持COM規范的容器中,或者作為Internet控制嵌入到WEB頁面中。用戶訪問該頁面時將下載該控制并自動在本地注冊。利用腳本描述語言(Script)可以在控制之間以及客戶與服務器之間通過設置屬性(Property)、調用方法(Method)和激活事件(Event)進行通信。 ActiveX控制與以前的OLE控制相比,具有更少的接口,并且可以沒有窗口。所有的ActiveX控制都支持IUnknown接口。 目前,很多第三方開發商編制了各式各樣的ActiveX控制。在Internet上,有超過1000個ActiveX控制供用戶下載使用。在WINDOWS的SYSTEM目錄下,保存有很多Windows提供的ActiveX控制。Microsoft Visual C++(以下簡稱VC)提供的MFC(Microsoft Foundation Classes)控制都是ActiveX控制。 考慮到當前Internet相對較低的傳輸速率,設計運行于Internet的ActiveX控制時,必須考慮以下幾個問題: 控制盡可能小; 持續存儲數據(Persist Data)如何保存; 如何在Internet上下載和安裝; 控制如何在客戶端注冊; 3. ActiveX文檔和Internet ActiveX文檔提供了傳統的嵌入對象的擴展方法。ActiveX文檔對象可以包含多個頁,顯示在整個客戶區中,并支持原有的菜單功能。與以往的嵌入對象不同的是,ActiveX文檔對象不再以一個陰影方框包圍來顯示,而是全框架(Full Frame),并總處于激活狀態。 Microsoft Office97提供了Microsoft Office Binder,用來生成并瀏覽由Microsoft Word、Microsoft Excel或者用戶定義的ActiveX文檔等構成的復合文檔,每一種文檔類型都可以直接進行編輯修改。 ActiveX文檔可以作為對象嵌入到WEB網頁中,在WEB上發布。4. ActiveX腳本描述語言 利用VBScript或者Microsoft JScript,可以向Web頁面中加入可用于交互的ActiveX控制,將數據預處理或者檢驗過程放在客戶端進行,然后將結果傳往WEB服務器。5. ActiveX服務器框架 在WEB服務器上創建擴展應用程序,動態生成WEB頁面。使用MFC提供的ISAPI類可以方便地建立WEB服務器端的擴展應用程序。6. Visual C++ 5.0對ActiveX的支持 VC++ 5.0(企業版)為Internet開發提供了完整的解決發案,其內容是: 使用MFC或者ATL開發ActiveX控制和ActiveX文檔; 使用ISAPI設計WEB服務器端的部件; 使用WinInet開發通過Internet存取文件的應用程序; 使用Asynchronous Monikers生成從Internet下載數據的應用程序; 使用ActiveX SDK開發其它類型的基于Internet的Win32應用程序,包括ActiveX Scripting Host,Microsoft WebConferencing等。 6.1. 用VC5.0開發ActiveX控制 VC++5.0提供兩個途徑開發ActiveX控制:MFC和ATL(Active Template Library)。使用MFC,可以不必理會控制接口的細節,把注意力集中在控制本身的功用上,但是生成的控制比較大。而且,客戶端如果要運行此ActiveX控制,必須擁有相應版本的MFC類庫的DLL,否則,必須同時下載這些巨大的類庫;使用ATL,由于不涉及MFC的標準類庫,生成的控制相對較小,但開發者必須了解COM、OLE技術的細節。大多數情況下,可以使用MFC開發ActiveX控制,這樣比較容易。而且,由于Internet Explorer 3.0提供了MFC 4.1的類庫,而Internet Explorer 3.0是Windows95提供的組件,所以,只要ActiveX控制使用的是MFC 4.1或者更早的版本,多數情況下不需要下載MFC的類庫。 使用MFC開發ActiveX控制,可以用MFC ActiveX Control Wizard生成工程框架。VC會自動產生三個類:(假設MyName是控制的名字。) CMyNameApp:從類COleControlModule派生,而類COleControlModule則派生自CWinApp; CMyNameCtrl:從類COleControl派生,而類COleControl則派生自CWnd; CMyNamePropPage:從類COlePropertyPage派生,而類COlePropPage則派生自CDialog; 可以看出,這個框架與一般的MFC應用程序有些類似。開發人員的大部分工作在CMyNameCtrl中,例如用Class Wizard添加屬性、方法和事件,處理顯示等。 編譯生成OCX文件后,用VC提供的ActiveX Test Container測試這個控制,也可以用OLE/COM Object Viewer瀏覽此控制的接口信息及類型庫。 6.2. ActiveX控制在WEB上的應用 考慮到WEB的安全性,為了在服務器與客戶端建立良好的信任關系,必須為每個在WEB上使用ActiveX控制設置一個“代碼簽名”(Code Signing)。 在WEB頁面中使用ActiveX控制,還要對之進行包裝,將有關的動態連接庫及信息文件壓縮到一個擴展名為CAB(Cabinet)文件中。可以使用VC5.0提供的工具包裝ActiveX控制。在HTML文件中,使用OBJECT標簽插入ActiveX控制,并利用VBScript或者JScript訪問該ActiveX控制。客戶端用Internet Explorer瀏覽此頁面時,可以自動解包該文件。出于安全性的考慮,Internet Explorer為ActiveX 部件的下載、初始化、是否擁有合法的代碼簽名以及是否允許Scripting等設置了不同的安全級別,用戶可根據需要進行設置。下面這個例子中,使用了ActiveX控制“MSChart.OCX",當用鼠標單擊此控制時,控制的標題將改變。 ID=chart1 WIDTH=400 HEIGHT=200 ALIGN=center> 其中,Object ID是這個ActiveX DLL中某個類的名字。當此WEB頁面被下載并顯示時,MyClass類的方法LogIn將被調用,并在客戶端顯示LogIn對話框。 6.3. Visual Basic 6.0 Microsoft計劃于1998年9月推出Visual Basic 6.0。VB 6.0與VB5.0相比,除繼續支持Internet Explorer Document Object Model(DOM)開發之外,將提供兩個令人興奮的新功能: (1)Dynamic HTML編輯器 開發人員可以象編制普通VB程序一樣,制作DHTML文件或模板。 (2)WebClasses; 開發人員可以在WEB服務器端建立與ASP文件一一對應的WebClass類,每個類都可以訪問ASP對象,在Visual Basic IDE中跟蹤調試,并生成 ISAPI 動態鏈接庫。7. 小結 正如Internet和WEB技術一樣,ActiveX技術的發展日新月異,新的更強大的開發工具使得服務器及客戶端的應用開發、網站建設變得更簡單,并容易擴展和重用。隨著Microsoft的包括Windows NT、Internet Information Server、Active Server Pages以及Microsoft FrontPage、Internet Explorer等組件在內完整的Internet解決方案被廣泛使用,ActiveX技術將會有更大的發展。
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請
點擊舉報 。