Marshal.GetObjectForIUnknown(IntPtr) メソッド

定義

IUnknown インターフェイスへのポインターによって COM オブジェクトを表す型のインスタンスを返します。

public:
 static System::Object ^ GetObjectForIUnknown(IntPtr pUnk);
[System.Security.SecurityCritical]
public static object GetObjectForIUnknown(IntPtr pUnk);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object GetObjectForIUnknown(IntPtr pUnk);
public static object GetObjectForIUnknown(IntPtr pUnk);
[<System.Security.SecurityCritical>]
static member GetObjectForIUnknown : nativeint -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetObjectForIUnknown : nativeint -> obj
static member GetObjectForIUnknown : nativeint -> obj
Public Shared Function GetObjectForIUnknown (pUnk As IntPtr) As Object

パラメーター

pUnk
IntPtr

nativeint

IUnknown インターフェイスへのポインター。

返品

指定したアンマネージ COM オブジェクトを表すオブジェクト。

属性

例外

pUnkZeroです。

注釈

このメソッドは、マネージド オブジェクト内の IUnknown をラップします。 これは、COM コンポーネントの参照カウントをインクリメントする効果があります。 COM オブジェクトを表すマネージド オブジェクトに対してランタイムがガベージ コレクションを実行すると、参照カウントがデクリメントされます。

pUnk パラメーターは、IUnknown インターフェイス ポインターを表します。ただし、すべての COM インターフェイスが直接または間接的にIUnknownから派生するため、任意の COM インターフェイスをこのメソッドに渡すことができます。 GetObjectForIUnknownによって返されるオブジェクトはランタイム呼び出し可能ラッパーであり、共通言語ランタイムは他のマネージド オブジェクトと同様に管理します。 このラッパーの型は、多くの場合、基本 System.__ComObject 型であり、ラッパー型があいまいな場合に使用される非表示の型です。 COM オブジェクトが IDispatch インターフェイスを実装している限り、このような基本型に対して遅延バインディング呼び出しを行うことができます。 同様に、返されたオブジェクトを適切な COM インターフェイスにキャストできます。

オブジェクトを特定のマネージド クラス型 (ジェネリック ラッパー型ではなく) でラップするには、次の要件に従う必要があります。

または、これらの要件を回避し、 Marshal.GetTypedObjectForIUnknown メソッドを使用して特定のマネージド クラス型でラップされたオブジェクトを取得することもできます。

適用対象

こちらもご覧ください