VariantCopyInd function (oleauto.h)
Frees the destination variant and makes a copy of the source variant, performing the necessary indirection if the source is specified to be VT_BYREF.
Syntax
HRESULT VariantCopyInd(
[out] VARIANT *pvarDest,
[in] const VARIANTARG *pvargSrc
);
Parameters
[out] pvarDest
The destination variant.
[in] pvargSrc
The source variant.
Return value
This function can return one of these values.
Return code | Description |
---|---|
|
Success. |
|
The variant contains an array that is locked. |
|
The variant type is not a valid type of variant. |
|
One of the arguments is not valid. |
|
Insufficient memory to complete the operation. |
Remarks
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 any existing contents of pvarDest.
Requirements
Requirement | Value |
---|---|
Target Platform | Windows |
Header | oleauto.h |
Library | OleAut32.lib |
DLL | OleAut32.dll |