Поделиться через


Метод 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

См. также раздел

Интерфейс IModelObject