Freigeben über


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

Weitere Informationen

IModelObject-Schnittstelle