Verbunddokumente
OLE-Verbunddokumente ermöglichen Es Benutzern, die in einer einzelnen Anwendung arbeiten, Daten zu bearbeiten, die in verschiedenen Formaten geschrieben und aus mehreren Quellen abgeleitet wurden. Beispielsweise kann ein Benutzer in ein Textverarbeitungsdokument einen Graphen einfügen, der in einer zweiten Anwendung erstellt wurde, und ein Soundobjekt, das in einer dritten Anwendung erstellt wurde. Das Aktivieren des Graphen bewirkt, dass die zweite Anwendung ihre Benutzeroberfläche oder mindestens den Teil mit den Tools, die zum Bearbeiten des Objekts erforderlich sind, geladen. Wenn Sie das Soundobjekt aktivieren, wird es von der dritten Anwendung wieder verwendet. In beiden Fällen kann ein Benutzer Daten aus externen Quellen innerhalb des Kontexts eines einzelnen Dokuments bearbeiten.
Die OLE-Verbunddokumenttechnologie beruht auf einer Grundlage, die aus COM, strukturiertem Speicher und einheitlicher Datenübertragung besteht. Wie unten zusammengefasst, spielt jede dieser Kerntechnologien eine wichtige Rolle in OLE-Verbunddokumenten:
-
Com
-
Ein zusammengesetztes Dokumentobjekt ist im Wesentlichen ein COM-Objekt, das in ein vorhandenes Dokument eingebettet oder mit diesem verknüpft werden kann. Als COM-Objekt macht ein zusammengesetztes Dokumentobjekt die IUnknown-Schnittstelle verfügbar, über die Clients Zeiger auf ihre anderen Schnittstellen abrufen können, darunter mehrere, z. B. IOleObject, IOleLinkund IViewObject2,die spezielle Features bereitstellen, die für zusammengesetzte Dokumentobjekte eindeutig sind.
-
Strukturierte Storage
-
Ein zusammengesetztes Dokumentobjekt muss die IPersistStorage- oder optional IPersistStream-Schnittstellen implementieren, um seinen eigenen Speicher zu verwalten. Ein Container, der zum Erstellen zusammengesetzter Dokumente verwendet wird, muss die IStorage-Schnittstelle zur Verfügung stellen, über die Objekte Daten speichern und abrufen. Container stellen fast immer Instanzen von IStorage zur Verfügung, die aus der Ole-Implementierung von Verbunddateien ermittelt wurden. Container müssen auch die IPersistStorage- und/oder IPersistStream-Schnittstellen eines Objekts verwenden.
-
Uniform Data Transfer
-
Anwendungen, die verbundgebundene Dokumente unterstützen, müssen IDataObject implementieren, da eingebettete objekte und verknüpfte Objekte als Daten beginnen, die mithilfe spezieller OLE-Zwischenablageformate übertragen wurden, und nicht als standarde Microsoft Windows-Zwischenablageformate. Anders ausgedrückt: Das Formatieren von Daten als eingebettetes oder verknüpftes Objekt ist einfach eine weitere Option, die vom einheitlichen Datenübertragungsmodell von OLE bereitgestellt wird.
Die Verbunddokumenttechnologie von OLE profitiert sowohl von Softwareentwicklern als auch von Benutzern. Anstatt sich zu fühlen, jedes mögliche Feature in eine einzelne Anwendung zu gieren, können Softwareentwickler nun, wenn sie möchten, kleinere, fokussiertere Anwendungen entwickeln, die sich auf andere Anwendungen verlassen, um zusätzliche Features zur Verfügung zu stellen. In Fällen, in denen ein Softwareentwickler entscheidet, einer Anwendung Funktionen zur Verfügung zu stellen, die über die Kernfunktionen hinausgehen, kann der Entwickler diese zusätzlichen Dienste als separate DLLs implementieren, die nur dann in den Arbeitsspeicher geladen werden, wenn ihre Dienste erforderlich sind. Benutzer profitieren von kleinerer, schnellerer, fähiger Software, die sie nach Bedarf mischen und abordnen können, und bearbeiten alle erforderlichen Komponenten innerhalb eines einzelnen Masterdokuments.
Weitere Informationen finden Sie in den folgenden Themen:
- Container und Server
- Verknüpfen und Einbetten
- Objekthandler
- In-Process-Server
- Verknüpfte Objekte und Moniker
- Benachrichtigungen
- Verbunddokumentschnittstellen
- Objektzustände
- Implementieren In-Place Aktivierung
- Erstellen verknüpfter und eingebetteter Objekte aus vorhandenen Daten
- Anzeigen der Zwischenspeicherung