Marshal.GetComInterfaceForObject メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オブジェクトのインターフェイスを表すインターフェイス ポインターを返します。
オーバーロード
GetComInterfaceForObject(Object, Type) |
古い.
指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。 カスタム クエリ インターフェイス アクセスは既定で有効になっています。 |
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) |
古い.
指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。 カスタム クエリ インターフェイス アクセスは、指定したカスタマイズ モードで制御されます。 |
GetComInterfaceForObject<T,TInterface>(T) |
指定した型のオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。 カスタム クエリ インターフェイス アクセスは既定で有効になっています。 |
GetComInterfaceForObject(Object, Type)
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
注意事項
GetComInterfaceForObject(Object, Type) may be unavailable in future releases. Instead, use GetComInterfaceForObject<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296509
指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。 カスタム クエリ インターフェイス アクセスは既定で有効になっています。
public:
static IntPtr GetComInterfaceForObject(System::Object ^ o, Type ^ T);
[System.Obsolete("GetComInterfaceForObject(Object, Type) may be unavailable in future releases. Instead, use GetComInterfaceForObject<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296509")]
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject (object o, Type T);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetComInterfaceForObject (object o, Type T);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject (object o, Type T);
public static IntPtr GetComInterfaceForObject (object o, Type T);
[<System.Obsolete("GetComInterfaceForObject(Object, Type) may be unavailable in future releases. Instead, use GetComInterfaceForObject<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296509")>]
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetComInterfaceForObject : obj * Type -> nativeint
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type -> nativeint
static member GetComInterfaceForObject : obj * Type -> nativeint
Public Shared Function GetComInterfaceForObject (o As Object, T As Type) As IntPtr
パラメーター
- o
- Object
インターフェイスを提供するオブジェクト。
- T
- Type
要求されるインターフェイスの型。
戻り値
nativeint
オブジェクトの指定したインターフェイスを表すインターフェイス ポインター。
- 属性
例外
o
パラメーターが要求されたインターフェイスをサポートしていません。
注釈
このメソッドは、指定したオブジェクトで要求されたインターフェイスを表すインターフェイス ポインターを返します。 インターフェイス ポインターが渡されることを期待するアンマネージ メソッドがある場合は、特に便利です。 このメソッドを使用して オブジェクトを呼び出すと、ポインターが返される前に、インターフェイス ポインターで参照カウントがインクリメントされます。 ポインターが終了したら、常に を使用 Marshal.Release して参照カウントをデクリメントします。 生の COM インターフェイス ポインターを使用する場合は、COM によって定義された規則に従う必要があります。
GetComInterfaceForObject(Object, Type) は、COM オブジェクト パラメーターを型として IntPtr 公開するメソッドを呼び出す場合や、カスタム マーシャリングを使用する場合に便利です。 あまり一般的ではありませんが、マネージド オブジェクトでこのメソッドを使用して、オブジェクトの COM 呼び出し可能ラッパーへのポインターを取得できます。 たとえば、COM にエクスポートされるマネージド オブジェクトで を使用 GetComInterfaceForObject(Object, Type) して、 の System.Runtime.InteropServices.UCOMIConnectionPointContainerインターフェイス ポインターを取得できます。 クラス インターフェイスには、2 番目のパラメーター (t
) に渡す対応する型がないため、クラス インターフェイスへのポインターを取得できません。 代わりに、 を使用 Marshal.GetIDispatchForObject して、COM 呼び出し可能ラッパーの既定のインターフェイス (通常は自動ディスパッチ クラス インターフェイス) でメンバーを呼び出します。
メソッド オーバーロードを GetComInterfaceForObject(Object, Type) 使用すると、既定でクエリ インターフェイスをカスタマイズできます。 クエリ インターフェイスのカスタマイズを適用するかどうかを指定するには、 メソッドのオーバーロードを GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) 使用します。
詳細については、 COM 呼び出し可能ラッパー と ランタイム呼び出し可能ラッパー に関する記事を参照してください。
こちらもご覧ください
- GetComInterfaceForObjectInContext(Object, Type)
- ComImportAttribute
- Release(IntPtr)
- UCOMIConnectionPointContainer
- GetIDispatchForObject(Object)
適用対象
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
注意事項
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.
指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。 カスタム クエリ インターフェイス アクセスは、指定したカスタマイズ モードで制御されます。
public:
static IntPtr GetComInterfaceForObject(System::Object ^ o, Type ^ T, System::Runtime::InteropServices::CustomQueryInterfaceMode mode);
[System.Obsolete("GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject (object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetComInterfaceForObject (object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject (object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
public static IntPtr GetComInterfaceForObject (object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
[<System.Obsolete("GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
Public Shared Function GetComInterfaceForObject (o As Object, T As Type, mode As CustomQueryInterfaceMode) As IntPtr
パラメーター
- o
- Object
インターフェイスを提供するオブジェクト。
- T
- Type
要求されるインターフェイスの型。
ICustomQueryInterface によって提供される IUnknown::QueryInterface
カスタマイズを適用するかどうかを示す列挙値のいずれか。
戻り値
nativeint
オブジェクトのインターフェイスを表すインターフェイス ポインター。
- 属性
例外
オブジェクト o
が要求されたインターフェイスをサポートしていません。
注釈
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) では、クエリ インターフェイスのカスタマイズを適用するかどうかを指定できます。 既定では、 オーバーロードを GetComInterfaceForObject(Object, Type) 使用してクエリ インターフェイスのカスタマイズを適用します。
適用対象
GetComInterfaceForObject<T,TInterface>(T)
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
- ソース:
- Marshal.NoCom.cs
指定した型のオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。 カスタム クエリ インターフェイス アクセスは既定で有効になっています。
public:
generic <typename T, typename TInterface>
static IntPtr GetComInterfaceForObject(T o);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject<T,TInterface> (T o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetComInterfaceForObject<T,TInterface> (T o);
public static IntPtr GetComInterfaceForObject<T,TInterface> (T o);
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : 'T -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetComInterfaceForObject : 'T -> nativeint
static member GetComInterfaceForObject : 'T -> nativeint
Public Shared Function GetComInterfaceForObject(Of T, TInterface) (o As T) As IntPtr
型パラメーター
- T
o
の型。
- TInterface
返すインターフェイスの型。
パラメーター
- o
- T
インターフェイスを提供するオブジェクト。
戻り値
nativeint
TInterface
インターフェイスを表すインターフェイス ポインター。
- 属性
例外
TInterface
パラメーターがインターフェイスではありません。
または
型が COM から参照できません。
または
T
パラメーターがオープン ジェネリック型です。
o
パラメーターが TInterface
インターフェイスをサポートしていません。
o
パラメーターが null
です。
注釈
このメソッドは、指定したオブジェクトのインターフェイスを TInterface
表すインターフェイス ポインターを返します。 インターフェイス ポインターが渡されることを期待するアンマネージ メソッドがある場合は、特に便利です。 このメソッドを使用して オブジェクトを呼び出すと、ポインターが返される前に、インターフェイス ポインターで参照カウントがインクリメントされます。 ポインターが Marshal.Release 終了したら、常に メソッドを使用して参照カウントをデクリメントします。 生の COM インターフェイス ポインターを使用する場合は、COM によって定義された規則に従う必要があります。
GetComInterfaceForObject<T,TInterface>(T) は、COM オブジェクト パラメーターを型として IntPtr 公開するメソッドを呼び出す場合や、カスタム マーシャリングを使用する場合に便利です。 マネージド オブジェクトでこのメソッドを使用して、オブジェクトの COM 呼び出し可能ラッパーへのポインターを取得することもできますが、これはあまり一般的ではありません。 たとえば、COM にエクスポートされるマネージド オブジェクトで を使用 GetComInterfaceForObject<T,TInterface>(T) して、 の System.Runtime.InteropServices.UCOMIConnectionPointContainerインターフェイス ポインターを取得できます。
メソッド オーバーロードを GetComInterfaceForObject<T,TInterface>(T) 使用すると、既定でクエリ インターフェイスをカスタマイズできます。 クエリ インターフェイスのカスタマイズを適用するかどうかを指定するには、 メソッドのオーバーロードを GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) 使用します。
詳細については、 COM 呼び出し可能ラッパー と ランタイム呼び出し可能ラッパー に関する記事を参照してください。
適用対象
.NET