VariantCopyInd
This function frees any 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 );
Parameters
- pvarDest
Pointer to the VARIANTARG that receives the copy. - pvargSrc
Pointer to the VARIANTARG that is copied.
Return Values
One of the values obtained from the returned HRESULT and described in the following table is returned.
| 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. |
Remarks
Passing into this function any invalid and, under some circumstances, NULL pointers will result in 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 any existing contents of pvarDest.
Requirements
| Runs on | Versions | Defined in | Include | Link to |
|---|---|---|---|---|
| Windows CE OS | 2.0 and later | Oleauto.h | Oleaut32.lib |
Note This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.
Last updated on Tuesday, July 13, 2004
© 1992-2000 Microsoft Corporation. All rights reserved.