Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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
The following table shows the HRESULT values that can be returned by this function.
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 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 any existing contents of pvarDest.
Requirements
OS Versions: Windows CE 2.0 and later.
Header: Oleauto.h.
Link Library: Oleaut32.lib.
See Also
VARIANTARG | IDispatch::Invoke
Last updated on Wednesday, April 13, 2005
© 2005 Microsoft Corporation. All rights reserved.