Condividi tramite


Funzione VariantCopyInd (oleauto.h)

Libera la variante di destinazione e crea una copia della variante di origine, eseguendo l'indiretto necessario se l'origine viene specificata per essere VT_BYREF.

Sintassi

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

Parametri

[out] pvarDest

Variante di destinazione.

[in] pvargSrc

Variante di origine.

Valore restituito

Questa funzione può restituire uno di questi valori.

Codice restituito Descrizione
S_OK
Operazione completata.
DISP_E_ARRAYISLOCKED
La variante contiene una matrice bloccata.
DISP_E_BADVARTYPE
Il tipo variant non è un tipo valido di variant.
E_INVALIDARG
Uno degli argomenti non è valido.
E_OUTOFMEMORY
Memoria insufficiente per completare l'operazione.

Commenti

Questa funzione è utile quando è necessaria una copia di una variante e per garantire che non sia VT_BYREF, ad esempio quando si gestiscono gli argomenti in un'implementazione di IDispatch::Invoke.

Ad esempio, se l'origine è un oggetto (VT_BYREF | VT_I2), la destinazione sarà byval | VT_I2. Lo stesso vale per tutte le combinazioni di VT_BYREF legali, tra cui VT_VARIANT.

Se pvargSrc è (VT_BYREF | VT_VARIANT) e la variante contenuta è VT_BYREF, viene dereferenziata anche la variante contenuta.

Questa funzione libera qualsiasi contenuto esistente di pvarDest.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione oleauto.h
Libreria OleAut32.lib
DLL OleAut32.dll

Vedi anche

Funzioni di manipolazione varianti