Предоставление доступа к поставщику 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 модель автоматизации пользовательского интерфейса
-
Практические руководства для поставщиков модель автоматизации пользовательского интерфейса