Método Marshal.CreateWrapperOfType (Object, Type)
Dica
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.
Encapsula o objeto COM indicado em um objeto do tipo especificado.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (em mscorlib.dll)
Sintaxe
[SecurityCriticalAttribute]
public static object CreateWrapperOfType(
object o,
Type t
)
public:
[SecurityCriticalAttribute]
static Object^ CreateWrapperOfType(
Object^ o,
Type^ t
)
[<SecurityCriticalAttribute>]
static member CreateWrapperOfType :
o:Object *
t:Type -> Object
<SecurityCriticalAttribute>
Public Shared Function CreateWrapperOfType (
o As Object,
t As Type
) As Object
Parâmetros
o
Type: System.ObjectO objeto a ser encapsulado.
t
Type: System.TypeO tipo de wrapper a criar.
Valor Retornado
Type: System.Object
O objeto encapsulado recém-encapsulado é uma instância do tipo desejado.
Exceções
Exception | Condition |
---|---|
ArgumentException | t deve derivar de __ComObject. -ou- t é um tipo Tempo de Execução do Windows. |
ArgumentNullException | O parâmetro t é null. |
InvalidCastException | o não pode ser convertido no tipo de destino porque ele não dá suporte a todas as interfaces necessárias. |
Comentários
CreateWrapperOfTypeConverte um tipo de classe COM, normalmente genérica __ComObject tipo em outro tipo de classe COM. O objeto COM entrada, representado pelo parâmetro o, é um RCW (Runtime Callable Wrapper) (RCW).
Tanto o t e o classes cujas assinaturas são atribuídas com os parâmetros devem ser System.Runtime.InteropServices.ComImportAttribute. O Tlbimp.exe (Importador de Biblioteca de Tipos) ferramenta aplica esse atributo para você quando importa uma biblioteca de tipos. Se você criar manualmente o RCW no código-fonte, você deve aplicar esse atributo para a assinatura gerenciada que representa o coclass original para mostrar suas origens COM.
Tlbimp.exe importa uma COM coclass como uma classe gerenciada e uma interface. A interface de coclass tem o mesmo nome de coclass original e a classe gerenciada com o nome de coclass original acrescentado com "Class". Por exemplo, uma coclass chamado MyCoclass torna-se uma interface coclass chamada MyCoclass e uma classe gerenciada chamada 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.
Dica
Você perderá a identidade da entrada COM o objeto, pois uma nova instância RCW encapsula o IUnknown ponteiro exposto pelo RCW original.
Segurança
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Informações de Versão
Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Windows Phone
Disponível desde 8.1
Confira Também
ComImportAttribute
CreateWrapperOfType Sobrecarga
Classe Marshal
Namespace System.Runtime.InteropServices
Retornar ao início