IModelObject::GetIntrinsicValueAs-Methode (dbgmodel.h)
Die GetIntrinsicValueAs-Methode verhält sich ähnlich wie die GetIntrinsicValue-Methode, mit der Ausnahme, dass sie den Wert in den angegebenen Variantentyp konvertiert. Wenn die Konvertierung nicht ausgeführt werden kann, gibt die Methode einen Fehler zurück.
Syntax
HRESULT GetIntrinsicValueAs(
VARTYPE vt,
VARIANT *intrinsicData
);
Parameter
vt
Der Typ des Werts, in den konvertiert werden soll, wird hier als VARTYPE übergeben. Rechtliche Werte werden über VT_I8, VT_U1 bis VT_U8, VT_R4 über VT_R8 und VT_BOOL VT_I1. Zeichenfolgenkonvertierungen können nicht über diese Methode ausgeführt werden.
intrinsicData
Der im IModelObject-Feld enthaltene Wert, der in den vom vt-Argument beschriebenen Typ konvertiert wird, wird hier zurückgegeben. Der Zeiger muss auf eine VARIANT-Struktur zeigen, die keinen freistellbaren Wert enthält. Es liegt in der Verantwortung des Aufrufers, diesen VARIANT mit VariantClear zu löschen, wenn er damit fertig ist.
Rückgabewert
Diese Methode gibt HRESULT zurück, das den Erfolg oder Fehler angibt.
Hinweise
Codebeispiel
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.
Anforderungen
Anforderung | Wert |
---|---|
Header | dbgmodel.h |