VariantWrapper クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
注意事項
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使用して、相互運用マーシャラーが としてVT_VARIANT | VT_BYREF
渡す をObjectラップする方法を示します。
// 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 レベルの間接参照を追加することです。
このクラスを使用して、相互運用マーシャラーが としてVT_VARIANT | VT_BYREF
渡す をラップObjectできます。 .NET Framework のバージョン 1.0 と 1.1 では、型 VT_VARIANT | VT_BYREF
のバリアント データをアンマネージド コードにマーシャリングできませんでした。 相互運用マーシャラーは、マネージド型のバリアントを渡しました (たとえば、 VT_BSTR | VT_BYREF
Stringの場合は 、、 VT_I4 | VT_BYREF
Int32の場合は VT_VARIANT | VT_BYREF
)。
バリアント型を使用 VT_VARIANT | VT_BYREF
する利点の 1 つは、メソッド呼び出し中にデータの型を変更できることです。 たとえば、 を含むVT_BSTR
バリアント型をVT_VARIANT | VT_BYREF
渡し、メソッド呼び出しの後に を含むVT_I4
バリアントを返すことができます。 COM 相互運用マーシャラーには、 を渡すタイミングと を渡VT_BSTR | VT_BYREF
VT_VARIANT | VT_BYREF
すタイミングを知る方法がないため、これは としてVARIANT *
宣言されたパラメーターの を含むBSTR
バリアントを指します。 を使用VariantWrapperしてマーシャラーに指示できます。
事前バインディングはサポートされていないことに注意してください。を使用 VariantWrapper できるのは、 を呼び出す InvokeMember 場合、または ディスパッチ専用インターフェイスを事前にバインドした方法で呼び出した場合のみです。 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) |
適用対象
.NET