Freigeben über


Behandeln der WM_GETOBJECT-Nachricht

Sowohl Microsoft Active Accessibility als auch Microsoft Benutzeroberflächenautomatisierung die WM_GETOBJECT-Nachricht an eine Server- oder Anbieteranwendung senden, um Informationen zu einem zugänglichen Objekt abzurufen, das vom Server oder Anbieter unterstützt wird. Clients senden WM_GETOBJECT nie direkt. Stattdessen sendet Microsoft Active Accessibility diese Nachricht, wenn ein Client die Funktionen AccessibleObjectFromPoint, AccessibleObjectFromEvent und AccessibleObjectFromWindow aufruft . Benutzeroberflächenautomatisierung sendet WM_GETOBJECT, wenn ein Client IUIAutomation::ElementFromHandle, ElementFromPoint und GetFocusedElement aufruft und ereignisse verarbeitet, für die sich der Client registriert hat.

Microsoft Active Accessibility oder Benutzeroberflächenautomatisierung gibt den Typ des Objekts an, für das Informationen benötigt werden, indem ein Wert namens Objektbezeichner mit der WM_GETOBJECT-Nachricht übergeben wird. Wenn die Nachricht empfangen wird, untersucht der Server oder Anbieter den Objektbezeichner, um zu bestimmen, wie auf die Nachricht reagiert werden soll. Die Antwort hängt davon ab, ob die empfangende Anwendung Microsoft Active Accessibility (ein Server), Benutzeroberflächenautomatisierung (ein Anbieter) oder keines von beiden für das angegebene Objekt implementiert.

  • Wenn die empfangende Anwendung ein Microsoft Active Accessibility-Server ist und die WM_GETOBJECT-Nachricht einen Objektbezeichner von OBJID_CLIENT enthält, sollte der Server den Wert zurückgeben, der durch Übergeben der IAccessible-Schnittstelle des Objekts an die LresultFromObject-Funktion abgerufen wurde.
  • Wenn es sich bei der empfangenden Anwendung um einen Benutzeroberflächenautomatisierung Anbieter handelt und der Objektbezeichner UiaRootObjectId lautet, sollte der Anbieter die IRawElementProviderSimple-Schnittstelle des -Objekts zurückgeben. Der Anbieter ruft die Schnittstelle ab, indem er die Funktion UiaReturnRawElementProvider aufruft.
  • Wenn die empfangende Anwendung weder Microsoft Active Accessibility noch Benutzeroberflächenautomatisierung implementiert, sollte sie die WM_GETOBJECT Nachricht an die DefWindowProc-Funktion übergeben. Durch Das Übergeben der Nachricht kann das Barrierefreiheitsframework ermitteln, ob ein Proxy für das angegebene Objekt verfügbar ist.
  • Wenn der Objektbezeichner weder OBJID_CLIENT noch UiaRootObjectId ist, sollte die empfangende Anwendung die WM_GETOBJECT Nachricht an die DefWindowProc-Funktion übergeben. Durch Das Übergeben der Nachricht kann das Barrierefreiheitsframework die Standardanbieter für Standardbenutzeroberflächenelemente verwenden.

Microsoft Active Accessibility and Benutzeroberflächenautomatisierung können benutzerdefinierte Objektbezeichner in einer WM_GETOBJECT Nachricht übergeben, um anwendungsdefinierte Werte oder Objekte von einem Server oder Anbieter abzurufen. Der OBJID_NATIVEOM- oder OBJID_QUERYCLASSNAMEIDX-Objektbezeichner kann verwendet werden, um eine native Objektmodellschnittstelle abzurufen oder ein bestimmtes Proxyobjekt anzufordern, das von Oleacc.dll unterstützt wird.

Durch die Behandlung der OBJID_CLIENT- und UiaRootObjectId-Objektbezeichner kann eine Microsoft Active Accessibility-Serverimplementierung parallel zu einer Benutzeroberflächenautomatisierung Anbieterimplementierung vorhanden sein. Da die meisten Windows-Standardsteuerelemente und allgemeine Steuerelemente, die von der allgemeinen Steuerelementbibliothek (ComCtl32.dll) implementiert werden, weder Microsoft Active Accessibility noch Benutzeroberflächenautomatisierung implementieren, verarbeiten diese Steuerelemente in der Regel die WM_GETOBJECT Meldung nicht. Stattdessen überprüft das Microsoft Active Accessibility oder Benutzeroberflächenautomatisierung Framework, ob ein Proxyobjekt für ein bestimmtes UI-Element verfügbar ist. Andernfalls stellt es das Standardproxyobjekt für das Hostfensterobjekt bereit.