Verwenden von OBJID _ NATIVEOM zum Verfügbar machen einer nativen Schnittstelle für ein Fenster
Mit dieser Technik können Clients ein benutzerdefiniertes Objekt für ein Fenster erhalten. Server können damit einen Zeiger auf ein benutzerdefiniertes Dokumentobjekt für ein Fenster verfügbar machen.
So machen Sie eine systemeigene Objektmodellschnittstelle für ein Fenster (Server) verfügbar
- Behandeln Sie die WM _ GETOBJECT-Nachricht in der Fensterprozedur. Wenn der lParam-Wert OBJID _ NATIVEOM ist,geben Sie mithilfe von LresultFromObjecteinen Schnittstellenzeiger auf das benutzerdefinierte Objekt zurück.
- Geben Sie den Schnittstellenzeiger nach dem Aufruf von LresultFromObjectfrei, falls zutreffend. Weitere Informationen finden Sie unter LresultFromObject.
Clients können einen Zeiger auf dieses benutzerdefinierte Objekt abrufen.
So erhalten Sie einen Zeiger für ein benutzerdefiniertes Objekt für ein Fenster (Clients)
- Rufen Sie AccessibleObjectFromWindow auf, und übergeben Sie OBJID _ NATIVEOM als zweiten Parameter.
Beachten Sie die folgenden Probleme bei dieser Technik:
- Diese Technik ähnelt der Rückgabe eines IAccessible-Schnittstellenzeigers, mit Ausnahme der verwendeten Objekt-ID und der Tatsache, dass LresultFromObject anstelle von IAccessible ein benutzerdefiniertes Objekt zurückgibt.
- Serverentwickler müssen möglicherweise Informationen veröffentlichen, die es Clients ermöglichen, das HWND eindeutig zu identifizieren, damit sie es finden können, bevor sie AccessibleObjectFromWindow auf seinem Fensterhand handle aufrufen.
- Implementieren Sie die IAccessible-Schnittstelle nicht für das zurückgegebene benutzerdefinierte Objekt. Wenn Sie dies tun, behandelt OLEACC dies als IAccessible-Standard und verhindert möglicherweise die Verwendung der benutzerdefinierten Schnittstellen.
- Damit die Schnittstellen für das zurückgegebene Objekt prozessübergreifend verwendet werden können, müssen sie möglicherweise bei Component Object Model (COM) registriert werden.
Diese Technik wird von mehreren Komponenten Microsoft Office unterstützt. Weitere Informationen finden Sie unter AccessibleObjectFromWindow.