Compartilhar via


Marshal.CreateWrapperOfType Método

Definição

Sobrecargas

Nome Description
CreateWrapperOfType(Object, Type)
Obsoleto.

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

CreateWrapperOfType<T,TWrapper>(T)

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

CreateWrapperOfType(Object, Type)

Origem:
Marshal.NoCom.cs
Origem:
Marshal.NoCom.cs
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 especificado 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 ser criado.

Retornos

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

Atributos

Exceções

t deve derivar de __ComObject.

- ou -

t é um tipo Windows Runtime.

O t parâmetro é 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 por parâmetroo, é um RCW (Runtime Callable Wrapper).

Os parâmetros e os t parâmetros 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 a 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 de coclasse tem o mesmo nome da 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 de coclasse.

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
Origem:
Marshal.NoCom.cs
Origem:
Marshal.NoCom.cs

Encapsula o objeto COM especificado 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 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 por parâmetroo, é um RCW (Runtime Callable Wrapper).

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 a 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 de coclasse tem o mesmo nome da 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, pois uma nova instância RCW encapsula o ponteiro IUnknown exposto pelo RCW original.

Aplica-se a