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


Функция VarNumFromParseNum (oleauto.h)

Преобразует проанализированные результаты в вариант.

Синтаксис

HRESULT VarNumFromParseNum(
  [in]  NUMPARSE *pnumprs,
  [in]  BYTE     *rgbDig,
  [in]  ULONG    dwVtBits,
  [out] VARIANT  *pvar
);

Параметры

[in] pnumprs

Проанализированные результаты. Элемент cDig этого аргумента указывает количество цифр, присутствующих в rgbDig.

[in] rgbDig

Значения цифр. Поле cDigpnumprs содержит количество цифр.

[in] dwVtBits

Для каждого типа, приемлемого в качестве возвращаемого значения, устанавливается один бит (во многих случаях — только один бит).

VTBIT_I1

VTBIT_UI1

VTBIT_I2

VTBIT_UI2

VTBIT_I4

VTBIT_UI4

VTBIT_R4

VTBIT_R8

VTBIT_CY

VTBIT_DECIMAL

[out] pvar

Результат варианта.

Возвращаемое значение

Эта функция может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
E_OUTOFMEMORY
Недостаточно памяти.
DISP_E_OVERFLOW
Число слишком велико для представления в допустимом типе. Ошибка отсутствует при потере точности при преобразовании.

Комментарии

Для округления десятичных чисел массив цифр должен быть по крайней мере на одну цифру длиннее максимального значения, необходимого для типов данных. Максимальное число цифр, необходимых для типа данных DECIMAL, равно 29, поэтому в массиве цифр должно быть 30 цифр. Также должно быть достаточно цифр для принятия числа в восьмерике, если выбраны параметры синтаксического анализа. (Шестнадцатеричное и восьмеричное числа ограничены varNumFromParseNum величиной длинного без знака [32 бита], поэтому им требуется 11 восьмеричных цифр.)

Требования

Требование Значение
Целевая платформа Windows
Header oleauto.h
Библиотека OleAut32.lib
DLL OleAut32.dll