Marshal.CreateWrapperOfType Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
O objeto recém-encapsulado.
- Atributos
Exceções
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.