Marshal.CreateWrapperOfType Metod

Definition

Överlagringar

Name Description
CreateWrapperOfType(Object, Type)
Föråldrad.

Omsluter det angivna COM-objektet i ett objekt av den angivna typen.

CreateWrapperOfType<T,TWrapper>(T)

Omsluter det angivna COM-objektet i ett objekt av den angivna typen.

CreateWrapperOfType(Object, Type)

Varning

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

Omsluter det angivna COM-objektet i ett objekt av den angivna typen.

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);
public static object CreateWrapperOfType(object o, Type t);
[System.Security.SecurityCritical]
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
static member CreateWrapperOfType : obj * Type -> obj
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
Public Shared Function CreateWrapperOfType (o As Object, t As Type) As Object

Parametrar

o
Object

Objektet som ska omslutas.

t
Type

Typ av omslutning som ska skapas.

Returer

Det nyligen omslutna objektet som är en instans av önskad typ.

Attribut

Undantag

t måste härledas från __ComObject.

-eller-

t är en Windows Runtime typ.

Parametern t är null.

o kan inte konverteras till måltypen eftersom den inte stöder alla nödvändiga gränssnitt.

Kommentarer

CreateWrapperOfType konverterar en COM-klasstyp, vanligtvis bastypen __ComObject , till en annan COM-klasstyp. Com-indataobjektet, som representeras av parametern o, är en Runtime Callable Wrapper (RCW).

Både parametrarna t och o måste vara klasser vars signaturer tillskrivs System.Runtime.InteropServices.ComImportAttribute. Verktyget Tlbimp.exe (Type Library Importer) tillämpar det här attributet när det importerar ett typbibliotek. Om du skapar RCW manuellt i källkoden bör du använda det här attributet på den hanterade signaturen som representerar den ursprungliga samklassen för att ange dess COM-ursprung.

Tlbimp.exe importerar en COM-samklass som en hanterad klass och ett gränssnitt. Coclass-gränssnittet har samma namn som den ursprungliga coclassen, och den hanterade klassen har det ursprungliga coclass-namnet som läggs till med "Klass". En samklass med namnet MyCoclass blir till exempel ett samklassgränssnitt med namnet MyCoclass och en hanterad klass med namnet MyCoclassClass. Eftersom t måste vara en klass, inte ett gränssnitt, måste du ange den hanterade klassen (MyCoclassClass) och inte samklassgränssnittet.

Note

Du förlorar identiteten för com-indataobjektet eftersom en ny RCW-instans omsluter den IUnknown-pekare som exponerades av den ursprungliga RCW:n.

Se även

Gäller för

CreateWrapperOfType<T,TWrapper>(T)

Omsluter det angivna COM-objektet i ett objekt av den angivna typen.

public:
generic <typename T, typename TWrapper>
 static TWrapper CreateWrapperOfType(T o);
[System.Security.SecurityCritical]
public static TWrapper CreateWrapperOfType<T,TWrapper>(T o);
public static TWrapper CreateWrapperOfType<T,TWrapper>(T o);
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : 'T -> 'Wrapper
static member CreateWrapperOfType : 'T -> 'Wrapper
Public Shared Function CreateWrapperOfType(Of T, TWrapper) (o As T) As TWrapper

Typparametrar

T

Typ av objekt som ska omslutas.

TWrapper

Vilken typ av objekt som ska returneras.

Parametrar

o
T

Objektet som ska omslutas.

Returer

TWrapper

Det nyligen omslutna objektet.

Attribut

Undantag

T måste härledas från __ComObject.

-eller-

T är en Windows Runtime typ.

o kan inte konverteras till TWrapper eftersom den inte stöder alla nödvändiga gränssnitt.

Kommentarer

CreateWrapperOfType<T,TWrapper>(T) konverterar ett COM-objekt av typen T till TWrapper COM-klasstypen. Com-indataobjektet, som representeras av parametern o, är en Runtime Callable Wrapper (RCW).

Både den T generiska typparametern och parametern o måste vara klasser vars signaturer tillskrivs attributet System.Runtime.InteropServices.ComImportAttribute . Verktyget Tlbimp.exe (Type Library Importer) tillämpar det här attributet när det importerar ett typbibliotek. Om du skapar RCW manuellt i källkoden bör du använda det här attributet på den hanterade signaturen som representerar den ursprungliga samklassen för att ange dess COM-ursprung.

Tlbimp.exe importerar en COM-samklass som en hanterad klass och ett gränssnitt. Coclass-gränssnittet har samma namn som den ursprungliga coclassen, och den hanterade klassen har det ursprungliga coclass-namnet som läggs till med "Klass". En samklass med namnet MyCoclass blir till exempel ett samklassgränssnitt med namnet MyCoclass och en hanterad klass med namnet MyCoclassClass. EftersomT måste vara en klass, inte ett gränssnitt, måste du ange den hanterade klassen (MyCoclassClass) och inte coclass gränssnittet.

Note

Du förlorar identiteten för com-indataobjektet eftersom en ny RCW-instans omsluter den IUnknown-pekare som exponerades av den ursprungliga RCW:n.

Gäller för