天天看點

Delphi COM程式設計技術五(ActiveX技術)

 一、Active技術介紹:

1、Active文檔涉及到的接口

1>、IOleDocument接口:此接口是ActiveX文檔伺服器中的接口,它使一個文檔對象能夠與其包容器進行通信,并用其資料去建立視圖,該接口也可以使一個文檔對象能夠枚舉其視圖并為包容器提供相關資訊,如是否支援多視等。

2>、IOleDocumentView接口:使一個包容器程式能夠通過文檔對象的支援而與每一個視圖進行通信。

3>、IOleCommandTarget接口:可以使伺服器對象及其包容器程式分發指令。

4>、IPrint接口:則可以使任意的複合文檔和特定的活動文檔能夠支援列印。

5>、IOleDocumentSite接口:此接口是ActiveX文檔包容器中的接口,它使一個已經作為文檔對象實作的文檔在現場激活對象時繞過通常的激活次序,并直接訓示其客戶站點作為一個文檔對象而将其激活。

6>、文檔站點:是一個具有特殊功能的客戶站點,它能直接訓示其客戶站點作為一個文檔對象而将其激活。包容器程式需要為每一個文檔對象提供一個相關的文檔站點,這些站點對象為每一個活動文檔的視圖實作了一個獨立的文檔視圖站點對象。

2、Active控件

    相比之下,ActiveX控件可以說是在所有COM應用中使用最為廣泛的一種COM元件。這種COM元件內建了COM的各種應用基礎,如OLE文檔、自動化、類型庫等。ActiveX控件通常以DLL或OCX形式存在,而且隻能在包容器程式中使用而不可獨立運作,這與ActiveX文檔是不一樣的。

    ActiveX控件是一種實作了一系列特定接口而使其在使用和外觀上更象一個控件的COM元件。ActiveX控件這種技術涉及到了幾乎所有的COM和OLE的技術精華,如可連結對象、統一資料傳輸、OLE文檔、屬性頁、永久存儲以及OLE自動化等。

3、ActiveX控件與自動化服務的聯系與差別:

    ActiveX控件作為基本的界面單元,必須擁有自己的屬性和方法以适合不同特點的程式和向包容器程式提供功能服務,其屬性和方法均由自動化服務的IDispatch接口來支援。

差別一:事件;

    除了屬性和方法外,ActiveX控件還具有差別于自動化服務的一種特性--事件。事件指的是從控件發送給其包容程式的一種通知。與視窗控件通過發送消息通知其擁有者類似,ActiveX控件是通過觸發事件來通知其包容器的。事件的觸發通常是通過控件包容器提供的IDispatch接口來調用自動化對象的方法來實作的。在設計ActiveX控件時就應當考慮控件可能會發生哪些事件以及包容器程式将會對其中的哪些事件感興趣并将這些事件包含進來。

差別二:方法、屬性和事件的來源:

    ActiveX控件與自動化服務的另一個不同之處在于其方法、屬性和事件均有自定義(custom)和庫存(stock)這兩種不同的類型。自定義的方法和屬性也就是是普通的自動化方法和屬性,自定義事件則是自己選取名字和Dispatch ID的事件。而所謂的庫存方法、屬性和事件則是使用了ActiveX控件規定了名字和Dispatch ID的"标準"方法、屬性和事件。

二、Active技術的應用:

1、Delphi 編寫ActiveX控件(OCX控件)的知識和樣例

2、Delphi 編寫ActiveForm窗體工程知識和樣例(開發浏覽器用戶端應用程式)

繼續閱讀