Share via


VariantCopyInd 函式 (oleauto.h)

釋放目的地變體並建立來源變體的複本,並在指定來源時執行必要的間接存取,以VT_BYREF。

語法

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

參數

[out] pvarDest

目的變數。

[in] pvargSrc

來源變體。

傳回值

此函式可以傳回下列其中一個值。

傳回碼 描述
S_OK
成功。
DISP_E_ARRAYISLOCKED
Variant 包含鎖定的陣列。
DISP_E_BADVARTYPE
Variant 類型不是有效的 Variant 類型。
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
程式庫 OleAut32.lib
Dll OleAut32.dll

另請參閱

Variant 操作函式