Freigeben über


In-Process Server

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

Wenn eine OLE-Serveranwendung als In-Process-Server implementiert wird, ist kein separater Objekthandler erforderlich, da sich der Server selbst im Prozessbereich des Clients befindet. Der Hauptunterschied zwischen einem In-Process-Server und objekthandler besteht darin, dass der Server das Objekt in einem ausgeführten Zustand verwalten kann, während der Handler nicht möglich ist. 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 In-Process-Servers können Sie im OLE-Standardhandler aggregieren, sodass sie grundlegende Aufgaben verarbeiten kann, z. B. Anzeige, Speicher und Benachrichtigungen, während Sie nur die Dienste implementieren, die der Handler nicht bereitstellt oder nicht in der von Ihnen benötigten Weise implementiert.

Weitere Informationen finden Sie in den folgenden Themen:

zusammengesetzte Dokumente