Client-/Serverkommunikation
Mit dem WinEvents-Mechanismus können Server problemlos mit Microsoft Active Accessibility Clients kommunizieren. Clients sammeln Häufig Informationen, indem sie auf WinEvents reagieren (z. B. nach dem Fokus), aber sie können jederzeit Informationen von einem Server anfordern.
Um Informationen für ein barrierefreies Objekt anzufordern, das ein WinEvent generiert, muss ein Client das Ereignis verarbeiten und eine Verbindung mit dem relevanten barrierefreien Objekt herstellen. Hierzu führt der Client die folgenden sechs Schritte aus:
- Ein Server ruft NotifyWinEvent auf, um eine WinEvent-Benachrichtigung für jede Änderung seiner Benutzeroberflächenelemente zu generieren.
- Der WinEvent-Verwaltungscode in USER bestimmt, ob Clientanwendungen eine WinEvent-Hookfunktion mit SetWinEventHook registriert haben, und ruft die registrierte Rückruffunktion auf.
- In seiner Rückruffunktion fordert der Client Zugriff auf das Objekt an, das das Ereignis generiert hat, indem AccessibleObjectFromEvent oder andere funktionen zum Abrufen barrierefreier Objekte aufgerufen werden. Weitere Informationen finden Sie unter Abrufen eines IAccessible-Objekts.
- Diese Microsoft Active Accessibility-API sendet der Serveranwendung eine WM _ GETOBJECT-Nachricht, um das barrierefreie Objekt abzurufen.
- Als Antwort auf WM _ GETOBJECTgibt die Serveranwendung entweder 0 (null) oder einen Wert zurück, der als einmaliger Verweis auf das Objekt fungiert, das das Ereignis generiert hat.
- Wenn der Server 0 (null) zurückgibt, erstellt Microsoft Active Accessibility ein Proxyobjekt und gibt dessen Adresse an den Client weiter. Andernfalls verwendet Microsoft Active Accessibility diesen Verweis, um die Adresse einer Objektschnittstelle wie IAccessible oder IDispatchabzurufen, und gibt diese Adresse an den Client weiter.
Sobald der Client über eine Schnittstellenadresse verfügt, kann er die IAccessible-Eigenschaften und -Methoden des barrierefreien Objekts aufrufen, um Informationen abzurufen.