Función VariantCopy (oleauto.h)
Libera la variante de destino y realiza una copia de la variante de origen.
Sintaxis
HRESULT VariantCopy(
[out] VARIANTARG *pvargDest,
[in] const VARIANTARG *pvargSrc
);
Parámetros
[out] pvargDest
Variante de destino.
[in] pvargSrc
Variante de origen.
Valor devuelto
Esta función puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
|
Correcto. |
|
La variante contiene una matriz bloqueada. |
|
El tipo de variante no es un tipo válido de variante. |
|
Uno de los argumentos no es válido. |
|
Memoria insuficiente para completar la operación. |
Comentarios
En primer lugar, libere cualquier memoria que sea propiedad de pvargDest, como VariantClear (pvargDest debe apuntar a una variante inicializada válida y no simplemente a una ubicación de memoria no inicializada). A continuación, pvargDest recibe una copia exacta del contenido de pvargSrc.
Si pvargSrc es un VT_BSTR, se realiza una copia de la cadena. Si pvargSrcis es un VT_ARRAY, se copia toda la matriz. Si pvargSrc es un VT_DISPATCH o VT_UNKNOWN, se llama a AddRef para incrementar el número de referencias del objeto.
Si la variante que se va a copiar es un objeto COM que se pasa por referencia, el vtfield del pvargSrcparameter se VT_DISPATCH | VT_BYREF o VT_UNKNOWN | VT_BYREF. En este caso, VariantCopy no incrementa el recuento de referencias en el objeto al que se hace referencia. Dado que la variante que se copia es un puntero a una referencia a un objeto, VariantCopy no tiene forma de determinar si es necesario incrementar el recuento de referencias del objeto. Por lo tanto, es responsabilidad del autor de la llamada llamar a IUnknown::AddRef en el objeto o no, según corresponda.
Requisitos
Plataforma de destino | Windows |
Encabezado | oleauto.h |
Library | OleAut32.lib |
Archivo DLL | OleAut32.dll |