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 |