IModelObject::GetIntrinsicValueAs 方法 (dbgmodel.h)

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

语法

HRESULT GetIntrinsicValueAs(
  VARTYPE vt,
  VARIANT *intrinsicData
);

参数

vt

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

intrinsicData

此处返回 IModelObject 中装箱的值 转换为 vt 参数描述的类型。 指针必须指向不包含可释放值的 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.

要求

要求 价值
标头 dbgmodel.h

另请参阅

IModelObject 接口