iModelObject::GetIntrinsicValueAs 方法 (dbgmodel.h)

GetIntrinsicValueAs 方法的行为与 GetIntrinsicValue 方法非常类似,只不过它将值转换为指定的变体类型。 如果无法执行转换,该方法将返回错误。

语法

HRESULT GetIntrinsicValueAs(
  VARTYPE vt,
  VARIANT *intrinsicData
);

参数

vt

要转换为的值的类型在此处作为 VARTYPE 传递。 合法值通过VT_I8 VT_I1、VT_U1 VT_U8、VT_R4 VT_R8和VT_BOOL。 无法通过此方法执行字符串转换。

intrinsicData

此处返回已转换为 vt 参数所描述类型的 IModelObject 内装箱的值。 指针必须指向不包含可自由值的 VARIANT 结构。 调用方负责在使用 VariantClear 时清除此 VARIANT。

返回值

此方法返回指示成功或失败的 HRESULT。

注解

代码示例

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.

要求

要求
Header dbgmodel.h

另请参阅

IModelObject 接口