Функция 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 в случае успешного выполнения, или значение ошибки в противном случае, включая следующее:
Код возврата | Описание |
---|---|
|
Исходный вариант VARIANT содержал больше значений crgn . |
|
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 |