Marshal.GetObjectForIUnknown(IntPtr) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 オブジェクトを表すオブジェクト。
- 属性
例外
pUnk は Zeroです。
注釈
このメソッドは、マネージド オブジェクト内の IUnknown をラップします。 これは、COM コンポーネントの参照カウントをインクリメントする効果があります。 COM オブジェクトを表すマネージド オブジェクトに対してランタイムがガベージ コレクションを実行すると、参照カウントがデクリメントされます。
pUnk パラメーターは、IUnknown インターフェイス ポインターを表します。ただし、すべての COM インターフェイスが直接または間接的にIUnknownから派生するため、任意の COM インターフェイスをこのメソッドに渡すことができます。
GetObjectForIUnknownによって返されるオブジェクトはランタイム呼び出し可能ラッパーであり、共通言語ランタイムは他のマネージド オブジェクトと同様に管理します。 このラッパーの型は、多くの場合、基本 System.__ComObject 型であり、ラッパー型があいまいな場合に使用される非表示の型です。 COM オブジェクトが IDispatch インターフェイスを実装している限り、このような基本型に対して遅延バインディング呼び出しを行うことができます。 同様に、返されたオブジェクトを適切な COM インターフェイスにキャストできます。
オブジェクトを特定のマネージド クラス型 (ジェネリック ラッパー型ではなく) でラップするには、次の要件に従う必要があります。
COM オブジェクトの IProvideClassInfo インターフェイスを実装します。
Regasm.exe (アセンブリ登録ツール) を使用して、含まれているアセンブリを登録します。
または、これらの要件を回避し、 Marshal.GetTypedObjectForIUnknown メソッドを使用して特定のマネージド クラス型でラップされたオブジェクトを取得することもできます。