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 渡すクラスを 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) |