Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
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.
Syntax
HRESULT VariantCopyInd( VARIANT FAR* pvarDest, VARIANTARG FAR* pvargSrc ); |
Parameters
- pvarDest
-
[in] Pointer to the VARIANTARGthat receives the copy.
- pvargSrc
-
[in] Pointer to the VARIANTARGthat is copied.
Return Value
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 pvargSrcwas VT_ARRAY. |
Remarks
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 pvargSrcis (VT_BYREF | VT_VARIANT), and the contained variant is VT_BYREF, the contained variant is also dereferenced.
This function frees existing contents of pvarDest.
Requirements
Header | oleauto.h |
Library | oleaut32.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |