Marshal.CreateWrapperOfType メソッド

定義

オーバーロード

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__ComObject から派生する必要があります。

または

tはWindows ランタイム型です。

t パラメーターが null です。

o はすべての必要なインターフェイスをサポートしていないため、ソース オブジェクトをターゲットの型に変換することはできません。

注釈

CreateWrapperOfType は、1 つの COM クラス型 (通常は基本 __ComObject 型) を別の COM クラス型に変換します。 パラメーター oで表される入力 COM オブジェクトは、 ランタイム呼び出し可能ラッパー (RCW) です

パラメーターと o パラメーターのt両方が、 で属性付けされたシグネチャを持つSystem.Runtime.InteropServices.ComImportAttributeクラスである必要があります。 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

ラップされるオブジェクト。

戻り値

TWrapper

新しくラップされたオブジェクト。

属性

例外

T__ComObject から派生する必要があります。

または

TはWindows ランタイム型です。

必要なすべてのインターフェイスをサポートしていないため、oTWrapper に変換できません。

注釈

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、インターフェイスではなくcoclassマネージド クラス (MyCoclassClass) を必ず指定してください。

注意

新しい RCW インスタンスは、元の RCW によって公開される IUnknown ポインターをラップするため、入力 COM オブジェクトの ID が失われます。

適用対象