Partager via


IModelObject ::GetIntrinsicValueAs, méthode (dbgmodel.h)

La méthode GetIntrinsicValueAs se comporte beaucoup comme la méthode GetIntrinsicValue, sauf qu’elle convertit la valeur en type de variante spécifié. Si la conversion ne peut pas être effectuée, la méthode retourne une erreur.

Syntaxe

HRESULT GetIntrinsicValueAs(
  VARTYPE vt,
  VARIANT *intrinsicData
);

Paramètres

vt

Le type de valeur vers laquelle convertir est passé ici en tant que VARTYPE. Les valeurs juridiques sont VT_I1 par VT_I8, VT_U1 par VT_U8, VT_R4 par VT_R8 et VT_BOOL. Les conversions de chaînes ne peuvent pas être effectuées via cette méthode.

intrinsicData

La valeur boxée à l’intérieur de l’IModelObject convertie en type décrit par l’argument vt est retournée ici. Le pointeur doit pointer vers une structure VARIANT qui ne contient pas de valeur libérable. Il incombe à l’appelant d’effacer ce VARIANT avec VariantClear lorsqu’il en a terminé.

Valeur retournée

Cette méthode retourne HRESULT qui indique la réussite ou l’échec.

Remarques

Exemple de code

ComPtr<IModelObject> spObject; /* get from somewhere */

// Unbox as VT_I4.  This will fail if the value does not FIT into an int (I4):
VARIANT vtVal;
HRESULT hr = spObject->GetIntrinsicValueAs(VT_I4, &vtVal);
if (SUCCEEDED(hr))
{
    int iVal = vtVal.lVal; // The object has successfully packed into an I4 and been unboxed as an int.
}
// Since we know this is a VT_I4, VariantClear is superfluous.

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

Interface IModelObject