Freigeben über


Marshal.CreateWrapperOfType Methode

Definition

Überlädt

CreateWrapperOfType(Object, Type)
Veraltet.

Umschließt das angegebene COM-Objekt mit einem Objekt des angegebenen Typs.

CreateWrapperOfType<T,TWrapper>(T)

Umschließt das angegebene COM-Objekt mit einem Objekt des angegebenen Typs.

CreateWrapperOfType(Object, Type)

Quelle:
Marshal.NoCom.cs
Quelle:
Marshal.NoCom.cs
Quelle:
Marshal.NoCom.cs

Achtung

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

Umschließt das angegebene COM-Objekt mit einem Objekt des angegebenen Typs.

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

Parameter

o
Object

Das zu umschließende Objekt.

t
Type

Der Typ des zu erstellenden Wrappers.

Gibt zurück

Das neu umschlossene Objekt, das eine Instanz des gewünschten Typs darstellt.

Attribute

Ausnahmen

t muss von __ComObject abgeleitet werden.

- oder -

t ist ein Windows-Runtime-Typ.

Der t-Parameter ist null.

o kann nicht in den Zieltyp konvertiert werden, da nicht alle erforderlichen Schnittstellen unterstützt werden.

Hinweise

CreateWrapperOfType konvertiert einen COM-Klassentyp, in der Regel den Basistyp __ComObject , in einen anderen COM-Klassentyp. Das EINGABE-COM-Objekt, das durch den Parameter odargestellt wird, ist ein Runtime Callable Wrapper (RCW).

Sowohl die t Parameter als o auch müssen Klassen sein, deren Signaturen mit System.Runtime.InteropServices.ComImportAttributezugeordnet werden. Das toolTlbimp.exe (Type Library Importer) wendet dieses Attribut für Sie an, wenn es eine Typbibliothek importiert. Wenn Sie den RCW manuell im Quellcode erstellen, sollten Sie dieses Attribut auf die verwaltete Signatur anwenden, die die ursprüngliche Coclass darstellt, um ihre COM-Ursprünge zu kennzeichnen.

Tlbimp.exe importiert eine COM-Coclass als verwaltete Klasse und Schnittstelle. Die coclass-Schnittstelle hat denselben Namen wie die ursprüngliche Coclass, und die verwaltete Klasse hat den ursprünglichen Coklassennamen, der mit "Class" angefügt ist. Beispielsweise wird eine Co-Klasse namens MyCoclass eine Coklassenschnittstelle namens MyCoclass und eine verwaltete Klasse namens MyCoclassClass. Da t es sich um eine Klasse und nicht um eine Schnittstelle handeln muss, müssen Sie unbedingt die verwaltete Klasse (MyCoclassClass) und nicht die Coklassenschnittstelle angeben.

Hinweis

Sie verlieren die Identität des EINGABE-COM-Objekts, da eine neue RCW-Instanz den IUnknown-Zeiger umschließt, der vom ursprünglichen RCW verfügbar gemacht wird.

Weitere Informationen

Gilt für:

CreateWrapperOfType<T,TWrapper>(T)

Quelle:
Marshal.NoCom.cs
Quelle:
Marshal.NoCom.cs
Quelle:
Marshal.NoCom.cs

Umschließt das angegebene COM-Objekt mit einem Objekt des angegebenen Typs.

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

Typparameter

T

Der Typ des zurückzugebenden Umbruchs.

TWrapper

Der Typ des zurückzugebenden Objekts.

Parameter

o
T

Das zu umschließende Objekt.

Gibt zurück

TWrapper

Das neu umschlossene Objekt.

Attribute

Ausnahmen

T muss von __ComObject abgeleitet werden.

- oder -

T ist ein Windows-Runtime-Typ.

o kann nicht in TWrapper konvertiert werden, da nicht alle erforderlichen Schnittstellen unterstützt werden.

Hinweise

CreateWrapperOfType<T,TWrapper>(T) konvertiert ein COM-Objekt vom Typ T in den TWrapper COM-Klassentyp. Das EINGABE-COM-Objekt, das durch den Parameter odargestellt wird, ist ein Runtime Callable Wrapper (RCW).

Sowohl der T generische Typparameter als auch der o Parameter müssen Klassen sein, deren Signaturen dem System.Runtime.InteropServices.ComImportAttribute Attribut zugeordnet werden. Das toolTlbimp.exe (Type Library Importer) wendet dieses Attribut für Sie an, wenn es eine Typbibliothek importiert. Wenn Sie den RCW manuell im Quellcode erstellen, sollten Sie dieses Attribut auf die verwaltete Signatur anwenden, die die ursprüngliche Coclass darstellt, um ihre COM-Ursprünge zu kennzeichnen.

Tlbimp.exe importiert eine COM-Coclass als verwaltete Klasse und Schnittstelle. Die coclass-Schnittstelle hat denselben Namen wie die ursprüngliche Coclass, und die verwaltete Klasse hat den ursprünglichen Coklassennamen, der mit "Class" angefügt ist. Beispielsweise wird eine Co-Klasse namens MyCoclass eine Coklassenschnittstelle namens MyCoclass und eine verwaltete Klasse namens MyCoclassClass. DaT es sich um eine Klasse und nicht um eine Schnittstelle handeln muss, müssen Sie die verwaltete Klasse (MyCoclassClass) und nicht die coclass Schnittstelle angeben.

Hinweis

Sie verlieren die Identität des EINGABE-COM-Objekts, da eine neue RCW-Instanz den IUnknown-Zeiger umschließt, der vom ursprünglichen RCW verfügbar gemacht wird.

Gilt für: