Método Marshal.GetObjectForIUnknown (IntPtr)
Dica
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.
Retorna uma instância de um tipo que representa um objeto COM um ponteiro para seu IUnknown interface.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (em mscorlib.dll)
Sintaxe
[SecurityCriticalAttribute]
public static object GetObjectForIUnknown(
IntPtr pUnk
)
public:
[SecurityCriticalAttribute]
static Object^ GetObjectForIUnknown(
IntPtr pUnk
)
[<SecurityCriticalAttribute>]
static member GetObjectForIUnknown :
pUnk:nativeint -> Object
<SecurityCriticalAttribute>
Public Shared Function GetObjectForIUnknown (
pUnk As IntPtr
) As Object
Parâmetros
pUnk
Type: System.IntPtrUm ponteiro para a interface IUnknown.
Valor Retornado
Type: System.Object
Um objeto que representa o objeto COM não gerenciado especificado.
Comentários
Este método envolve IUnknown em um objeto gerenciado. Isso tem o efeito de incrementar a contagem de referência do componente COM. A contagem de referência será diminuída quando o tempo de execução executa a coleta de lixo no objeto gerenciado que representa o objeto COM.
O pUnk parâmetro representa um IUnknown ponteiro de interface; no entanto, porque todas as interfaces COM derivam direta ou indiretamente de IUnknown, você pode passar qualquer interface COM para esse método. O objeto retornado por GetObjectForIUnknown é um RCW (Runtime Callable Wrapper), que gerencia o common language runtime como ele faz qualquer outro objeto gerenciado. O tipo desse wrapper geralmente é genérica System.__ComObject tipo, que é um tipo oculto usado quando o tipo de wrapper é ambíguo. Você ainda pode fazer chamadas de associação tardia para tal um tipo genérico, desde que implementa o objeto COM o IDispatch interface. Da mesma forma, você pode converter o objeto retornado para uma interface COM apropriada.
Para um objeto a ser encapsulado com um tipo de classe gerenciada específica (e não é um tipo genérico wrapper), você deve atender aos seguintes requisitos:
Implementar o IProvideClassInfo interface para o objeto COM.
Registre o assembly contendo com o Regasm.exe (Ferramenta de Registro de Assembly).
Como alternativa, você pode evitar esses requisitos e ainda obter um objeto que é encapsulado com um tipo de classe gerenciada específica usando o Marshal.GetTypedObjectForIUnknown método.
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 Silverlight
Disponível desde 8.0
Windows Phone
Disponível desde 8.1
Confira Também
AddRef
Release
GetTypedObjectForIUnknown
Classe Marshal
Namespace System.Runtime.InteropServices
Retornar ao início