次の方法で共有


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
引数の 1 つが無効です。
E_OUTOFMEMORY
操作を完了するためのメモリ不足。

注釈

この関数は、バリアントのコピーが必要な場合や、 IDispatch::Invoke の実装で引数を処理する場合など、バリアントがVT_BYREFされていないことを保証するために役立ちます。

たとえば、ソースが (VT_BYREF |VT_I2)、宛先は BYVAL になります |VT_I2。 同じことが、VT_VARIANTを含むすべての法的VT_BYREFの組み合わせにも当てはまります。

pvargSrc が の場合 (VT_BYREF |VT_VARIANT)、含まれるバリアントがVT_BYREFされ、含まれるバリアントも逆参照されます。

この関数は、pvarDest の既存のコンテンツを解放します。

要件

要件
対象プラットフォーム Windows
ヘッダー oleauto.h
Library OleAut32.lib
[DLL] OleAut32.dll

こちらもご覧ください

バリアント操作関数