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 |