Функция PropVariantToUInt16Vector (propvarutil.h)
Извлекает данные из структуры PROPVARIANT в без знака короткий вектор.
Синтаксис
PSSTDAPI PropVariantToUInt16Vector(
[in] REFPROPVARIANT propvar,
[out] USHORT *prgn,
[in] ULONG crgn,
[out] ULONG *pcElem
);
Параметры
[in] propvar
Тип: REFPROPVARIANT
Ссылка на исходную структуру PROPVARIANT.
[out] prgn
Тип: USHORT*
Указывает на буфер, содержащий crgnбез знака коротких значений. Когда эта функция возвращается, буфер инициализирован с помощью pcElemбез знака коротких элементов, извлеченных из исходного PROPVARIANT.
[in] crgn
Тип: ULONG
Размер буфера, на который указывает prgn в элементах.
[out] pcElem
Тип: ULONG*
Когда эта функция возвращается, содержит количество без знака коротких значений, извлеченных из исходной структуры PROPVARIANT.
Возвращаемое значение
Тип: HRESULT
Эта функция может возвращать одно из этих значений.
Возвращаемый код | Описание |
---|---|
|
Возвращает S_OK в случае успешного выполнения или значения ошибки в противном случае. |
|
Исходный PROPVARIANT содержал более значений crgn. Буфер, на который указывает prgn. |
|
PROPVARIANT не соответствует соответствующему типу. |
Замечания
Эта вспомогательной функцией используется в местах, где вызывающее приложение ожидает PROPVARIANT для хранения вектора без знака коротких значений с фиксированным числом элементов.
Если исходный PROPVARIANT имеет тип VT_VECTOR | VT_UI2 или VT_ARRAY | VT_UI2, эта вспомогательные функции извлекает до crgnбез знака коротких значений и помещает их в буфер, на который указывает prgn. Если PROPVARIANT содержит больше элементов, чем будет помещаться в буфер prgn, эта функция возвращает ошибку и задает pcElem значение 0.
Примеры
В следующем примере, который будет включен в состав более крупной программы, показано, как использовать PropVariantToUInt16Vector для доступа к незаписанным коротким векторным значением PROPVARIANT.
// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
USHORT rgShorts[4]; // The application is expecting propvar to hold 4 USHORTs in a vector
ULONG cElems;
HRESULT hr = PropVariantToUInt16Vector(propvar, rgShorts, ARRAYSIZE(rgShorts), &cElems);
if (SUCCEEDED(hr))
{
if (cElems == ARRAYSIZE(rgShorts))
{
// The application got 4 USHORTs which are now stored in rgShorts
}
else
{
// The application got cElems which are stored in the first cElems elements of rgShorts
}
}
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP с пакетом обновления 2 (SP2), Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения] |
целевая платформа | Виндоус |
заголовка | propvarutil.h |
библиотеки |
Propsys.lib |
DLL | Propsys.dll (версия 6.0 или более поздняя) |
распространяемый | Поиск компьютеров Windows (WDS) 3.0 |
См. также
InitPropVariantFromUInt16Vector