Marshal.GetIUnknownForObject(Object) Método

Definição

Retorna uma interface IUnknown de um objeto gerenciado.

[System.Security.SecurityCritical]
public static IntPtr GetIUnknownForObject (object o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetIUnknownForObject (object o);
public static IntPtr GetIUnknownForObject (object o);

Parâmetros

o
Object

O objeto cuja interface IUnknown é solicitada.

Retornos

IntPtr

O ponteiro IUnknown para o parâmetro o.

Atributos

Exemplos

O exemplo a seguir demonstra como recuperar uma interface IUnknown para um objeto gerenciado usando o GetIUnknownForObject método .

using System;
using System.Runtime.InteropServices;

class Program
{

    static void Run()
    {

        // Create an int object
        int obj = 1;

        Console.WriteLine("Calling Marshal.GetIUnknownForObject...");

        // Get the IUnKnown pointer for the Integer object
        IntPtr pointer = Marshal.GetIUnknownForObject(obj);

        Console.WriteLine("Calling Marshal.Release...");

        // Always call Marshal.Release to decrement the reference count.
        Marshal.Release(pointer);
    }

    static void Main(string[] args)
    {
        Run();
    }
}

Comentários

No código gerenciado, você raramente trabalha diretamente com a IUnknown interface . No entanto, GetIUnknownForObject é útil ao chamar um método que expõe um parâmetro de objeto COM como um IntPtr tipo ou com marshaling personalizado. Chamar um objeto com esse método faz com que a contagem de referência incremente no ponteiro da interface antes que o ponteiro seja retornado. Sempre use Marshal.Release para diminuir a contagem de referências depois de terminar com o ponteiro. Esse método fornece a funcionalidade oposta do Marshal.GetObjectForIUnknown método .

Você também pode usar esse método em um objeto gerenciado para obter um ponteiro de interface para o Wrapper Callable COM para o objeto .

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Confira também