Marshal.GetComInterfaceForObject 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
개체의 인터페이스를 나타내는 인터페이스 포인터를 반환합니다.
오버로드
GetComInterfaceForObject(Object, Type) |
사용되지 않음.
지정된 개체의 지정된 인터페이스를 나타내는 IUnknown 인터페이스에 대한 포인터를 반환합니다. 사용자 지정 쿼리 인터페이스 액세스가 기본적으로 사용됩니다. |
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) |
사용되지 않음.
지정된 개체의 지정된 인터페이스를 나타내는 IUnknown 인터페이스에 대한 포인터를 반환합니다. 사용자 지정 쿼리 인터페이스 액세스는 지정된 사용자 지정 모드에 의해 제어됩니다. |
GetComInterfaceForObject<T,TInterface>(T) |
지정된 형식의 개체에 지정된 인터페이스를 나타내는 IUnknown 인터페이스에 대한 포인터를 반환합니다. 사용자 지정 쿼리 인터페이스 액세스가 기본적으로 사용됩니다. |
GetComInterfaceForObject(Object, Type)
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- 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인터페이스 포인터를 가져올 수 있습니다. 클래스 인터페이스에 두 번째 매개 변수(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)
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- 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)
- Source:
- Marshal.NoCom.cs
- Source:
- Marshal.NoCom.cs
- Source:
- 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