OLE-Hintergrund: Container und Server
Eine Containeranwendung ist eine Anwendung, die eingebettete oder verknüpfte Elemente in eigene Dokumente integrieren kann. Die von einer Containeranwendung verwalteten Dokumente müssen in der Lage sein, OLE-Dokumentkomponenten sowie die von der Anwendung selbst erstellten Daten zu speichern und anzuzeigen. Eine Containeranwendung muss es Benutzern auch ermöglichen, neue Elemente einzufügen oder vorhandene Elemente zu bearbeiten, indem Serveranwendungen bei Bedarf aktiviert werden. Die Anforderungen an die Benutzeroberfläche einer Containeranwendung sind im Artikel "Container: Benutzeroberflächenprobleme" aufgeführt.
Eine Serveranwendung oder Komponentenanwendung ist eine Anwendung, die OLE-Dokumentkomponenten für die Verwendung durch Containeranwendungen erstellen kann. Serveranwendungen unterstützen in der Regel Das Ziehen und Ablegen oder Kopieren ihrer Daten in die Zwischenablage, sodass eine Containeranwendung die Daten als eingebettetes oder verknüpftes Element einfügen kann. Eine Anwendung kann sowohl ein Container als auch ein Server sein.
Die meisten Server sind eigenständige Anwendungen oder vollständige Server; sie können entweder als eigenständige Anwendungen ausgeführt werden oder von einer Containeranwendung gestartet werden. Ein Miniserver ist ein spezieller Serveranwendungstyp, der nur von einem Container gestartet werden kann. Sie kann nicht als eigenständige Anwendung ausgeführt werden. Microsoft Draw- und Microsoft Graph-Server sind Beispiele für Miniserver.
Container und Server kommunizieren nicht direkt. Stattdessen kommunizieren sie über die DYNAMIC Link Libraries (DLL) des OLE-Systems. Diese DLLs stellen Funktionen bereit, die Container und Server aufrufen, und die Container und Server stellen Rückruffunktionen bereit, die von den DLLs aufgerufen werden.
Mithilfe dieser Kommunikationsmittel muss ein Container die Implementierungsdetails der Serveranwendung nicht kennen. Damit kann ein Container Elemente akzeptieren, die von jedem Server erstellt wurden, ohne die Servertypen definieren zu müssen, mit denen er funktionieren kann. Daher kann der Benutzer einer Containeranwendung zukünftige Anwendungen und Datenformate nutzen. Wenn es sich bei diesen neuen Anwendungen um OLE-Komponenten handelt, kann ein zusammengesetztes Dokument Elemente integrieren, die von diesen Anwendungen erstellt wurden.
Siehe auch
OLE-Hintergrund
OLE-Hintergrund: MFC-Implementierung
Container
Server
Container: Clientelemente
Server: Serverelemente