WM_GETOBJECT Nachricht
Wird sowohl von Microsoft Active Accessibility als auch von Microsoft Benutzeroberflächenautomatisierung gesendet, um Informationen zu einem barrierefreien Objekt in einer Serveranwendung abzurufen.
Anwendungen senden diese Nachricht nie direkt. Microsoft Active Accessibility sendet diese Nachricht als Antwort auf Aufrufe von AccessibleObjectFromPoint, AccessibleObjectFromEvent oder AccessibleObjectFromWindow. Serveranwendungen behandeln diese Meldung jedoch. Benutzeroberflächenautomatisierung sendet diese Nachricht als Antwort auf Aufrufe von IUIAutomation::ElementFromHandle, ElementFromPoint und GetFocusedElement sowie bei der Behandlung von Ereignissen, für die sich ein Client registriert hat.
dwFlags = (WPARAM)(DWORD) wParam;
dwObjId = (LPARAM)(DWORD) lParam;
Parameter
-
dwFlags
-
Stellt zusätzliche Informationen zur Nachricht bereit und wird nur vom System verwendet. Server übergeben dwFlags als wParam-Parameter im Aufruf von LresultFromObject , wenn die Nachricht verarbeitet wird.
-
dwObjId
-
Objektbezeichner. Dieser Wert ist eine der Objektbezeichnerkonstanten oder ein benutzerdefinierter Objektbezeichner. Eine Serveranwendung muss diesen Wert überprüfen, um den Typ der angeforderten Informationen zu identifizieren. Vor dem Vergleichen dieses Werts mit den OBJID_-Werten muss der Server ihn in DWORD umwandeln. andernfalls kann unter 64-Bit-Windows die Zeichenerweiterung des lParam den Vergleich beeinträchtigen.
- Wenn dwObjId einer der OBJID_ Werte ist, z. B. OBJID_CLIENT, ist die Anforderung für ein Microsoft Active Accessibility-Objekt, das IAccessible implementiert.
- Wenn dwObjId gleich UiaRootObjectId ist, gilt die Anforderung für einen Benutzeroberflächenautomatisierung Anbieter. Wenn der Server Benutzeroberflächenautomatisierung implementiert, sollte er einen Anbieter mit der Funktion UiaReturnRawElementProvider zurückgeben.
- Wenn dwObjIdOBJID_NATIVEOM ist, gilt die Anforderung für das dem Steuerelement zugrunde liegende Objektmodell. Wenn das Steuerelement diese Anforderung unterstützt, sollte es eine entsprechende COM-Schnittstelle zurückgeben, indem es die LresultFromObject-Funktion aufruft .
- Wenn dwObjIdOBJID_QUERYCLASSNAMEIDX ist, muss sich das Steuerelement als Windows-Standardsteuerelement oder als gemeinsames Steuerelement identifizieren, das von der allgemeinen Steuerungsbibliothek (ComCtrl.dll) implementiert wird.
Rückgabewert
Wenn das Fenster oder Steuerelement nicht auf diese Nachricht reagieren muss, sollte es die Nachricht an die DefWindowProc-Funktion übergeben. Andernfalls sollte das Fenster oder Steuerelement einen Wert zurückgeben, der der von dwObjId angegebenen Anforderung entspricht:
- Wenn das Fenster oder Steuerelement Benutzeroberflächenautomatisierung implementiert, sollte das Fenster oder Steuerelement den Wert zurückgeben, der durch einen Aufruf der Funktion UiaReturnRawElementProvider abgerufen wurde.
- Wenn dwObjIdOBJID_NATIVEOM ist und das Fenster ein systemeigenes Objektmodell verfügbar macht, sollten die Fenster den Wert zurückgeben, der durch einen Aufruf der LresultFromObject-Funktion abgerufen wurde.
- Wenn dwObjIdOBJID_CLIENT ist und das Fenster IAccessible implementiert, sollte das Fenster den Wert zurückgeben, der durch einen Aufruf der LresultFromObject-Funktion abgerufen wurde.
Bemerkungen
Wenn ein Client AccessibleObjectFromWindow oder eine der anderen AccessibleObjectFromX-Funktionen aufruft, die eine Schnittstelle zu einem Objekt abrufen, sendet Microsoft Active Accessibility die WM_GETOBJECT Nachricht an die entsprechende Fensterprozedur innerhalb der entsprechenden Serveranwendung. Bei der Verarbeitung WM_GETOBJECT rufen Serveranwendungen LresultFromObject auf und verwenden den Rückgabewert dieser Funktion als Rückgabewert für die Nachricht. Microsoft Active Accessibility führt in Verbindung mit der COM-Bibliothek das entsprechende Marshalling aus und übergibt den Schnittstellenzeiger vom Server zurück an den Client.
Server reagieren nicht auf WM_GETOBJECT , bevor das Objekt vollständig initialisiert wird oder nachdem es mit dem Schließen beginnt. Wenn eine Anwendung ein neues Fenster erstellt, sendet das System EVENT_OBJECT_CREATE , um Clients zu benachrichtigen, bevor die WM_CREATE Nachricht an die Fensterprozedur der Anwendung gesendet wird. Da viele Anwendungen WM_CREATE verwenden, um den Initialisierungsprozess zu starten, reagieren Server erst auf die WM_GETOBJECT Nachricht, wenn die Verarbeitung der WM_CREATE Nachricht abgeschlossen ist.
Ein Server verwendet WM_GETOBJECT , um die folgenden Aufgaben auszuführen:
- Erstellen neuer barrierefreier Objekte
- Wiederverwenden vorhandener Zeiger auf Objekte
- Erstellen neuer Schnittstellen für dasselbe Objekt
Für Clients bedeutet dies, dass sie je nach Aktion des Servers möglicherweise unterschiedliche Schnittstellenzeiger für dasselbe Benutzeroberflächenelement erhalten. Um zu bestimmen, ob zwei Schnittstellenzeiger auf dasselbe Benutzeroberflächenelement zeigen, vergleichen Clients IAccessible-Eigenschaften des -Objekts. Das Vergleichen von Zeigern funktioniert nicht.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2003 [nur Desktop-Apps] |
Verteilbare Komponente |
Active Accessibility 1.3 RDK unter Windows NT 4.0 mit SP6 und höher und Windows 95 |
Header |
|