Funzione VariantCopy (oleauto.h)
Libera la variante di destinazione e crea una copia della variante di origine.
Sintassi
HRESULT VariantCopy(
[out] VARIANTARG *pvargDest,
[in] const VARIANTARG *pvargSrc
);
Parametri
[out] pvargDest
Variante di destinazione.
[in] pvargSrc
Variante di origine.
Valore restituito
Questa funzione può restituire uno di questi valori.
Codice restituito | Descrizione |
---|---|
|
Operazione completata. |
|
La variante contiene una matrice bloccata. |
|
Il tipo variant non è un tipo valido di variant. |
|
Uno degli argomenti non è valido. |
|
Memoria insufficiente per completare l'operazione. |
Commenti
Prima di tutto, liberare qualsiasi memoria di proprietà di pvargDest, ad esempio VariantClear (pvargDest deve puntare a una variante inizializzata valida e non semplicemente a una posizione di memoria non inizializzata). PvargDest riceve quindi una copia esatta del contenuto di pvargSrc.
Se pvargSrc è un VT_BSTR, viene creata una copia della stringa. Se pvargSrcis un VT_ARRAY, viene copiata l'intera matrice. Se pvargSrc è un VT_DISPATCH o VT_UNKNOWN, Viene chiamato AddRef per incrementare il conteggio dei riferimenti dell'oggetto.
Se la variante da copiare è un oggetto COM passato per riferimento, il campo vtfield del parametro pvargSrcparameter è VT_DISPATCH | VT_BYREF o VT_UNKNOWN | VT_BYREF. In questo caso , VariantCopy non incrementa il conteggio dei riferimenti per l'oggetto a cui si fa riferimento. Poiché la variante copiata è un puntatore a un riferimento a un oggetto, VariantCopy non consente di determinare se è necessario incrementare il conteggio dei riferimenti dell'oggetto. È quindi responsabilità del chiamante chiamare IUnknown::AddRef sull'oggetto o meno, in base alle esigenze.
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | oleauto.h |
Libreria | OleAut32.lib |
DLL | OleAut32.dll |