VariantCopyInd 函数 (oleauto.h)

释放目标变体并创建源变体的副本,如果源被指定为VT_BYREF,则执行必要的间接处理。

语法

HRESULT VariantCopyInd(
  [out] VARIANT          *pvarDest,
  [in]  const VARIANTARG *pvargSrc
);

参数

[out] pvarDest

目标变体。

[in] pvargSrc

源变体。

返回值

此函数可以返回其中一个值。

返回代码 说明
S_OK
成功。
DISP_E_ARRAYISLOCKED
变体包含已锁定的数组。
DISP_E_BADVARTYPE
变体类型不是有效的变体类型。
E_INVALIDARG
其中一个参数无效。
E_OUTOFMEMORY
内存不足,无法完成操作。

注解

当需要变体副本并保证它不会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

另请参阅

变体操作函数