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


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