Client/Server-Kommunikation

Der WinEvents-Mechanismus bietet Eine Möglichkeit für Server, einfach mit Microsoft Active Accessibility-Clients zu kommunizieren. Clients sammeln häufig Informationen, indem sie auf WinEvents reagieren (z. B. dem Fokus folgen), 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. Dazu 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 mithilfe von 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 Er AccessibleObjectFromEvent oder andere funktionen zum Abrufen zugänglicher Objekte aufruft. 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 Reaktion auf WM_GETOBJECT gibt die Serveranwendung entweder null oder einen Wert zurück, der als einmaliger Verweis auf das Objekt fungiert, das das Ereignis generiert hat.
  • Wenn der Server null zurückgibt, erstellt Microsoft Active Accessibility ein Proxyobjekt und gibt seine Adresse an den Client weiter. Andernfalls verwendet Microsoft Active Accessibility diesen Verweis, um die Adresse einer Objektschnittstelle wie IAccessible oder IDispatch abzurufen, 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.

In diesem Abschnitt