夢境之域 » 電腦資訊 » [轉]DirectX部件對像模型(COM)


2008-6-23 19:19 現實的夢∼岐
[轉]DirectX部件對像模型(COM)

DirectX是基於COM的一套軟件編程接口。

部件對像模型(Component Object Model, COM)是OLE 的基礎。COM 為OLE提供了編程模型和二進制標準。COM定義並實現了軟部件(如應用程序、數據對像、控件及服務)機制,並把它們統稱為「對像」。每個軟部件對像由數據以及訪問數據的函數組成,訪問軟部件對像數據的函數的集合稱為「接口」。

從這裡可以看出,COM 的設計與C++類非常相似,即一個軟部件對像具有一個內部數據結構和一組外部接口函數,允許通過接口函數對數據進行訪問。因此Microsoft公司把根據COM執行的對象統稱為Windows對象。但Windows對象與C++中的對象有明顯的差別,Windows對像中沒有公共數據,也沒有成員函數,因此不能直接訪問數據,也就是說數據是全封裝的。

對象的提供者或服務器必須指明一個或多個接口的定義,每個接口都是相互關聯的一組函數,執行對象的一個特性。每個對象的一個用戶(或稱為「客戶」)必須擁有一個接口指針才能訪問對象。當客戶有了這個指針後,就可以使用這個對象而無需知道對象的含義,即使客戶運行在不同的進程、不同的機器、不同的操作系統、由不同的軟件開發而使用不同的語言,或者版本不同。

DirectX SDK接口被創建在COM編程層次表中很基礎的一層。每一個代表設備的對象的接口,比如IDirectDraw、IDirectSound、和IDirectPlay,是直接從IUnknown OLE接口中派生下來的。這些基本對象的創建被操作於在該對象的動態連接庫中,要比用Win32中專門用來創建COM對象的CoCreateInstance函數要好得多。

特別的是,DirectX SDK對像模型為每一個設備提供一個主要的對象。其它的設備對象是由這個主要對像派生下來的。例如,DirectDraw對像代表顯示設備。你可以用它來創建代表顯存的主頁面(DirectDrawSurface)對象,和代表硬件調色板的調色板(DirectDrawPalette)對像;相似的,DirectSound對像代表聲卡,並且創建DirectSoundbuffer對像來代表聲卡上的聲音數據。

頁: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.