Marshal.GetIUnknownForObject(Object) Méthode

Définition

Retourne une interface IUnknown à partir d’un objet managé.

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

Paramètres

o
Object

Objet dont l'interface IUnknown est demandée.

Retours

IntPtr

Pointeur IUnknown pour le paramètre o.

Attributs

Exemples

L’exemple suivant montre comment récupérer une interface IUnknown pour un objet managé à l’aide de la GetIUnknownForObject méthode .

C#
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();
    }
}

Remarques

Dans le code managé, vous travaillez rarement directement avec l’interface IUnknown . Toutefois, GetIUnknownForObject est utile lors de l’appel d’une méthode qui expose un paramètre d’objet COM en tant que IntPtr type ou avec un marshaling personnalisé. L’appel d’un objet avec cette méthode entraîne l’incrémentation du nombre de références sur le pointeur d’interface avant que le pointeur ne soit retourné. Marshal.Release Utilisez toujours pour décrémenter le nombre de références une fois que vous avez terminé avec le pointeur. Cette méthode fournit les fonctionnalités opposées de la Marshal.GetObjectForIUnknown méthode.

Vous pouvez également utiliser cette méthode sur un objet managé pour obtenir un pointeur d’interface vers le wrapper COM Callable pour l’objet.

S’applique à

Produit Versions
.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, 10
.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

Voir aussi