次の方法で共有


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

適用対象

こちらもご覧ください