VariantWrapper クラスとは? わかりやすく解説

VariantWrapper クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

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

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
Public NotInheritable Class
 VariantWrapper
Dim instance As VariantWrapper
[SerializableAttribute] 
public sealed class VariantWrapper
[SerializableAttribute] 
public ref class VariantWrapper sealed
/** @attribute SerializableAttribute() */ 
public final class VariantWrapper
SerializableAttribute 
public final class VariantWrapper
解説解説

VariantWrapper目的は、マネージ型を対応する VARIANT 型にマーシャリングするときに間接操作レベル1 つ追加することです。

このクラス使用すると、相互運用マーシャラが VT_VARIANT | VT_BYREF として渡す Objectラップできます.NET Framework Version 1.0 および 1.1 では、VT_VARIANT | VT_BYREF 型のバリアント データアンマネージ コードマーシャリングできませんでした相互運用マーシャラは、マネージ型のバリアント (たとえば、StringVT_BSTR | VT_BYREF、または Int32 の VT_I4 | VT_BYREF) は渡しましたが、VT_VARIANT | VT_BYREF渡しませんでした

VT_VARIANT | VT_BYREF バリアント型を使用する利点1 つは、メソッド呼び出し時にデータの型を変更できることです。たとえば、VT_BSTR格納する VT_VARIANT| VT_BYREF バリアント型を渡しメソッド呼び出し後に VT_I4格納するバリアント取得できますCOM 相互運用マーシャラは、VARIANT * として宣言されているパラメータBSTR格納するバリアントを指す VT_BSTR | VT_BYREFVT_VARIANT | VT_BYREF を渡すタイミングを知る手段がないため、VariantWrapper使用してマーシャラに指示できます

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

使用例使用例

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

' 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)
// 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);
継承階層継承階層
System.Object
  System.Runtime.InteropServices.VariantWrapper
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
VariantWrapper メンバ
System.Runtime.InteropServices 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「VariantWrapper クラス」の関連用語

VariantWrapper クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



VariantWrapper クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS