Marshal.GetIUnknownForObject(Object) メソッド

定義

マネージド オブジェクトから IUnknown インターフェイスを返します。

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);

パラメーター

o
Object

要求される IUnknown インターフェイスを持つオブジェクト。

戻り値

IntPtr

o パラメーターの IUnknown ポインター。

属性

次の例では、 メソッドを使用してマネージド オブジェクトの IUnknown インターフェイスを取得する方法を GetIUnknownForObject 示します。

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

注釈

マネージド コードでは、 インターフェイスを IUnknown 直接操作することはめったにありません。 ただし、 は、 GetIUnknownForObject COM オブジェクト パラメーターを型として IntPtr 公開するメソッドを呼び出す場合や、カスタム マーシャリングを使用する場合に便利です。 このメソッドを使用して オブジェクトを呼び出すと、ポインターが返される前に、インターフェイス ポインターで参照カウントがインクリメントされます。 ポインターが終了したら、常に を使用 Marshal.Release して参照カウントをデクリメントします。 このメソッドは、 メソッドとは逆の機能を Marshal.GetObjectForIUnknown 提供します。

マネージド オブジェクトでこのメソッドを使用して、オブジェクトの COM 呼び出し可能ラッパー へのインターフェイス ポインターを取得することもできます。

適用対象

製品 バージョン
.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

こちらもご覧ください