Marshal.CreateWrapperOfType Método

Definição

Sobrecargas

CreateWrapperOfType(Object, Type)

Encapsula o objeto COM indicado em um objeto do tipo especificado.Wraps the specified COM object in an object of the specified type.

CreateWrapperOfType<T,TWrapper>(T)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Encapsula o objeto COM indicado em um objeto do tipo especificado.Wraps the specified COM object in an object of the specified type.

CreateWrapperOfType(Object, Type)

Aviso

Esta API agora é obsoleta.

Encapsula o objeto COM indicado em um objeto do tipo especificado.Wraps the specified COM object in an object of the specified type.

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 https://go.microsoft.com/fwlink/?LinkID=296519")]
[System.Security.SecurityCritical]
public static object CreateWrapperOfType (object o, Type t);
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.The object to be wrapped.

t
Type

O tipo de wrapper a criar.The type of wrapper to create.

Retornos

O objeto encapsulado recém-encapsulado é uma instância do tipo desejado.The newly wrapped object that is an instance of the desired type.

Atributos

Exceções

t deve derivar de __ComObject.t must derive from __ComObject.

- ou --or- t é um tipo Tempo de Execução do WindowsWindows Runtime.t is a Tempo de Execução do WindowsWindows Runtime type.

O parâmetro t é null.The t parameter is null.

o não pode ser convertido no tipo de destino porque ele não dá suporte a todas as interfaces necessárias.o cannot be converted to the destination type because it does not support all required interfaces.

Comentários

CreateWrapperOfType converte um tipo de classe COM, normalmente o tipo de __ComObject base, para outro tipo de classe COM.CreateWrapperOfType converts one COM class type, typically the base __ComObject type, to another COM class type. O objeto COM de entrada, representado pelo parâmetro o, é um RCW (Runtime Callable Wrapper).The input COM object, represented by parameter o, is a Runtime Callable Wrapper (RCW).

Os parâmetros t e o devem ser classes cujas assinaturas são atribuídas com System.Runtime.InteropServices.ComImportAttribute.Both the t and o parameters must be classes whose signatures are attributed with System.Runtime.InteropServices.ComImportAttribute. A ferramenta Tlbimp. exe (tipo de importador de biblioteca de tipos) aplica esse atributo para você quando ele importa uma biblioteca de tipos.The Tlbimp.exe (Type Library Importer) tool applies this attribute for you when it imports a type library. 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.If you create the RCW manually in source code, you should apply this attribute to the managed signature that represents the original coclass to signify its COM origins.

O Tlbimp. exe importa uma coclass com como uma classe gerenciada e uma interface.Tlbimp.exe imports a COM coclass as a managed class and an interface. A interface coclass tem o mesmo nome que a coclass original, e a classe gerenciada tem o nome da coclasse original acrescentado com "Class".The coclass interface has the same name as the original coclass, and the managed class has the original coclass name appended with "Class". Por exemplo, uma coclasse chamada MyCoclass se torna uma interface coclass chamada MyCoclass e uma classe gerenciada chamada MyCoclassClass.For example, a coclass called MyCoclass becomes a coclass interface called MyCoclass and a managed class called MyCoclassClass. Como t deve ser uma classe, não uma interface, certifique-se de especificar a classe gerenciada (MyCoclassClass) e não a interface coclass.Since t must be a class, not an interface, be sure to specify the managed class (MyCoclassClass) and not the coclass interface.

Observação

Você perde a identidade do objeto COM de entrada porque uma nova instância de RCW encapsula o ponteiro IUnknown exposto pelo RCW original.You lose the identity of the input COM object because a new RCW instance wraps the IUnknown pointer exposed by the original RCW.

Segurança

SecurityCriticalAttribute
requer confiança total para o chamador imediato.requires full trust for the immediate caller. Este membro não pode ser usado pelo código transparente ou parcialmente confiável.This member cannot be used by partially trusted or transparent code.

Veja também

CreateWrapperOfType<T,TWrapper>(T)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Encapsula o objeto COM indicado em um objeto do tipo especificado.Wraps the specified COM object in an object of the specified type.

public:
generic <typename T, typename TWrapper>
 static TWrapper CreateWrapperOfType(T o);
[System.Security.SecurityCritical]
public static TWrapper CreateWrapperOfType<T,TWrapper> (T o);
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.The type of object to wrap.

TWrapper

O tipo de objeto a ser retornado.The type of object to return.

Parâmetros

o
T

O objeto a ser encapsulado.The object to be wrapped.

Retornos

TWrapper

O objeto recém-encapsulado.The newly wrapped object.

Atributos

Exceções

T deve derivar de __ComObject.T must derive from __ComObject.

- ou --or- T é um tipo Tempo de Execução do WindowsWindows Runtime.T is a Tempo de Execução do WindowsWindows Runtime type.

o não pode ser convertido no TWrapper porque ele não dá suporte a todas as interfaces necessárias.o cannot be converted to the TWrapper because it does not support all required interfaces.

Comentários

CreateWrapperOfType<T,TWrapper>(T) converte um objeto COM do tipo T para o tipo de classe COM TWrapper.CreateWrapperOfType<T,TWrapper>(T) converts a COM object of type T to the TWrapper COM class type. O objeto COM de entrada, representado pelo parâmetro o, é um RCW (Runtime Callable Wrapper).The input COM object, represented by parameter o, is a Runtime Callable Wrapper (RCW).

O parâmetro de tipo genérico T e o parâmetro o devem ser classes cujas assinaturas são atribuídas com o atributo System.Runtime.InteropServices.ComImportAttribute.Both the T generic type parameter and the o parameter must be classes whose signatures are attributed with the System.Runtime.InteropServices.ComImportAttribute attribute. A ferramenta Tlbimp. exe (tipo de importador de biblioteca de tipos) aplica esse atributo para você quando ele importa uma biblioteca de tipos.The Tlbimp.exe (Type Library Importer) tool applies this attribute for you when it imports a type library. 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.If you create the RCW manually in source code, you should apply this attribute to the managed signature that represents the original coclass to signify its COM origins.

O Tlbimp. exe importa uma coclass com como uma classe gerenciada e uma interface.Tlbimp.exe imports a COM coclass as a managed class and an interface. A interface coclass tem o mesmo nome que a coclass original, e a classe gerenciada tem o nome da coclasse original acrescentado com "Class".The coclass interface has the same name as the original coclass, and the managed class has the original coclass name appended with "Class". Por exemplo, uma coclasse chamada MyCoclass se torna uma interface coclass chamada MyCoclass e uma classe gerenciada chamada MyCoclassClass.For example, a coclass called MyCoclass becomes a coclass interface called MyCoclass and a managed class called MyCoclassClass. ComoT deve ser uma classe, não uma interface, certifique-se de especificar a classe gerenciada (MyCoclassClass) e não a interface de coclass.BecauseT must be a class, not an interface, be sure to specify the managed class (MyCoclassClass) and not the coclass interface.

Observação

Você perde a identidade do objeto COM de entrada, porque uma nova instância de RCW encapsula o ponteiro IUnknown exposto pelo RCW original.You lose the identity of the input COM object, because a new RCW instance wraps the IUnknown pointer exposed by the original RCW.

Segurança

SecurityCriticalAttribute
requer confiança total para o chamador imediato.requires full trust for the immediate caller. Este membro não pode ser usado pelo código transparente ou parcialmente confiável.This member cannot be used by partially trusted or transparent code.

Aplica-se a