IRawElementProviderSimple::GetPropertyValue-Methode (uiautomationcore.h)
Ruft den Wert einer Eigenschaft ab, die vom Microsoft Benutzeroberflächenautomatisierung-Anbieter unterstützt wird.
Syntax
HRESULT GetPropertyValue(
[in] PROPERTYID propertyId,
[out, retval] VARIANT *pRetVal
);
Parameter
[in] propertyId
Typ: PROPERTYID
Der Eigenschaftenbezeichner. Eine Liste der Eigenschaften-IDs finden Sie unter Eigenschaftenbezeichner.
[out, retval] pRetVal
Typ: VARIANT*
Empfängt den Eigenschaftswert oder VT_EMPTY , wenn die Eigenschaft von diesem Anbieter nicht unterstützt wird. Dieser Parameter wird nicht initialisiert übergeben. Siehe Hinweise.
Rückgabewert
Typ: HRESULT
Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Wenn der Anbieter die propertyId-Eigenschaft nicht unterstützt, sollte der Anbieter pRetVal-vt> auf VT_EMPTY festlegen und S_OK zurückgeben.
Hinweise
Wenn ein Anbieter den Eigenschaftswert explizit ausblendet (d. h. der Anbieter stellt die Eigenschaft nicht bereit, und die Anforderung soll nicht an andere Anbieter übergeben werden), sollte er einen Zeiger zurückgeben, der mithilfe der UiaGetReservedNotSupportedValue-Funktion abgerufen wurde. Beispiel:
pRetVal->vt = VT_UNKNOWN;
UiaGetReservedNotSupportedValue(&pRetVal->punkVal);
Benutzeroberflächenautomatisierung Eigenschaften des double-Typs unterstützen Not a Number (NaN)-Werte. Bei der Rückgabe eines NaN-Werts sollte der Anbieter einen stillen (nicht signalisierenden) NaN zurückgeben, um zu vermeiden, dass eine Ausnahme ausgelöst wird, wenn Gleitkommaausnahmen aktiviert sind. Das folgende Beispiel zeigt, wie Sie eine stille NaN erstellen:
ULONGLONG ulNaN = 0xFFFFFFFFFFFFFFFF;
*pRetVal = *reinterpret_cast<double*>(&ulNaN);
Alternativ können Sie die folgende Funktion aus den C++-Standardbibliotheken verwenden:
numeric_limits<double>::quiet_NaN( )
Beispiele
Im folgenden Beispiel werden verschiedene Eigenschaftswerte zurückgegeben. Die UiaIds-Struktur enthält Eigenschaftenbezeichner. Informationen zur Initialisierung finden Sie unter UiaLookupId.
HRESULT STDMETHODCALLTYPE Provider::GetPropertyValue(PROPERTYID propertyId,
VARIANT* pRetVal)
{
if (propertyId == UiaIds.ControlTypeProperty)
{
pRetVal->vt = VT_I4;
pRetVal->lVal = UiaIds.ButtonControlType;
}
// The Name property normally comes from the Caption property of the
// control window, if it has one. The Name is overridden here for the
// sake of illustration.
else if (propertyId == UiaIds.NameProperty)
{
pRetVal->vt = VT_BSTR;
pRetVal->bstrVal = SysAllocString(L"ColorButton");
}
else
{
pRetVal->vt = VT_EMPTY;
// UI Automation will attempt to get the property from the host
//window provider.
}
return S_OK;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | uiautomationcore.h (uiAutomation.h einschließen) |