Поделиться через


Предоставление доступа к поставщику Server-Side модель автоматизации пользовательского интерфейса

В этом разделе содержится пример кода, в котором показано, как предоставить поставщику microsoft модель автоматизации пользовательского интерфейса на стороне сервера для пользовательского элемента управления.

Microsoft модель автоматизации пользовательского интерфейса отправляет WM_GETOBJECT сообщение приложению поставщика для получения сведений о доступном объекте, поддерживаемом поставщиком. модель автоматизации пользовательского интерфейса отправляет WM_GETOBJECT, когда клиент вызывает IUIAutomation::ElementFromHandle, ElementFromPoint и GetFocusedElement, а также при обработке событий, для которых клиент зарегистрирован.

Когда поставщик получает сообщение WM_GETOBJECT, он должен проверка, равен ли параметр lParamзначению UiaRootObjectId. Если это так, поставщик должен вернуть интерфейс IRawElementProviderSimple объекта . Поставщик возвращает интерфейс, вызывая функцию UiaReturnRawElementProvider .

В следующем примере показано, как реагировать на WM_GETOBJECT.

    // 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;
        }

Основные понятия

Реализация поставщика Server-Side модель автоматизации пользовательского интерфейса

Сообщение WM_GETOBJECT

Практические руководства для поставщиков модель автоматизации пользовательского интерфейса