Поделиться через


Marshal.GetIUnknownForObjectInContext(Object) Метод

Определение

Возвращает интерфейс IUnknown из управляемого объекта, если контекст этого объекта совпадает с контекстом вызывающего объекта.

public:
 static IntPtr GetIUnknownForObjectInContext(System::Object ^ o);
public static IntPtr GetIUnknownForObjectInContext (object o);
[System.Security.SecurityCritical]
public static IntPtr GetIUnknownForObjectInContext (object o);
static member GetIUnknownForObjectInContext : obj -> nativeint
[<System.Security.SecurityCritical>]
static member GetIUnknownForObjectInContext : obj -> nativeint
Public Shared Function GetIUnknownForObjectInContext (o As Object) As IntPtr

Параметры

o
Object

Объект, для которого запрашивается интерфейс IUnknown.

Возвращаемое значение

IntPtr

nativeint

Указатель интерфейса IUnknown для указанного объекта или значение null, если контекст вызывающего объекта отличается от контекста заданного объекта.

Атрибуты

Примеры

В следующем примере показано, как получить IUnknown интерфейс для управляемого объекта с помощью 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();
    }
}
Imports System.Runtime.InteropServices

Module Program


    Sub Run()

        ' Dim an Integer object
        Dim IntegerObject As Integer = 1

        ' Dim a pointer
        Dim pointer As IntPtr

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

        ' Get the IUnKnown pointer for the Integer object
        pointer = Marshal.GetIUnknownForObjectInContext(IntegerObject)

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

        ' Always call Marshal.Release to decrement the reference count.
        Marshal.Release(pointer)



    End Sub

    Sub Main(ByVal args() As String)

        Run()

    End Sub

End Module

Комментарии

Этот метод такой же, как GetIUnknownForObject и за исключением того, что он возвращает null , если вызывающий объект находится не в том же контексте, что и объект .

Применяется к

См. также раздел