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


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

Извлекает массив логических значений из структуры VARIANT .

Синтаксис

PSSTDAPI VariantToBooleanArray(
  [in]  REFVARIANT var,
  [out] BOOL       *prgf,
  [in]  ULONG      crgn,
  [out] ULONG      *pcElem
);

Параметры

[in] var

Тип: REFVARIANT

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

[out] prgf

Тип: BOOL*

Указатель на буфер, содержащий логические значения crgn . Когда эта функция возвращает значение , буфер инициализирован с элементами BOOL *pcElem, извлеченными из исходной структуры VARIANT.

[in] crgn

Тип: ULONG

Количество элементов в буфере, на который указывает prgf.

[out] pcElem

Тип: ULONG*

При возврате этой функции содержит указатель на количество элементов BOOL , извлеченных из исходной структуры VARIANT .

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

Тип: HRESULT

Возвращает S_OK в случае успешного выполнения, или значение ошибки в противном случае, включая следующее:

Код возврата Описание
TYPE_E_BUFFERTOOSMALL
Исходный вариант VARIANT содержал больше значений crgn .
E_INVALIDARG
Variant не был соответствующего типа.

Комментарии

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

Если исходный variant имеет тип VT_ARRAY | VT_BOOL, эта функция извлекает значения BOOL до crgn и помещает их в буфер, на который указывает prgf. Если variant содержит больше элементов, чем помещается в буфер prgf , эта функция возвращает ошибку и устанавливает для параметра *pcElem значение 0.

Примеры

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

// VARIANT var;
// Assume variable var is initialized and valid
BOOL rgFlags[4]; // The application is expecting var to hold 4 BOOLs in an array.
ULONG cFlags;

HRESULT hr = VariantToBooleanArray(var, rgFlags, ARRAYSIZE(rgFlags), &cFlags);

if (SUCCEEDED(hr))
{
    if (cFlags == ARRAYSIZE(rgFlags))
    {
        // The application got 4 flag values which are now stored in rgFlags.
    }
    else
    {
        // The application got cFlags which are stored in the first cFlags 
        // elements of rgFlags.
    }
}

Требования

Требование Значение
Минимальная версия клиента 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

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

InitVariantFromBooleanArray

PropVariantToBooleanVector

VariantGetBooleanElem

VariantToBoolean

VariantToBooleanArrayAlloc