VariantCopyInd 函数 (oleauto.h)
释放目标变体并创建源变体的副本,如果源被指定为VT_BYREF,则执行必要的间接处理。
语法
HRESULT VariantCopyInd(
[out] VARIANT *pvarDest,
[in] const VARIANTARG *pvargSrc
);
参数
[out] pvarDest
目标变体。
[in] pvargSrc
源变体。
返回值
此函数可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
变体包含已锁定的数组。 |
|
变体类型不是有效的变体类型。 |
|
其中一个参数无效。 |
|
内存不足,无法完成操作。 |
注解
当需要变体副本并保证它不会VT_BYREF时,例如在 IDispatch::Invoke 的实现中处理参数时,此函数非常有用。
例如,如果源是 (VT_BYREF |VT_I2) ,目标将是 BYVAL |VT_I2。 所有法律VT_BYREF组合也是如此,包括VT_VARIANT。
如果 pvargSrc 是 (VT_BYREF |VT_VARIANT) ,并且包含的变体VT_BYREF,则包含的变体也会取消引用。
此函数释放 pvarDest 的任何现有内容。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | oleauto.h |
Library | OleAut32.lib |
DLL | OleAut32.dll |