Freigeben über


Verfügbarmachen eines Server-Side Benutzeroberflächenautomatisierung-Anbieters

Dieses Thema enthält Beispielcode, der zeigt, wie ein serverseitiger Microsoft Benutzeroberflächenautomatisierung Anbieter für ein benutzerdefiniertes Steuerelement verfügbar gemacht wird.

Microsoft Benutzeroberflächenautomatisierung sendet die WM_GETOBJECT-Nachricht an eine Anbieteranwendung, um Informationen zu einem zugänglichen Objekt abzurufen, das vom Anbieter unterstützt wird. 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.

Wenn ein Anbieter eine WM_GETOBJECT-Nachricht empfängt, sollte er überprüfen, ob der lParam-Parameter gleich UiaRootObjectId ist. Wenn dies der Grund ist, sollte der Anbieter die IRawElementProviderSimple-Schnittstelle des -Objekts zurückgeben. Der Anbieter gibt die Schnittstelle zurück, indem er die Funktion UiaReturnRawElementProvider aufruft.

Im folgenden Beispiel wird veranschaulicht, wie auf WM_GETOBJECT reagiert wird.

    // Expose the custom button's server-side provider to UI Automation.
    case WM_GETOBJECT:
        {
            // If lParam matches UiaRootObjectId, return IRawElementProviderSimple.
            if (static_cast<long>(lParam) == static_cast<long>(UiaRootObjectId))
            {
                // Retrieve the pointer to the custom button object from the
                // window data.
                CustomButton* pControl = reinterpret_cast<CustomButton*>(
                    GetWindowLongPtr(hwnd, GWLP_USERDATA));

                // Call an application-defined method to get the
                // IRawElementProviderSimple pointer.
                IRawElementProviderSimple* pRootProvider = 
                    pControl->GetUIAutomationProvider(hwnd);

                // Return the IRawElementProviderSimple pointer to UI Automation.
                return UiaReturnRawElementProvider(hwnd, wParam, lParam, 
                    pRootProvider);
            }
            return 0;
        }

Konzept

Implementieren eines Server-Side Benutzeroberflächenautomatisierung anbieters

Die WM_GETOBJECT Nachricht

How-To-Themen für Benutzeroberflächenautomatisierung Anbieter