Freigeben über


Verknüpfte Objekte und Moniker

Verknüpfte Objekte wie 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 fungiert wie ein Prozessserver. Wenn ein verknüpftes Objekt beispielsweise aktiviert wird, sucht und startet die OLE-Serveranwendung, die die Verknüpfungsquelle ist.

Der Handler eines verknüpften Objekts besteht aus zwei Hauptkomponenten: der Handlerkomponente und der Verknüpfungskomponente. Die Handlerkomponente enthält die Steuerungs- und Remotingelemente und Funktionen ähnlich wie ein Handler für ein eingebettetes Objekt. Die Verknüpfungskomponente verfügt über einen eigenen Controller und Cache und ermöglicht den Zugriff auf den strukturierten Speicher des Objekts. Der Controller für verknüpfungskomponenten unterstützt die Quellbenennung über die Verwendung von Monikern und die Bindung, den Prozess der Suche und Ausführung der Linkquelle. (Weitere Informationen zu Monikern und Bindung finden Sie unter Das Component-Objektmodell.)

Wenn ein Benutzer zunächst ein verknüpftes Objekt erstellt oder ein vorhandenes objekt aus dem Speicher lädt, lädt der Container eine Instanz der Verknüpfungskomponente in den Arbeitsspeicher zusammen mit dem Objekthandler. Die Verknüpfungskomponente stellt Schnittstellen bereit, insbesondere IOleLink-, die das Objekt als Link identifizieren und es ermöglichen, die Benennung, Nachverfolgung und Aktualisierung der Verknüpfungsquelle 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 dieser Schnittstelle kann ein Container bestimmen, ob ein bestimmtes Objekt eingebettet oder verknüpft ist. Die wichtigste Funktion, die von IOleLink bereitgestellt wird, 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 systemeigenen 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 verbunddokument, das ein verknüpftes Objekt enthält, gespeichert wird, werden die Daten der Verknüpfung mit der Verknüpfungsquelle und nicht mit dem Container gespeichert. Nur Informationen zu Name und Speicherort werden zusammen mit dem Zusammengesetzten Dokument 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 Verknüpfungsquellen 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, wodurch der Benutzer die Originale jedes Einbettungsobjekts nachverfolgen muss, mit dem eine Verknüpfung gewünscht wird. Wenn ein Benutzer beispielsweise ein Microsoft Excel-Arbeitsblatt in Microsoft Word einbetten möchte und das Arbeitsblatt eine in Paintbrush erstellte Bitmap enthält, kann der Benutzer eine Verknüpfung mit einer Kopie der im Arbeitsblatt enthaltenen Bitmap statt mit dem Original herstellen.

zusammengesetzte Dokumente

In-Process Server

Objekthandler