Das Komponentenobjektmodell
Das Microsoft Component Object Model (COM) ist ein plattformunabhängiges, verteiltes, objektorientiertes System zum Erstellen binärer Softwarekomponenten, die interagieren können. COM ist die Grundlegende Technologie für Ole von Microsoft (Zusammengesetzte Dokumente), ActiveX (internetfähige Komponenten) sowie andere.
Um COM (und daher alle COM-basierten Technologien) zu verstehen, ist es wichtig zu verstehen, dass es sich nicht um eine objektorientierte Sprache, sondern um einen Standard handelt. Die COM gibt auch nicht an, wie eine Anwendung strukturiert werden soll; Die Details zu Sprache, Struktur und Implementierung bleiben dem Anwendungsentwickler überlassen. Stattdessen gibt COM ein Objektmodell und Programmieranforderungen an, mit denen COM-Objekte (auch ALS COM-Komponenten bezeichnet oder manchmal einfach Objekte) mit anderen Objekten interagieren können. Diese Objekte können sich innerhalb eines einzelnen Prozesses, in anderen Prozessen befinden und sich sogar auf Remotecomputern befinden. Sie können in verschiedenen Sprachen geschrieben werden und strukturell ziemlich unterschiedlich sein, weshalb COM als binärer Standard bezeichnet wird; ein Standard, der angewendet wird, nachdem ein Programm in Binärcode übersetzt wurde.
Die einzige Sprachanforderung für COM besteht darin, dass Code in einer Sprache generiert wird, die Strukturen von Zeigern erstellen kann und entweder explizit oder implizit Funktionen über Zeiger aufruft. Objektorientierte Sprachen wie C++ und Smalltalk bieten Programmiermechanismen, die die Implementierung von COM-Objekten vereinfachen, aber Sprachen wie C, Java und VBScript können zum Erstellen und Verwenden von COM-Objekten verwendet werden.
COM definiert den wesentlichen Charakter eines COM-Objekts. Im Allgemeinen besteht ein Softwareobjekt aus einer Reihe von Daten und den Funktionen, die die Daten bearbeiten. Ein COM-Objekt ist eines, in dem der Zugriff auf die Daten eines Objekts ausschließlich über eine oder mehrere Sätze verwandter Funktionen erreicht wird. Diese Funktionssätze heißen Schnittstellen, und die Funktionen einer Schnittstelle heißen Methoden. Darüber hinaus erfordert COM, dass die einzige Möglichkeit, Zugriff auf die Methoden einer Schnittstelle zu erhalten, über einen Zeiger auf die Schnittstelle erfolgt.
Neben der Angabe des grundlegenden Binärobjektstandards definiert COM bestimmte grundlegende Schnittstellen, die funktionen gemeinsam für alle COM-basierten Technologien bereitstellen, und es stellt eine kleine Anzahl von Funktionen bereit, die alle Komponenten erfordern. COM definiert außerdem, wie Objekte über eine verteilte Umgebung zusammenarbeiten und Sicherheitsfeatures hinzugefügt haben, um System- und Komponentenintegrität bereitzustellen.
In den folgenden Themen in diesem Abschnitt werden grundlegende COM-Probleme im Zusammenhang mit dem Entwerfen von COM-Objekten beschrieben:
- COM-Objekte und -Schnittstellen
- Verwenden und Implementieren von IUnknown
- Wiederverwenden von Objekten
- Die COM-Bibliothek
- Verwalten der Speicherzuordnung