Freigeben über


Objekthandler

Wenn es sich bei einer OLE-Serveranwendung um einen lokalen Server handelt, was bedeutet, dass sie im 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 wurde, um im Auftrag einer lokalen Serveranwendung zu handeln. Dieses surrogate-Objekt, das als Objekthandlerbezeichnet wird, Dienstcontaineranforderungen, die die Aufmerksamkeit der Serveranwendung nicht erfordern, z. B. Zeichenanforderungen. Wenn ein Container etwas anfordert, das der Objekthandler nicht bereitstellen kann, kommuniziert der Handler mit der Serveranwendung mithilfe des Out-of-Process-Kommunikationsmechanismus von COM.

Ein Objekthandler ist für eine Objektklasse eindeutig. Wenn Sie eine Instanz eines Handlers für eine Klasse erstellen, können Sie sie nicht für eine andere verwenden. Bei Verwendung für ein zusammengesetztes Dokument implementiert der Objekthandler die containerseitigen Datenstrukturen, wenn Remotezugriff auf Objekte einer bestimmten Klasse erfolgt.

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 mit mehreren interagierenden Komponenten. Zu diesen Komponenten gehören Remotingteile zum Verwalten der Kommunikation zwischen dem Handler und der Serveranwendung, einem Cache zum Speichern der Daten eines Objekts sowie Informationen dazu, wie diese Daten formatiert und angezeigt werden sollen, sowie ein Steuerelementobjekt, 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 verknüpftes Objekt, wodurch der Name und der Speicherort der Linkquelle nachverfolgt werden.

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 und dem Linkobjekt verwendet wird. Der Cache speichert Daten in Formaten, die vom Objekthandler benötigt werden, um Container-Draw-Anforderungen zu erfüllen. Wenn sich die Daten eines Objekts ändern, sendet das Objekt eine Benachrichtigung an den Cache, sodass eine Aktualisierung erfolgen kann. Weitere Informationen zum Cache finden Sie unter Ansicht zwischenspeichern.

Weitere Informationen finden Sie im folgenden Thema:

zusammengesetzte Dokumente