Objekthandler

Wenn es sich bei einer OLE-Serveranwendung um einen lokalen Server handelt, d. h., dass sie in einem eigenen Prozessbereich ausgeführt wird, muss die Kommunikation zwischen Container und Server über Prozessgrenzen hinweg erfolgen. Da dieser Prozess teuer ist, basiert OLE auf einem Ersatzobjekt, das in den Prozessbereich des Containers geladen wird, um im Namen einer lokalen Serveranwendung zu handeln. Dieses Ersatzobjekt, das als Objekthandler bezeichnet wird, stellt Containeranforderungen bereit, die nicht die Aufmerksamkeit der Serveranwendung erfordern, z. B. Zeichnungsanforderungen. Wenn ein Container etwas anfordert, das der Objekthandler nicht bereitstellen kann, kommuniziert der Handler mithilfe des Out-of-Process-Kommunikationsmechanismus von COM mit der Serveranwendung.

Ein Objekthandler ist für eine Objektklasse eindeutig. Wenn Sie eine instance eines Handlers für eine Klasse erstellen, können Sie ihn nicht für eine andere Klasse verwenden. Bei Verwendung für ein Verbunddokument implementiert der Objekthandler die containerseitigen Datenstrukturen, wenn remote auf Objekte einer bestimmten Klasse zugegriffen wird.

OLE stellt einen Standardobjekthandler bereit, den lokale Serveranwendungen verwenden können. Für Anwendungen, die spezielle Verhaltensweisen erfordern, können Entwickler einen benutzerdefinierten Handler implementieren, der entweder den Standardhandler ersetzt oder verwendet, um bestimmte Standardverhalten bereitzustellen.

Ein Objekthandler ist eine DLL, die mehrere interagierende Komponenten enthält. Zu diesen Komponenten gehören Remotingelemente zum Verwalten der Kommunikation zwischen dem Handler und der zugehörigen Serveranwendung, ein Cache zum Speichern der Daten eines Objekts sowie Informationen dazu, wie diese Daten formatiert und angezeigt werden sollen, sowie ein Steuernde Objekt, das die Aktivitäten der anderen Komponenten der DLL koordiniert. Wenn ein Objekt ein Link ist, enthält die DLL auch eine Verknüpfungskomponente oder ein verknüpftes Objekt, das den Namen und den Speicherort der Linkquelle nachverfolgt.

Der Cache enthält Daten und Präsentationsinformationen, die für den Handler ausreichen, um ein geladenes, aber nicht ausgeführtes Objekt in seinem Container anzuzeigen. OLE stellt eine Implementierung des Caches bereit, der vom Standardobjekthandler von OLE und dem Linkobjekt verwendet wird. Der Cache speichert Daten in Formaten, die vom Objekthandler benötigt werden, um Containerzeichnungsanforderungen zu erfüllen. Wenn sich die Daten eines Objekts ändern, sendet das Objekt eine Benachrichtigung an den Cache, damit eine Aktualisierung erfolgen kann. Weitere Informationen zum Cache finden Sie unter Zwischenspeichern anzeigen.

Weitere Informationen finden Sie in den folgenden Themen:

Zusammengesetzte Dokumente