Compartilhar via


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.IntPtr

    Um 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:

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

SecurityCriticalAttribute

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