Compartilhar via


Marshal.CreateWrapperOfType Método

Definição

Sobrecargas

CreateWrapperOfType(Object, Type)
Obsoleto.

Encapsula o objeto COM indicado em um objeto do tipo especificado.

CreateWrapperOfType<T,TWrapper>(T)

Encapsula o objeto COM indicado em um objeto do tipo especificado.

CreateWrapperOfType(Object, Type)

Origem:
Marshal.NoCom.cs
Origem:
Marshal.NoCom.cs
Origem:
Marshal.NoCom.cs

Cuidado

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

Encapsula o objeto COM indicado em um objeto do tipo especificado.

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

Parâmetros

o
Object

O objeto a ser encapsulado.

t
Type

O tipo de wrapper a criar.

Retornos

O objeto encapsulado recém-encapsulado é uma instância do tipo desejado.

Atributos

Exceções

t deve derivar de __ComObject.

- ou -

t é um tipo do Windows Runtime.

O parâmetro t é null.

o não pode ser convertido no tipo de destino porque ele não dá suporte a todas as interfaces necessárias.

Comentários

CreateWrapperOfType converte um tipo de classe COM, normalmente o tipo base __ComObject , em outro tipo de classe COM. O objeto COM de entrada, representado pelo parâmetro o, é um Runtime Callable Wrapper (RCW).

t Os parâmetros e o devem ser classes cujas assinaturas são atribuídas com System.Runtime.InteropServices.ComImportAttribute. A ferramenta Tlbimp.exe (Importador de Biblioteca de Tipos) aplica esse atributo para você quando importa uma biblioteca de tipos. Se você criar o RCW manualmente no código-fonte, deverá aplicar esse atributo à assinatura gerenciada que representa a coclasse original para significar suas origens COM.

Tlbimp.exe importa uma coclasse COM como uma classe gerenciada e uma interface. A interface coclass tem o mesmo nome que a coclass original e a classe gerenciada tem o nome de coclass original acrescentado com "Class". Por exemplo, uma coclass chamada MyCoclass se torna uma interface de coclass chamada MyCoclass e uma classe gerenciada chamada MyCoclassClass. Como t deve ser uma classe, não uma interface, especifique a classe gerenciada (MyCoclassClass) e não a interface coclass.

Observação

Você perde a identidade do objeto COM de entrada porque uma nova instância do RCW encapsula o ponteiro IUnknown exposto pelo RCW original.

Confira também

Aplica-se a

CreateWrapperOfType<T,TWrapper>(T)

Origem:
Marshal.NoCom.cs
Origem:
Marshal.NoCom.cs
Origem:
Marshal.NoCom.cs

Encapsula o objeto COM indicado em um objeto do tipo especificado.

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

Parâmetros de tipo

T

O tipo de objeto a ser encapsulado.

TWrapper

O tipo de objeto a ser retornado.

Parâmetros

o
T

O objeto a ser encapsulado.

Retornos

TWrapper

O objeto recém-encapsulado.

Atributos

Exceções

T deve derivar de __ComObject.

- ou -

T é um tipo do Windows Runtime.

o não pode ser convertido no TWrapper porque ele não dá suporte a todas as interfaces necessárias.

Comentários

CreateWrapperOfType<T,TWrapper>(T) converte um objeto COM do tipo T para o TWrapper tipo de classe COM. O objeto COM de entrada, representado pelo parâmetro o, é um Runtime Callable Wrapper (RCW).

T O parâmetro de tipo genérico e o o parâmetro devem ser classes cujas assinaturas são atribuídas com o System.Runtime.InteropServices.ComImportAttribute atributo . A ferramenta Tlbimp.exe (Importador de Biblioteca de Tipos) aplica esse atributo para você quando importa uma biblioteca de tipos. Se você criar o RCW manualmente no código-fonte, deverá aplicar esse atributo à assinatura gerenciada que representa a coclasse original para significar suas origens COM.

Tlbimp.exe importa uma coclasse COM como uma classe gerenciada e uma interface. A interface coclass tem o mesmo nome que a coclass original e a classe gerenciada tem o nome de coclass original acrescentado com "Class". Por exemplo, uma coclass chamada MyCoclass se torna uma interface de coclass chamada MyCoclass e uma classe gerenciada chamada MyCoclassClass. ComoT deve ser uma classe, não uma interface, especifique a classe gerenciada (MyCoclassClass) e não a coclass interface.

Observação

Você perde a identidade do objeto COM de entrada porque uma nova instância do RCW encapsula o ponteiro IUnknown exposto pelo RCW original.

Aplica-se a