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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示