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


Функция VariantToDouble (propvarutil.h)

Извлекает значение DOUBLE из структуры VARIANT . Если не удается извлечь значение, назначается значение по умолчанию.

Синтаксис

PSSTDAPI VariantToDouble(
  [in]  REFVARIANT varIn,
  [out] DOUBLE     *pdblRet
);

Параметры

[in] varIn

Тип: REFVARIANT

Ссылка на исходную структуру VARIANT .

[out] pdblRet

Тип: DOUBLE*

При возврате этой функции содержит извлеченное значение, если оно существует; в противном случае — 0,0.

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

Тип: HRESULT

Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Эта вспомогательная функция используется, когда вызывающее приложение ожидает , что variant будет содержать значение DOUBLE . Например, приложение, которое получает значения из папки оболочки, может использовать эту функцию для безопасного извлечения значения из одного из свойств папки, значение которого хранится как DOUBLE.

Если исходный variant имеет тип VT_R8, эта функция извлекает значение DOUBLE .

Если исходный вариант VARIANT не относится к типу VT_R8, функция пытается преобразовать значение, хранящееся в структуре VARIANT , в ЗНАЧЕНИЕ DOUBLE. Если преобразование невозможно, VariantToDouble возвращает код сбоя и задает для pdblRet значение 0.0. Список возможных преобразований см. в разделе PropVariantChangeType . Обратите внимание, что VT_EMPTY успешно преобразуется в 0,0.

Примеры

В следующем примере, который будет включен в более крупную программу, показано, как использовать VariantToDouble для доступа к значению DOUBLE , хранящееся в структуре VARIANT .

// VARIANT var;
// Assume variable var is initialize and valid.
// The application expects var to hold a VT_R8 value.
DOUBLE dblValue;

HRESULT hr = VariantToDouble(var, & dblValue);

if (SUCCEEDED(hr))
{
    // dblValue is now valid.
}
else
{
    // dblValue is always FALSE.
}

Требования

Требование Значение
Минимальная версия клиента Windows XP с пакетом обновления 2 (SP2), Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения]
Целевая платформа Windows
Header propvarutil.h
Библиотека Propsys.lib
DLL Propsys.dll (версия 6.0 или более поздняя)
Распространяемые компоненты Windows Desktop Search (WDS) 3.0

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

InitVariantFromDouble

PropVariantChangeType

PropVariantToDouble

VariantToDoubleArray