Compartilhar via


Função VariantCopyInd (oleauto.h)

Libera a variante de destino e faz uma cópia da variante de origem, executando a indireção necessária se a origem for especificada para ser VT_BYREF.

Sintaxe

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

Parâmetros

[out] pvarDest

A variante de destino.

[in] pvargSrc

A variante de origem.

Retornar valor

Essa função pode retornar um desses valores.

Código de retorno Descrição
S_OK
Êxito.
DISP_E_ARRAYISLOCKED
A variante contém uma matriz bloqueada.
DISP_E_BADVARTYPE
O tipo variante não é um tipo válido de variante.
E_INVALIDARG
Um dos argumentos não é válido.
E_OUTOFMEMORY
Memória insuficiente para concluir a operação.

Comentários

Essa função é útil quando uma cópia de uma variante é necessária e para garantir que ela não seja VT_BYREF, como ao manipular argumentos em uma implementação de IDispatch::Invoke.

Por exemplo, se a origem for um (VT_BYREF | VT_I2), o destino será um BYVAL | VT_I2. O mesmo vale para todas as combinações de VT_BYREF legais, incluindo VT_VARIANT.

Se pvargSrc for (VT_BYREF | VT_VARIANT) e a variante contida é VT_BYREF, a variante contida também é desreferenciada.

Essa função libera qualquer conteúdo existente de pvarDest.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho oleauto.h
Biblioteca OleAut32.lib
DLL OleAut32.dll

Confira também

Funções de manipulação de variantes