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