元件物件模型
Microsoft元件物件模型 (COM) 是一個平台獨立、分散式、面向對象的系統,可用來建立可互動的二進位軟體元件。 COM 是Microsoft OLE(復合檔)、ActiveX(啟用因特網的元件)以及其他元件的基礎技術。
若要瞭解 COM(因此所有以 COM 為基礎的技術),請務必瞭解它不是面向物件語言,而是標準。 COM 也不會指定應用程式的結構化方式;語言、結構和實作詳細數據會留給應用程式開發人員。 相反地,COM 會指定物件模型和程序設計需求,讓 COM 物件(也稱為 COM 元件,有時只是 物件)與其他對象互動。 這些物件可以位於單一進程、其他進程中,甚至可以在遠端計算機上。 它們可以以不同的語言撰寫,而且在結構上可能相當不同,這就是為什麼 COM 稱為 二進位標準:在程序轉譯為二進位計算機程式代碼之後套用的標準。
COM 的唯一語言需求是,程式代碼是以可建立指標結構的語言產生,而且明確或隱含地透過指標呼叫函式。 C++和 Smalltalk 等面向物件語言提供簡化 COM 物件實作的程式設計機制,但 C、Java 和 VBScript 等語言可用來建立和使用 COM 物件。
COM 定義 COM 物件的基本本質。 一般而言,軟體物件是由一組數據和作數據的函式所組成。 COM 對像是透過一或多個相關函式獨佔方式存取對象數據的物件。 這些函式集稱為 介面,而 介面的函式則稱為 方法。 此外,COM 要求存取介面方法的唯一途徑是透過指向該介面的指標。
除了指定基本二進位物件標準之外,COM 還定義某些基本介面,這些介面提供所有 COM 技術通用的函式,並提供所有元件所需的少量函式。 COM 也會定義物件如何透過分散式環境共同運作,並新增安全性功能來協助提供系統和元件完整性。
本節中的下列主題描述與設計 COM 物件相關的基本 COM 問題: