Méthode IRawElementProviderSimple ::GetPropertyValue (uiautomationcore.h)
Récupère la valeur d’une propriété prise en charge par le fournisseur microsoft UI Automation.
Syntaxe
HRESULT GetPropertyValue(
[in] PROPERTYID propertyId,
[out, retval] VARIANT *pRetVal
);
Paramètres
[in] propertyId
Type : PROPERTYID
Identificateur de la propriété. Pour obtenir la liste des ID de propriété, consultez Identificateurs de propriétés.
[out, retval] pRetVal
Type : VARIANT*
Reçoit la valeur de la propriété ou VT_EMPTY si la propriété n’est pas prise en charge par ce fournisseur. Ce paramètre est passé sans être initialisé. Consultez la section Notes.
Valeur de retour
Type : HRESULT
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Si le fournisseur ne prend pas en charge la propriété propertyId, le fournisseur doit définir pRetVal-vt>sur VT_EMPTY et retourner S_OK.
Remarques
Si un fournisseur masque explicitement la valeur de la propriété (autrement dit, le fournisseur ne fournit pas la propriété et que la demande ne doit pas être transmise à d’autres fournisseurs), il doit retourner un pointeur obtenu à l’aide de la fonction UiaGetReservedNotSupportedValue . Par exemple :
pRetVal->vt = VT_UNKNOWN;
UiaGetReservedNotSupportedValue(&pRetVal->punkVal);
UI Automation propriétés du type double prennent en charge les valeurs Not a Number (NaN). Lors du retour d’une valeur NaN, le fournisseur doit retourner un nom NaN silencieux (sans signalisation) pour éviter de déclencher une exception si les exceptions à virgule flottante sont activées. L’exemple suivant montre comment créer un nom naN silencieux :
ULONGLONG ulNaN = 0xFFFFFFFFFFFFFFFF;
*pRetVal = *reinterpret_cast<double*>(&ulNaN);
Vous pouvez également utiliser la fonction suivante à partir des bibliothèques C++ standard :
numeric_limits<double>::quiet_NaN( )
Exemples
L’exemple suivant retourne différentes valeurs de propriété. La structure UiaIds contient des identificateurs de propriété ; pour voir comment il est initialisé, consultez 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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | uiautomationcore.h (incluez UIAutomation.h) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour