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


Функция VariantCopyInd (oleauto.h)

Освобождает вариант назначения и создает копию исходного варианта, выполняя необходимое косвенное обращение, если источник указан для VT_BYREF.

Синтаксис

HRESULT VariantCopyInd(
  [out] VARIANT          *pvarDest,
  [in]  const VARIANTARG *pvargSrc
);

Параметры

[out] pvarDest

Вариант назначения.

[in] pvargSrc

Исходный вариант.

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

Эта функция может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
DISP_E_ARRAYISLOCKED
Вариант содержит заблокированный массив.
DISP_E_BADVARTYPE
Тип variant не является допустимым типом variant.
E_INVALIDARG
Один из аргументов недопустим.
E_OUTOFMEMORY
Недостаточно памяти для завершения операции.

Комментарии

Эта функция полезна, когда требуется копия варианта и гарантирует, что она не VT_BYREF, например при обработке аргументов в реализации IDispatch::Invoke.

Например, если источником является (VT_BYREF | VT_I2), назначением будет BYVAL | VT_I2. То же самое относится ко всем юридическим VT_BYREF сочетаниям, включая VT_VARIANT.

Если pvargSrc имеет значение (VT_BYREF | VT_VARIANT), а автономный вариант VT_BYREF, а автономный вариант также разыменовывается.

Эта функция освобождает все существующее содержимое pvarDest.

Требования

Требование Значение
Целевая платформа Windows
Header oleauto.h
Библиотека OleAut32.lib
DLL OleAut32.dll

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

Функции обработки вариантов