Marshal.CreateWrapperOfType Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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
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 o
dargestellt 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
Das neu umschlossene Objekt.
- Attribute
Ausnahmen
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 o
dargestellt 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.