Metodo GetIUnknownForObjectInContext
TOC
Comprimi il sommario
Espandi il sommario

Metodo Marshal.GetIUnknownForObjectInContext

Nota: questo metodo è stato introdotto con .NET Framework versione 2.0.

Restituisce un'interfaccia IUnknown da un oggetto gestito se il chiamante appartiene allo stesso contesto dell'oggetto.

Spazio dei nomi: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)

public static IntPtr GetIUnknownForObjectInContext (
	Object o
)
public static IntPtr GetIUnknownForObjectInContext (
	Object o
)
public static function GetIUnknownForObjectInContext (
	o : Object
) : IntPtr

Parametri

o

Oggetto di cui è richiesta l'interfaccia IUnknown.

Valore restituito

Puntatore IUnknown per il parametro o oppure riferimento null (Nothing in Visual Basic) se il chiamante non appartiene allo stesso contesto dell'oggetto specificato.

Questo metodo equivale a GetIUnknownForObject, ad eccezione del fatto che restituisce riferimento null (Nothing in Visual Basic) se il chiamante non appartiene allo stesso contesto dell'oggetto.

NotaNota

Questo metodo utilizza SecurityAction.LinkDemand per evitare di essere chiamato da codice non attendibile; solo il chiamante diretto deve disporre dell'autorizzazione SecurityPermissionAttribute.UnmanagedCode. Se il codice utilizzato può essere chiamato da codice parzialmente attendibile, non passare l'input utente ai metodi della classe Marshal senza convalida. Per le limitazioni rilevanti sull'utilizzo del membro LinkDemand, vedere Demand e LinkDemand.

Nell'esempio di codice riportato di seguito viene illustrato come recuperare un'interfaccia IUnknown per un oggetto gestito tramite il metodo GetIUnknownForObjectInContext.

using System;
using System.Runtime.InteropServices;

class Program
{

    static void Run()
    {

        // Create an int object
        int obj = 1;

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

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

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

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

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

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0

Aggiunte alla community

AGGIUNGI
Mostra:
© 2016 Microsoft