Marshal.GetIUnknownForObject(Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
マネージド オブジェクトから IUnknown インターフェイスを返します。
public:
static IntPtr GetIUnknownForObject(System::Object ^ o);
[System.Security.SecurityCritical]
public static IntPtr GetIUnknownForObject (object o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetIUnknownForObject (object o);
public static IntPtr GetIUnknownForObject (object o);
[<System.Security.SecurityCritical>]
static member GetIUnknownForObject : obj -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetIUnknownForObject : obj -> nativeint
static member GetIUnknownForObject : obj -> nativeint
Public Shared Function GetIUnknownForObject (o As Object) As IntPtr
パラメーター
- o
- Object
要求される IUnknown
インターフェイスを持つオブジェクト。
戻り値
nativeint
o
パラメーターの IUnknown
ポインター。
- 属性
例
次の例では、 メソッドを使用してマネージド オブジェクトの IUnknown インターフェイスを取得する方法を GetIUnknownForObject 示します。
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();
}
}
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.GetIUnknownForObject...")
' Get the IUnKnown pointer for the Integer object
pointer = Marshal.GetIUnknownForObject(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
注釈
マネージド コードでは、 インターフェイスを IUnknown
直接操作することはめったにありません。 ただし、 は、 GetIUnknownForObject COM オブジェクト パラメーターを型として IntPtr 公開するメソッドを呼び出す場合や、カスタム マーシャリングを使用する場合に便利です。 このメソッドを使用して オブジェクトを呼び出すと、ポインターが返される前に、インターフェイス ポインターで参照カウントがインクリメントされます。 ポインターが終了したら、常に を使用 Marshal.Release して参照カウントをデクリメントします。 このメソッドは、 メソッドとは逆の機能を Marshal.GetObjectForIUnknown 提供します。
マネージド オブジェクトでこのメソッドを使用して、オブジェクトの COM 呼び出し可能ラッパー へのインターフェイス ポインターを取得することもできます。
適用対象
こちらもご覧ください
.NET