Verknüpfte Objekte und Moniker
Verknüpfte Objekte, z. B. eingebettete Objekte, basieren auf einem Objekthandler, um mit Serveranwendungen zu kommunizieren. Das verknüpfte Objekt selbst verwaltet jedoch die Benennung und Nachverfolgung von Linkquellen. Das verknüpfte Objekt verhält sich wie ein Prozessserver. Bei Aktivierung sucht ein verknüpftes Objekt beispielsweise die OLE-Serveranwendung, die die Linkquelle ist, und startet es.
Der Handler eines verknüpften Objekts besteht aus zwei Standard Komponenten: der Handlerkomponente und der Verknüpfen-Komponente. Die Handlerkomponente enthält die Steuernden und Remotingteile und Funktionen, die einem Handler für ein eingebettetes Objekt ähneln. Die verknüpfende Komponente verfügt über einen eigenen Controller und Cache und bietet Zugriff auf den strukturierten Speicher des Objekts. Der Controller für verknüpfende Komponenten unterstützt die Benennung von Quellen durch die Verwendung von Monikern und die Bindung, den Prozess des Suchens und Ausführens der Linkquelle. (Weitere Informationen zu Monikern und Bindung finden Sie unter Das Komponentenobjektmodell.)
Wenn ein Benutzer zunächst ein verknüpftes Objekt erstellt oder ein vorhandenes Objekt aus dem Speicher lädt, lädt der Container zusammen mit dem Objekthandler eine instance der Verknüpfungskomponente in den Arbeitsspeicher. Die verknüpfende Komponente stellt Schnittstellen bereit – insbesondere IOleLink –, die das Objekt als Link identifizieren und es ihm ermöglichen, die Benennung, Nachverfolgung und Aktualisierung seiner Linkquelle zu verwalten.
Durch die Implementierung der IOleLink-Schnittstelle stellt ein verknüpftes Objekt seinen Container mit Funktionen bereit, die das Verknüpfen unterstützen. Nur verknüpfte Objekte implementieren IOleLink, und durch Abfragen für diese Schnittstelle kann ein Container bestimmen, ob ein bestimmtes Objekt eingebettet oder verknüpft ist. Die wichtigste von IOleLink bereitgestellte Funktion ermöglicht einem Container die Bindung an die Quelle des verknüpften Objekts, d. h. die Aktivierung der Verbindung mit dem Dokument, in dem die nativen Daten des verknüpften Objekts gespeichert werden. IOleLink definiert auch Funktionen zum Verwalten von Informationen über das verknüpfte Objekt, z. B. zwischengespeicherte Präsentationsdaten und den Speicherort der Linkquelle.
Wenn ein zusammengesetztes Dokument mit einem verknüpften Objekt gespeichert wird, werden die Daten des Links mit der Linkquelle und nicht mit dem Container gespeichert. Zusammen mit dem zusammengesetzten Dokument werden nur Informationen über den Namen und den Speicherort gespeichert. Dieses Verhalten steht im Gegensatz zu einem eingebetteten Objekt, dessen Daten zusammen mit dem des Containers gespeichert werden.
Containeranwendungen können Informationen zu ihren eingebetteten Objekten bereitstellen, sodass letztere oder Teile davon als Linkquellen fungieren können. Durch die Implementierung der Unterstützung für die Verknüpfung mit den eingebetteten Objekten Ihres Containers ermöglichen Sie geschachtelte Einbettungen, sodass der Benutzer nicht die Originale jedes einbettenden Objekts nachverfolgen muss, zu dem ein Link gewünscht ist. Wenn ein Benutzer beispielsweise ein Microsoft Excel-Arbeitsblatt in Microsoft Word einbetten möchte und das Arbeitsblatt eine bitmap enthält, die in Paintbrush erstellt wurde, kann der Benutzer eine Verknüpfung mit einer Kopie der Im Arbeitsblatt enthaltenen Bitmap anstelle des Originals herstellen.
Zugehörige Themen