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;
}
Zugehörige Themen
-
Konzept
-
Implementieren eines Server-Side Benutzeroberflächenautomatisierung anbieters
-
How-To-Themen für Benutzeroberflächenautomatisierung Anbieter