In-Process Server

Wenn Sie eine OLE-Serveranwendung als prozessinternen Server implementieren – eine DLL, die im Prozessbereich der Containeranwendung ausgeführt wird – statt als lokaler Server – eine EXE, die in einem eigenen Prozessbereich ausgeführt wird – wird die Kommunikation zwischen Container und Server vereinfacht, da die Kommunikation zwischen den beiden in Form normaler Funktionsaufrufe erfolgen kann. Remoteprozeduraufrufe sind nicht erforderlich, da die beiden Anwendungen im selben Prozessbereich ausgeführt werden. Wie zu erwarten, sind die Objekte, die das Marshallen von Parametern verwalten, ebenfalls unnötig, obwohl sie möglicherweise innerhalb der DLL aggregiert werden, ohne die Kommunikation zwischen Container und Server zu beeinträchtigen.

Wenn eine OLE-Serveranwendung als Prozessserver implementiert wird, ist kein separater Objekthandler erforderlich, da sich der Server selbst im Prozessbereich des Clients befindet. Der Standard Unterschied zwischen einem Prozessserver und einem Objekthandler besteht darin, dass der Server das Objekt in einem ausgeführten Zustand verwalten kann, während der Handler dies nicht kann. Eine Folge dieses Unterschieds ist, dass ein Server eine Benutzeroberfläche zum Bearbeiten des ausgeführten Objekts bereitstellen muss, während ein Handler diese Anforderung an den Server des Objekts delegiert. Beim Erstellen eines Prozessservers können Sie den OLE-Standardhandler aggregieren, sodass er grundlegende Aufgaben wie Anzeige, Speicher und Benachrichtigungen verarbeiten kann, während Sie nur die Dienste implementieren, die der Handler entweder nicht bereitstellt oder nicht in der von Ihnen benötigten Weise implementiert.

Weitere Informationen finden Sie in den folgenden Themen:

Zusammengesetzte Dokumente