Marshal.GetComInterfaceForObject Marshal.GetComInterfaceForObject Marshal.GetComInterfaceForObject Marshal.GetComInterfaceForObject Method

定義

オブジェクトのインターフェイスを表すインターフェイス ポインターを返します。Returns an interface pointer that represents an interface for an object.

オーバーロード

GetComInterfaceForObject(Object, Type) GetComInterfaceForObject(Object, Type) GetComInterfaceForObject(Object, Type) GetComInterfaceForObject(Object, Type)

指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. カスタム クエリ インターフェイス アクセスは既定で有効になっています。Custom query interface access is enabled by default.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. カスタム クエリ インターフェイス アクセスは、指定したカスタマイズ モードで制御されます。Custom query interface access is controlled by the specified customization mode.

GetComInterfaceForObject<T,TInterface>(T) GetComInterfaceForObject<T,TInterface>(T) GetComInterfaceForObject<T,TInterface>(T) GetComInterfaceForObject<T,TInterface>(T)

[.NET Framework 4.5.1 以降のバージョンでサポート][Supported in the .NET Framework 4.5.1 and later versions] 指定した型のオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。Returns a pointer to an IUnknown interface that represents the specified interface on an object of the specified type. カスタム クエリ インターフェイス アクセスは既定で有効になっています。Custom query interface access is enabled by default.

GetComInterfaceForObject(Object, Type) GetComInterfaceForObject(Object, Type) GetComInterfaceForObject(Object, Type) GetComInterfaceForObject(Object, Type)

警告

この API は現在使われていません。

指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. カスタム クエリ インターフェイス アクセスは既定で有効になっています。Custom query interface access is enabled by default.

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);
static member GetComInterfaceForObject : obj * Type -> nativeint
Public Shared Function GetComInterfaceForObject (o As Object, T As Type) As IntPtr

パラメーター

o
Object Object Object Object

インターフェイスを提供するオブジェクト。The object that provides the interface.

T
Type Type Type Type

要求されるインターフェイスの型。The type of interface that is requested.

戻り値

オブジェクトの指定したインターフェイスを表すインターフェイス ポインター。The interface pointer that represents the specified interface for the object.

例外

T パラメーターがインターフェイスではありません。The T parameter is not an interface.

または-or- 型が COM から参照できません。The type is not visible to COM.

または-or- T パラメーターがジェネリック型定義です。The T parameter is a generic type definition.

o パラメーターが要求されたインターフェイスをサポートしていません。The o parameter does not support the requested interface.

o パラメーターが null です。The o parameter is null.

または-or- T パラメーターが null です。The T parameter is null.

注釈

このメソッドは、指定されたオブジェクトに対して要求されたインターフェイスを表すインターフェイス ポインターを返します。This method returns an interface pointer that represents the requested interface on the specified object. これは、インターフェイス ポインターを渡す必要があるアンマネージ メソッドがある場合に特に役立ちます。It is particularly useful if you have an unmanaged method that expects to be passed an interface pointer. このメソッドを使用してオブジェクトを呼び出すと、ポインターが返される前に、インターフェイス ポインターをインクリメントする参照カウントが、します。Calling an object with this method causes the reference count to increment on the interface pointer before the pointer is returned. 常に使用するMarshal.Releaseポインターが完了したら、参照カウントをデクリメントします。Always use Marshal.Release to decrement the reference count once you have finished with the pointer. 生の COM インターフェイス ポインターを使用する場合は、COM によって定義されたルールに従ってください。You must adhere to the rules defined by COM when using raw COM interface pointers.

GetComInterfaceForObject(Object, Type) COM オブジェクトのパラメーターとしてを公開するメソッドを呼び出している場合に便利です、IntPtr型、またはカスタム マーシャ リングします。GetComInterfaceForObject(Object, Type) is useful when calling a method that exposes a COM object parameter as an IntPtr type, or with custom marshaling. マネージ オブジェクトでこのメソッドを使用すると、一般的ではありませんが、オブジェクトの COM 呼び出し可能ラッパーへのポインターを取得します。Although less common, you can use this method on a managed object to obtain a pointer to the object's COM callable wrapper. たとえば、使用することができますGetComInterfaceForObject(Object, Type)COM インターフェイス ポインターを取得するにはエクスポートされるマネージ オブジェクトでSystem.Runtime.InteropServices.UCOMIConnectionPointContainerします。For example, you can use GetComInterfaceForObject(Object, Type) on a managed object that is exported to COM to obtain an interface pointer for System.Runtime.InteropServices.UCOMIConnectionPointContainer. 2 番目のパラメーターに渡す、対応する型がないために、クラス インターフェイスへのポインターを取得することはできません (t)。You cannot obtain a pointer to a class interface since a class interface lacks the corresponding type to pass to the second parameter (t). 代わりに、Marshal.GetIDispatchForObject自動ディスパッチ クラス インターフェイスでは、通常、COM 呼び出し可能ラッパーの既定のインターフェイスのメンバーを呼び出します。Instead, use Marshal.GetIDispatchForObject to invoke the members on the default interface of the COM callable wrapper, which is usually an auto-dispatch class interface.

GetComInterfaceForObject(Object, Type)メソッドのオーバー ロードは、既定ではクエリ インターフェイスのカスタマイズを許可します。The GetComInterfaceForObject(Object, Type) method overload allows query interface customization by default. クエリ インターフェイスのカスタマイズを適用するかどうかを指定するには、使用、GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)メソッドのオーバー ロードします。To specify whether to apply query interface customization, use the GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) method overload.

詳細については、次を参照してください。、 COM 呼び出し可能ラッパーランタイム呼び出し可能ラッパー、およびクラス インターフェイスの概要トピック。For additional information, see the COM Callable Wrapper, Runtime Callable Wrapper, and Introducing the Class Interface topics.

セキュリティ

SecurityCriticalAttribute
直前の呼び出し元に対する完全な信頼が必要です。requires full trust for the immediate caller. このメンバーは、部分的に信頼されたまたは透過的なコードで使用することはできません。This member cannot be used by partially trusted or transparent code.

こちらもご覧ください

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

警告

この API は現在使われていません。

指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. カスタム クエリ インターフェイス アクセスは、指定したカスタマイズ モードで制御されます。Custom query interface access is controlled by the specified customization mode.

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);
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 Object Object Object

インターフェイスを提供するオブジェクト。The object that provides the interface.

T
Type Type Type Type

要求されるインターフェイスの型。The type of interface that is requested.

mode
CustomQueryInterfaceMode CustomQueryInterfaceMode CustomQueryInterfaceMode CustomQueryInterfaceMode

ICustomQueryInterface によって提供される IUnknown::QueryInterface カスタマイズを適用するかどうかを示す列挙値のいずれか。One of the enumeration values that indicates whether to apply an IUnknown::QueryInterface customization that is supplied by an ICustomQueryInterface.

戻り値

オブジェクトのインターフェイスを表すインターフェイス ポインター。The interface pointer that represents the interface for the object.

例外

T パラメーターがインターフェイスではありません。The T parameter is not an interface.

または-or- 型が COM から参照できません。The type is not visible to COM.

または-or- T パラメーターがジェネリック型定義です。The T parameter is a generic type definition.

オブジェクト o が要求されたインターフェイスをサポートしていません。The object o does not support the requested interface.

o パラメーターが null です。The o parameter is null.

または-or- T パラメーターが null です。The T parameter is null.

注釈

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) クエリ インターフェイスのカスタマイズを適用するかどうかを指定できます。GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) lets you specify whether to apply query interface customization. 使用して、GetComInterfaceForObject(Object, Type)既定ではクエリ インターフェイスのカスタマイズを適用するオーバー ロードします。Use the GetComInterfaceForObject(Object, Type) overload to apply query interface customization by default.

セキュリティ

SecurityCriticalAttribute
直前の呼び出し元に対する完全な信頼が必要です。requires full trust for the immediate caller. このメンバーは、部分的に信頼されたまたは透過的なコードで使用することはできません。This member cannot be used by partially trusted or transparent code.

GetComInterfaceForObject<T,TInterface>(T) GetComInterfaceForObject<T,TInterface>(T) GetComInterfaceForObject<T,TInterface>(T) GetComInterfaceForObject<T,TInterface>(T)

[.NET Framework 4.5.1 以降のバージョンでサポート][Supported in the .NET Framework 4.5.1 and later versions] 指定した型のオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。Returns a pointer to an IUnknown interface that represents the specified interface on an object of the specified type. カスタム クエリ インターフェイス アクセスは既定で有効になっています。Custom query interface access is enabled by default.

public:
generic <typename T, typename TInterface>
 static IntPtr GetComInterfaceForObject(T o);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject<T,TInterface> (T o);
static member GetComInterfaceForObject : 'T -> nativeint
Public Shared Function GetComInterfaceForObject(Of T, TInterface) (o As T) As IntPtr

型パラメーター

T

o の型。The type of o.

TInterface

返すインターフェイスの型。The type of interface to return.

パラメーター

o
T T T T

インターフェイスを提供するオブジェクト。The object that provides the interface.

戻り値

TInterface インターフェイスを表すインターフェイス ポインター。The interface pointer that represents the TInterface interface.

例外

TInterface パラメーターがインターフェイスではありません。The TInterface parameter is not an interface.

または-or- 型が COM から参照できません。The type is not visible to COM.

または-or- T パラメーターがオープン ジェネリック型です。The T parameter is an open generic type.

o パラメーターが TInterface インターフェイスをサポートしていません。The o parameter does not support the TInterface interface.

o パラメーターが null です。The o parameter is null.

注釈

このメソッドを表すインターフェイス ポインターを返します、TInterface指定したオブジェクトのインターフェイス。This method returns an interface pointer that represents the TInterface interface on the specified object. これは、インターフェイス ポインターを渡す必要があるアンマネージ メソッドがある場合に特に役立ちます。It is particularly useful if you have an unmanaged method that expects to be passed an interface pointer. このメソッドを使用してオブジェクトを呼び出すと、ポインターが返される前に、インターフェイス ポインターをインクリメントする参照カウントが、します。Calling an object with this method causes the reference count to increment on the interface pointer before the pointer is returned. 常に使用して、Marshal.Releaseポインターが完了したら、参照カウントをデクリメントします。Always use the Marshal.Release method to decrement the reference count when you have finished with the pointer. 生の COM インターフェイス ポインターを使用する場合は、COM によって定義されたルールに従ってください。You must adhere to the rules defined by COM when using raw COM interface pointers.

GetComInterfaceForObject<T,TInterface>(T) COM オブジェクトのパラメーターとしてを公開するメソッドを呼び出している場合に便利です、IntPtr型、またはカスタム マーシャ リングします。GetComInterfaceForObject<T,TInterface>(T) is useful when calling a method that exposes a COM object parameter as an IntPtr type, or with custom marshaling. オブジェクトの COM 呼び出し可能ラッパーへのポインターを取得するのにマネージ オブジェクトでは、これはまれですが、このメソッドを使用できますも。You can also use this method on a managed object to obtain a pointer to the object's COM callable wrapper, although this is less common. たとえば、使用することができますGetComInterfaceForObject<T,TInterface>(T)COM インターフェイス ポインターを取得するにはエクスポートされるマネージ オブジェクトでSystem.Runtime.InteropServices.UCOMIConnectionPointContainerします。For example, you can use GetComInterfaceForObject<T,TInterface>(T) on a managed object that is exported to COM to obtain an interface pointer for System.Runtime.InteropServices.UCOMIConnectionPointContainer.

GetComInterfaceForObject<T,TInterface>(T)メソッドのオーバー ロードは、既定ではクエリ インターフェイスのカスタマイズを許可します。The GetComInterfaceForObject<T,TInterface>(T) method overload allows query interface customization by default. クエリ インターフェイスのカスタマイズを適用するかどうかを指定するには、使用、GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)メソッドのオーバー ロードします。To specify whether to apply query interface customization, use the GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) method overload.

詳細については、次を参照してください。、 COM 呼び出し可能ラッパーランタイム呼び出し可能ラッパー、およびクラス インターフェイスの概要トピック。For additional information, see the COM Callable Wrapper, Runtime Callable Wrapper, and Introducing the Class Interface topics.

セキュリティ

SecurityCriticalAttribute
直前の呼び出し元に対する完全な信頼が必要です。requires full trust for the immediate caller. このメンバーは、部分的に信頼されたまたは透過的なコードで使用することはできません。This member cannot be used by partially trusted or transparent code.

適用対象