Marshal.CreateWrapperOfType メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
CreateWrapperOfType(Object, Type) |
古い.
指定した型のオブジェクト内の、指定した COM オブジェクトをラップします。 |
CreateWrapperOfType<T,TWrapper>(T) |
指定した型のオブジェクト内の、指定した COM オブジェクトをラップします。 |
CreateWrapperOfType(Object, Type)
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
注意事項
CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519
指定した型のオブジェクト内の、指定した COM オブジェクトをラップします。
public:
static System::Object ^ CreateWrapperOfType(System::Object ^ o, Type ^ t);
[System.Obsolete("CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519")]
[System.Security.SecurityCritical]
public static object CreateWrapperOfType (object o, Type t);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object? CreateWrapperOfType (object? o, Type t);
[System.Security.SecurityCritical]
public static object CreateWrapperOfType (object o, Type t);
public static object CreateWrapperOfType (object o, Type t);
public static object? CreateWrapperOfType (object? o, Type t);
[<System.Obsolete("CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519")>]
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateWrapperOfType : obj * Type -> obj
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
static member CreateWrapperOfType : obj * Type -> obj
Public Shared Function CreateWrapperOfType (o As Object, t As Type) As Object
パラメーター
- o
- Object
ラップされるオブジェクト。
- t
- Type
作成するラッパーの型。
戻り値
指定した型のインスタンスとなる新しくラップされたオブジェクト。
- 属性
例外
t
パラメーターが null
です。
o
はすべての必要なインターフェイスをサポートしていないため、ソース オブジェクトをターゲットの型に変換することはできません。
注釈
CreateWrapperOfType は、1 つの COM クラス型 (通常は基本 __ComObject
型) を別の COM クラス型に変換します。 パラメーター o
で表される入力 COM オブジェクトは、 ランタイム呼び出し可能ラッパー (RCW) です。
パラメーターと パラメーターのt
両方が、 で属性付きシグネチャを持つSystem.Runtime.InteropServices.ComImportAttributeクラスである必要o
があります。
Tlbimp.exe (タイプ ライブラリ インポーター) ツールは、タイプ ライブラリをインポートするときにこの属性を適用します。 ソース コードで RCW を手動で作成する場合は、元のコクラスを表すマネージド署名にこの属性を適用して、その COM の配信元を示す必要があります。
Tlbimp.exe は、COM コクラス をマネージド クラスとインターフェイスとしてインポートします。 コクラス インターフェイスの名前は元のコクラスと同じで、マネージド クラスには元のコクラス名が "Class" と付加されています。 たとえば、 と呼ばれる MyCoclass
コクラスは と呼ばれる MyCoclass
コクラス インターフェイスになり、 というマネージド クラスになります MyCoclassClass
。 インターフェイスではなくクラスである必要があるため t
、コクラス インターフェイスではなくマネージド クラス (MyCoclassClass
) を必ず指定してください。
注意
新しい RCW インスタンスが元の RCW によって公開される IUnknown ポインターをラップするため、入力 COM オブジェクトの ID が失われます。
こちらもご覧ください
適用対象
CreateWrapperOfType<T,TWrapper>(T)
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
指定した型のオブジェクト内の、指定した COM オブジェクトをラップします。
public:
generic <typename T, typename TWrapper>
static TWrapper CreateWrapperOfType(T o);
[System.Security.SecurityCritical]
public static TWrapper CreateWrapperOfType<T,TWrapper> (T o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static TWrapper CreateWrapperOfType<T,TWrapper> (T? o);
public static TWrapper CreateWrapperOfType<T,TWrapper> (T o);
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : 'T -> 'Wrapper
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateWrapperOfType : 'T -> 'Wrapper
static member CreateWrapperOfType : 'T -> 'Wrapper
Public Shared Function CreateWrapperOfType(Of T, TWrapper) (o As T) As TWrapper
型パラメーター
- T
ラップするオブジェクトの型。
- TWrapper
返すオブジェクトの型。
パラメーター
- o
- T
ラップされるオブジェクト。
戻り値
新しくラップされたオブジェクト。
- 属性
例外
必要なすべてのインターフェイスをサポートしていないため、o
は TWrapper
に変換できません。
注釈
CreateWrapperOfType<T,TWrapper>(T) は、型 T
の COM オブジェクトを COM クラス型に TWrapper
変換します。 パラメーター o
で表される入力 COM オブジェクトは、 ランタイム呼び出し可能ラッパー (RCW) です。
T
ジェネリック型パラメーターと パラメーターの両方が、 o
属性で属性付きのシグネチャを持つSystem.Runtime.InteropServices.ComImportAttributeクラスである必要があります。
Tlbimp.exe (タイプ ライブラリ インポーター) ツールは、タイプ ライブラリをインポートするときにこの属性を適用します。 ソース コードで RCW を手動で作成する場合は、元のコクラスを表すマネージド署名にこの属性を適用して、その COM の配信元を示す必要があります。
Tlbimp.exe は、COM コクラス をマネージド クラスとインターフェイスとしてインポートします。 コクラス インターフェイスの名前は元のコクラスと同じで、マネージド クラスには元のコクラス名が "Class" と付加されています。 たとえば、 と呼ばれる MyCoclass
コクラスは と呼ばれる MyCoclass
コクラス インターフェイスになり、 というマネージド クラスになります MyCoclassClass
。 インターフェイスではなくクラスである必要があるためT
、インターフェイスではなくマネージド クラス (MyCoclassClass
) を coclass
必ず指定してください。
注意
新しい RCW インスタンスが元の RCW によって公開されている IUnknown ポインターをラップするため、入力 COM オブジェクトの ID が失われます。
適用対象
.NET