Marshal.GetObjectForIUnknown(IntPtr) メソッド

定義

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

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 取得することもできます。

適用対象

こちらもご覧ください