Função VariantCopy (oleauto.h)
Libera a variante de destino e faz uma cópia da variante de origem.
Sintaxe
HRESULT VariantCopy(
[out] VARIANTARG *pvargDest,
[in] const VARIANTARG *pvargSrc
);
Parâmetros
[out] pvargDest
A variante de destino.
[in] pvargSrc
A variante de origem.
Valor retornado
Essa função pode retornar um desses valores.
Código de retorno | Descrição |
---|---|
|
Êxito. |
|
A variante contém uma matriz bloqueada. |
|
O tipo variante não é um tipo válido de variante. |
|
Um dos argumentos não é válido. |
|
Memória insuficiente para concluir a operação. |
Comentários
Primeiro, libere qualquer memória que pertence a pvargDest, como VariantClear (pvargDest deve apontar para uma variante inicializada válida e não simplesmente para um local de memória não inicializado). Em seguida, pvargDest recebe uma cópia exata do conteúdo de pvargSrc.
Se pvargSrc for um VT_BSTR, uma cópia da cadeia de caracteres será feita. Se pvargSrcis um VT_ARRAY, toda a matriz será copiada. Se pvargSrc for um VT_DISPATCH ou VT_UNKNOWN, AddRef será chamado para incrementar a contagem de referência do objeto.
Se a variante a ser copiada for um objeto COM passado por referência, o vtfield do pvargSrcparameter será VT_DISPATCH | VT_BYREF ou VT_UNKNOWN | VT_BYREF. Nesse caso, VariantCopy não incrementa a contagem de referência no objeto referenciado. Como a variante que está sendo copiada é um ponteiro para uma referência a um objeto , VariantCopy não tem como determinar se é necessário incrementar a contagem de referência do objeto. Portanto, é responsabilidade do chamador chamar IUnknown::AddRef no objeto ou não, conforme apropriado.
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | oleauto.h |
Biblioteca | OleAut32.lib |
DLL | OleAut32.dll |