Freigeben über


Marshal.CreateWrapperOfType Methode

Definition

Überlädt

Name Beschreibung
CreateWrapperOfType(Object, Type)
Veraltet.

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

CreateWrapperOfType<T,TWrapper>(T)

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

CreateWrapperOfType(Object, Type)

Quelle:
Marshal.NoCom.cs
Quelle:
Marshal.NoCom.cs
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 in 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 objekt, das umbrochen werden soll.

t
Type

Der Typ des zu erstellenden Wrappers.

Gibt zurück

Das neu umbrochene Objekt, das eine Instanz des gewünschten Typs ist.

Attribute

Ausnahmen

t muss von __ComObject.

- oder -

t ist ein Windows-Runtime Typ.

Der t Parameter ist null.

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

Hinweise

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

Sowohl die Klassen o als auch die t Parameter müssen Klassen sein, deren Signaturen zugeschrieben System.Runtime.InteropServices.ComImportAttributewerden. Das toolTlbimp.exe (Type Library Importer) wendet dieses Attribut für Sie an, wenn es eine Typbibliothek importiert. Wenn Sie das 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 eine Schnittstelle. Die Coclass-Schnittstelle hat denselben Namen wie die ursprüngliche Coclass, und die verwaltete Klasse hat den ursprünglichen Coclass-Namen, der mit "Class" angefügt ist. Beispielsweise wird eine aufgerufene Coclass MyCoclass zu einer Coclass-Schnittstelle, die aufgerufen MyCoclass wird, und zu einer verwalteten Klasse, die aufgerufen wird 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 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.

Weitere Informationen

Gilt für:

CreateWrapperOfType<T,TWrapper>(T)

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

Umschließt das angegebene COM-Objekt in 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 objekts, das umbrochen werden soll.

TWrapper

Der Typ des zurückzugebenden Objekts.

Parameter

o
T

Das objekt, das umbrochen werden soll.

Gibt zurück

TWrapper

Das neu umschlossene Objekt.

Attribute

Ausnahmen

T muss von __ComObject.

- oder -

T ist ein Windows-Runtime Typ.

o kann nicht in den 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 durch Parameter odargestellte EINGABE-COM-Objekt 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 das 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 eine Schnittstelle. Die Coclass-Schnittstelle hat denselben Namen wie die ursprüngliche Coclass, und die verwaltete Klasse hat den ursprünglichen Coclass-Namen, der mit "Class" angefügt ist. Beispielsweise wird eine aufgerufene Coclass MyCoclass zu einer Coclass-Schnittstelle, die aufgerufen MyCoclass wird, und zu einer verwalteten Klasse, die aufgerufen wird MyCoclassClass. DaT es sich um eine Klasse und nicht um eine Schnittstelle handeln muss, müssen Sie unbedingt 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: