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 |