Marshal.QueryInterface(IntPtr, Guid, IntPtr) 메서드

정의

COM 개체에서 지정된 인터페이스에 대한 포인터를 요청합니다.Requests a pointer to a specified interface from a COM object.

public:
 static int QueryInterface(IntPtr pUnk, Guid % iid, [Runtime::InteropServices::Out] IntPtr % ppv);
[System.Security.SecurityCritical]
public static int QueryInterface (IntPtr pUnk, ref Guid iid, out IntPtr ppv);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static int QueryInterface (IntPtr pUnk, ref Guid iid, out IntPtr ppv);
public static int QueryInterface (IntPtr pUnk, ref Guid iid, out IntPtr ppv);
[<System.Security.SecurityCritical>]
static member QueryInterface : nativeint * Guid * nativeint -> int
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member QueryInterface : nativeint * Guid * nativeint -> int
static member QueryInterface : nativeint * Guid * nativeint -> int
Public Shared Function QueryInterface (pUnk As IntPtr, ByRef iid As Guid, ByRef ppv As IntPtr) As Integer

매개 변수

pUnk
IntPtr

쿼리될 인터페이스입니다.The interface to be queried.

iid
Guid

요청된 인터페이스의 IID(인터페이스 식별자)입니다.The interface identifier (IID) of the requested interface.

ppv
IntPtr

이 메서드는 반환될 때 반환된 인터페이스에 대한 참조를 포함합니다.When this method returns, contains a reference to the returned interface.

반환

Int32

호출의 성공이나 실패를 나타내는 HRESULT입니다.An HRESULT that indicates the success or failure of the call.

특성

설명

QueryInterface메서드는 특정 인터페이스 포인터를 가져오려고 시도 하는 COM 개체의 IUnknown:: QueryInterface 메서드를 노출 합니다.The QueryInterface method exposes the IUnknown::QueryInterface method of a COM object, which attempts to obtain a specific interface pointer. COM 개체에서를 사용 하는 QueryInterface 것은 관리 코드에서 캐스트 작업을 수행 하는 것과 같습니다.Using QueryInterface on a COM object is the same as performing a cast operation in managed code. 이 메서드를 사용 하 여 개체를 호출 하면 포인터를 반환 하기 전에 인터페이스 포인터에서 참조 횟수가 증가 합니다.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. IntPtr IUnknown 인터페이스 포인터를 나타내는 값을 가져오기 위해, 또는를 호출할 수 Marshal.GetComInterfaceForObject 있습니다 Marshal.GetIUnknownForObject Marshal.GetIDispatchForObject .To obtain an IntPtr value that represents a IUnknown interface pointer, you can call Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObject, or Marshal.GetIDispatchForObject.

적용 대상

추가 정보