Функция VariantToBuffer (propvarutil.h)
Извлекает содержимое буфера, хранящегося в структуре VARIANT типа VT_ARRRAY | VT_UI1.
Синтаксис
PSSTDAPI VariantToBuffer(
[in] REFVARIANT varIn,
[out] void *pv,
[in] UINT cb
);
Параметры
[in] varIn
Тип: REFVARIANT
Ссылка на исходную структуру VARIANT .
[out] pv
Тип: VOID*
Указатель на буфер длины cb байт. При возврате этой функцией содержит первые кб-байты извлеченного значения буфера.
[in] cb
Тип: UINT
Размер pv-буфера в байтах. Размер буфера должен быть таким же, как и извлекаемые данные, или быть меньше.
Возвращаемое значение
Тип: HRESULT
Возвращает одно из следующих значений:
Код возврата | Описание |
---|---|
|
Данные успешно извлечены. |
|
Variant не был типом VT_ARRRAY | VT_UI1. |
|
Значение буфера VARIANT было меньше cb байт. |
Комментарии
Эта функция используется, когда вызывающее приложение ожидает , что variant будет содержать значение буфера. Вызывающее приложение должно проверка, что значение имеет ожидаемую длину перед вызовом этой функции.
Если исходный variant имеет тип VT_ARRAY | VT_UI1 эта функция извлекает первые байты CB из структуры и помещает их в буфер, на который указывает pv.
Если хранимое значение меньше cb байт, variantToBuffer завершается ошибкой и буфер не изменяется.
Если значение превышает кб байт, VariantToBuffer завершается успешно и усекает значение.
Примеры
В следующем примере, который будет включен в состав более крупной программы, показано, как использовать VariantToBuffer для доступа к структуре, хранящейся в VARIANT.
// VARIANT var;
// Assume variable var is initialized and valid.
// The application expects var to hold a WIN32_FIND_DATAW structure
// with sizeof(WIN32_FIND_DATAW) bytes.
HRESULT hr = E_UNEXPECTED;
// Verify that the value length is acceptable before you call VariantToBuffer.
if (VariantGetElementCount(var) == sizeof(WIN32_FIND_DATAW))
{
WIN32_FIND_DATAW wfd;
hr = VariantToBuffer(var, &wfd, sizeof(wfd));
if (SUCCEEDED(hr))
{
// wfd is now initialized.
}
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | 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 |