Метод IModelObject::GetIntrinsicValueAs (dbgmodel.h)
Метод GetIntrinsicValueAs ведет себя так же, как метод GetIntrinsicValue, за исключением того, что он преобразует значение в указанный тип варианта. Если преобразование не удается выполнить, метод возвращает ошибку.
Синтаксис
HRESULT GetIntrinsicValueAs(
VARTYPE vt,
VARIANT *intrinsicData
);
Параметры
vt
Тип значения для преобразования передается здесь как VARTYPE. Юридические значения VT_I1 через VT_I8, VT_U1 через VT_U8, VT_R4 через VT_R8 и VT_BOOL. Преобразование строк невозможно выполнить с помощью этого метода.
intrinsicData
Здесь возвращается значение, упаковаемое внутри IModelObject , преобразованное в тип, описанный аргументом vt. Указатель должен указывать на структуру VARIANT, которая не содержит освобождаемого значения. Вызывающий объект несет ответственность за очистку этого variant с помощью VariantClear по завершении.
Возвращаемое значение
Этот метод возвращает 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 |