Freigeben über


IModelObject::GetIntrinsicValueAs-Methode (dbgmodel.h)

Die GetIntrinsicValueAs-Methode verhält sich ähnlich wie die GetIntrinsicValue-Methode, mit der Ausnahme, dass der Wert in den angegebenen Variantentyp konvertiert wird. 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 zu konvertierenden Werts wird hier als VARTYPE übergeben. Rechtliche Werte werden durch VT_I8, VT_U1 bis VT_U8, VT_R4 bis VT_R8 und VT_BOOL VT_I1. Zeichenfolgenkonvertierungen können nicht über diese Methode ausgeführt werden.

intrinsicData

Der wert im IModelObject in den typ konvertiert, der durch das vt-Argument beschrieben 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 Erfolg oder Fehler angibt.

Bemerkungen

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

Siehe auch

IModelObject-Schnittstelle