VariantWrapper クラス

定義

注意事項

VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.

VT_VARIANT | VT_BYREF 型のデータをマネージド コードからアンマネージド コードにマーシャリングします。 このクラスは継承できません。

public ref class VariantWrapper sealed
[System.Obsolete("VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")]
public sealed class VariantWrapper
public sealed class VariantWrapper
[System.Serializable]
public sealed class VariantWrapper
[<System.Obsolete("VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")>]
type VariantWrapper = class
type VariantWrapper = class
[<System.Serializable>]
type VariantWrapper = class
Public NotInheritable Class VariantWrapper
継承
VariantWrapper
属性

次のコード例は、相互運用マーシャラーが VariantWrapper 渡すクラスを Object ラップする方法を VT_VARIANT | VT_BYREF示しています。

// Create an instance of an unmanged COM object.
UnmanagedComClass UnmanagedComClassInstance = new UnmanagedComClass();

// Create a string to pass to the COM object.
string helloString = "Hello World!";

// Wrap the string with the VariantWrapper class.
object var = new System.Runtime.InteropServices.VariantWrapper(helloString);

// Pass the wrapped object.
UnmanagedComClassInstance.MethodWithStringRefParam(ref var);
' Create an instance of an unmanged COM object.
Dim UnmanagedComClassInstance As New UnmanagedComClass()

' Create a string to pass to the COM object.
Dim helloString As String = "Hello World!"

' Wrap the string with the VariantWrapper class.
Dim var As Object = New System.Runtime.InteropServices.VariantWrapper(helloString)

' Pass the wrapped object.
UnmanagedComClassInstance.MethodWithStringRefParam(var)

注釈

目的 VariantWrapper は、マネージド型を対応する VARIANT 型にマーシャリングするときに、間接参照の 1 つのレベルを追加します。

このクラスを使用して、Object相互運用マーシャラーが .VT_VARIANT | VT_BYREF .NET Frameworkのバージョン 1.0 と 1.1 では、型VT_VARIANT | VT_BYREFのバリアント データをアンマネージド コードにマーシャリングできませんでした。 相互運用マーシャラーは、マネージド型のバリアント (たとえば、または forInt32StringVT_I4 | VT_BYREF) を渡しましたが、VT_BSTR | VT_BYREF渡されませんでした。VT_VARIANT | VT_BYREF

バリアント型を使用 VT_VARIANT | VT_BYREF する利点の 1 つは、メソッド呼び出し中にデータ型を変更できることです。 たとえば、a を含むVT_BSTRバリアント型を渡VT_VARIANT | VT_BYREFし、メソッド呼び出しの後に a を含むVT_I4バリアントを返すことができます。 COM 相互運用マーシャラーには、渡すタイミングと渡VT_BSTR | VT_BYREF``VT_VARIANT | VT_BYREFすタイミングを知る方法がないため、次のようにVARIANT *宣言された for パラメーターを含むBSTRバリアントを指しているため、使用してVariantWrapperマーシャラーに指示できます。

早期バインディングはサポートされていないことに注意してください。初期バインドされた方法で呼び出すInvokeMember場合、またはディスパッチ専用インターフェイスを呼び出す場合にのみ使用VariantWrapperできます。 C# では、キーワードをref使用して型の任意のVariantWrapperパラメーターのセマンティクスを指定ByRefする必要もあります。 Visual Basicでは、ByRef暗黙的な遅延バインディング呼び出しごとにセマンティクスが自動的に追加されます。 また、オブジェクトとオブジェクトの配列のVariantWrapper入れ子VariantWrapperはサポートされていないことに注意してください。

コンストラクター

VariantWrapper(Object)

指定した VariantWrapper パラメーターの Object クラスの新しいインスタンスを初期化します。

プロパティ

WrappedObject

VariantWrapper オブジェクトによってラップされたオブジェクトを取得します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象