元件物件模型

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 問題: