VariantCopyInd

Windows Mobile 6.5
A version of this page is also available for
4/8/2010

This function frees existing content of the destination variant and makes a copy of the source VARIANTARG, performing the necessary indirection if the source is specified to be VT_BYREF.


HRESULT VariantCopyInd( 
  VARIANT FAR* pvarDest, 
  VARIANTARG FAR* pvargSrc 
); 

pvarDest

[in] Pointer to the VARIANTARG that receives the copy.

pvargSrc

[in] Pointer to the VARIANTARG that is copied.

Returns the HRESULT values shown in the following table.

Value Description

S_OK

Success.

DISP_E_ARRAYISLOCKED

The variant contains an array that is locked.

DISP_E_BADVARTYPE

The source and destination have an invalid variant type (usually uninitialized).

E_OUTOFMEMORY

Memory could not be allocated for the copy.

E_INVALIDARG

The argument pvargSrc was VT_ARRAY.

Passing invalid (and under some circumstances NULL) pointers to this function causes an unexpected termination of the application.

This function is useful when a copy of a variant is needed, and to guarantee that it is not VT_BYREF, such as when handling arguments in an implementation of IDispatch::Invoke.

For example, if the source is a (VT_BYREF | VT_I2), the destination will be a BYVAL | VT_I2. The same is true for all legal VT_BYREF combinations, including VT_VARIANT.

If pvargSrc is (VT_BYREF | VT_VARIANT), and the contained variant is VT_BYREF, the contained variant is also dereferenced.

This function frees existing contents of pvarDest.

Headeroleauto.h
Libraryoleaut32.lib
Windows Embedded CEWindows CE 2.0 and later
Windows MobileWindows Mobile Version 5.0 and later
Show: