Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

Marshal.GetIUnknownForObjectInContext (Método)

Actualización: noviembre 2007

Devuelve una interfaz IUnknown de un objeto administrado, si el llamador está en el mismo contexto que ese objeto.

Espacio de nombres:  System.Runtime.InteropServices
Ensamblado:  mscorlib (en mscorlib.dll)

[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public static IntPtr GetIUnknownForObjectInContext(
	Object o
)
/** @attribute SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode) */
public static IntPtr GetIUnknownForObjectInContext(
	Object o
)
public static function GetIUnknownForObjectInContext(
	o : Object
) : IntPtr

Parámetros

o
Tipo: System.Object
Objeto cuya interfaz IUnknown se solicita.

Valor devuelto

Tipo: System.IntPtr
El puntero IUnknown para el parámetro o o null si el llamador no está en el mismo contexto que el objeto especificado.

Este método es igual que GetIUnknownForObject con la diferencia de que devuelve null si el llamador no está en el mismo contexto que el objeto.

01fa0ksk.alert_note(es-es,VS.90).gifNota:

Este método utiliza SecurityAction.LinkDemand para evitar que se le llame desde código que no sea de confianza; sólo el llamador inmediato debe disponer del permiso SecurityPermissionAttribute.UnmanagedCode. Si se puede llamar al código desde código de confianza parcial, no pase ninguna entrada de usuario a los métodos de la clase Marshal sin validación. Para conocer las importantes limitaciones que existen a la hora de utilizar el miembro LinkDemand, vea Demand frente a LinkDemand.

En el ejemplo de código siguiente se muestra cómo recuperar una interfaz IUnknown para un objeto administrado utilizando el método 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 Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft