VariantCopyInd-Funktion (oleauto.h)

Gibt die Zielvariante frei und erstellt eine Kopie der Quellvariante, wobei die erforderliche Dereferenzierung ausgeführt wird, wenn die Quelle als VT_BYREF angegeben wird.

Syntax

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

Parameter

[out] pvarDest

Die Zielvariante.

[in] pvargSrc

Die Quellvariante.

Rückgabewert

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
DISP_E_ARRAYISLOCKED
Die Variante enthält ein Array, das gesperrt ist.
DISP_E_BADVARTYPE
Der Variant-Typ ist kein gültiger Variant-Typ.
E_INVALIDARG
Eines der Argumente ist ungültig.
E_OUTOFMEMORY
Unzureichender Arbeitsspeicher, um den Vorgang abzuschließen.

Hinweise

Diese Funktion ist nützlich, wenn eine Kopie einer Variante benötigt wird, und um sicherzustellen, dass sie nicht VT_BYREF ist, z. B. bei der Behandlung von Argumenten in einer Implementierung von IDispatch::Invoke.

Beispielsweise, wenn die Quelle ein (VT_BYREF | VT_I2) ist das Ziel ein BYVAL | VT_I2. Gleiches gilt für alle rechtlichen VT_BYREF Kombinationen, einschließlich VT_VARIANT.

Wenn pvargSrc ist (VT_BYREF | VT_VARIANT) und die enthaltene Variante VT_BYREF ist, wird auch die enthaltene Variante abgeleitet.

Diese Funktion gibt alle vorhandenen Inhalte von pvarDest frei.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile oleauto.h
Bibliothek OleAut32.lib
DLL OleAut32.dll

Weitere Informationen

Variantenbearbeitungsfunktionen