COM-Technologien im Überblick

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu COM-Grundlagen - Index


Delphi stellt Experten und Klassen bereit, mit denen sich Anwendungen, die auf dem Component Object Model (COM) von Microsoft beruhen, einfach implementieren lassen. Mit Hilfe dieser Experten können Sie COM-basierte Klassen und Komponenten zur Verwendung in einer einzelnen Anwendung erstellen oder voll funktionsfähige COM-Clients oder Server erzeugen, die COM-Objekte, Automatisierungsserver (einschließlich Active Server Objects), ActiveX-Steuerelemente oder ActiveForm-Objekte implementieren.

COM ist ein sprachunabhängiges Software-Komponenten-Modell, das die Interaktion zwischen Software-Komponenten und Windows-Anwendungen ermöglichen soll. Die Bedeutung von COM besteht im Wesentlichen darin, dass dieses Modell durch klar definierte Schnittstellen die Kommunikation zwischen Komponenten, zwischen Anwendungen und zwischen Clients sowie Servern ermöglicht. Schnittstellen bieten Clients die Möglichkeit, von einer COM-Komponente Informationen über die zur Laufzeit unterstützten Funktionen abzurufen. Um eine Komponente mit zusätzlichen Features auszustatten, fügen Sie einfach eine weitere Schnittstelle hinzu.

Eine Anwendung kann auf die Schnittstellen von COM-Komponenten, die sich auf demselben Computer wie die Anwendung oder auf einem anderen in das Netzwerk eingebundenen Computer befinden, zugreifen. Im zweiten Fall geschieht dies über einen Mechanismus, der als Distributed COM oder DCOM bezeichnet wird. Weitere Informationen über Clients, Server und Schnittstellen finden Sie unter Elemente einer COM-Anwendung.

COM als Spezifikation und Implementierung

COM stellt sowohl eine Spezifikation als auch eine Implementierung dar. In der COM-Spezifikation werden die Erstellung von Objekten und die Kommunikation zwischen Objekten definiert. Nach Maßgabe dieser Spezifikation können COM-Objekte in unterschiedlichen Sprachen erstellt sowie in unterschiedlichen Prozessräumen und auf unterschiedlichen Plattformen ausgeführt werden. Solange die Objekte spezifikationskonform sind, können sie miteinander kommunizieren. Auf diese Weise kann älterer Quelltext (Legacy-Code) als Komponente mit neuen Komponenten integriert werden, die in objektorientierten Sprachen geschrieben wurden.

Die COM-Implementierung gehört zum Win32-Subsystem, das eine Reihe von zentralen Diensten zur Verfügung stellt, welche die Grundspezifikation unterstützen. Die COM-Bibliothek enthält eine Reihe von Standard-Schnittstellen, welche die Hauptfunktionen eines COM-Objekts definieren. In der Bibliothek sind einige API-Funktionen enthalten, mit deren Hilfe COM-Objekte erstellt und verwaltet werden.

Durch die Verwendung von Delphi-Experten und VCL-Objekten in Ihrer Anwendung greifen Sie auf die Delphi-Implementierung der COM-Spezifikation zu. Zusätzlich stellt Delphi noch kapselnde Komponenten (Wrapper) für diejenigen COM-Dienste zur Verfügung, die nicht direkt implementiert werden. Diese Wrapper sind in der Unit ComObj definiert, die API-Definitionen sind in der Unit AxCtrls enthalten.

Hinweis: Die Schnittstellen sowie die Sprache von Delphi sind an der COM-Spezifikation ausgerichtet. Delphi implementiert Objekte entsprechend den COM-Spezifikationen durch eine Anzahl von Klassen, das sog. Delphi ActiveX-Framework (DAX). Diese Klassen sind in den Units AxCtrls, OleCtrls und OleServer enthalten. Die Delphi-Schnittstelle für die COM-API befindet sich in ActiveX.pas und ComSvcs.pas.

COM-Erweiterungen

Im Laufe seiner Entwicklung wurde das COM-Modell weit über die grundlegenden COM-Dienste hinaus erweitert. COM dient als Basis für andere Technologien wie etwa Automatisierung, ActiveX-Steuerelemente und Active-Verzeichnisse. Einzelheiten hierzu finden Sie unter COM-Erweiterungen.

Delphi stellt Experten zum schnellen und einfachen Implementieren von Anwendungen zur Verfügung, welche die oben genannten Technologien in der Delphi-Umgebung verkörpern. Einzelheiten hierzu finden Sie im Abschnitt Implementieren von COM-Objekten mit Hilfe der Experten.

Themen

Siehe auch