Marshal.QueryInterface(IntPtr, Guid, IntPtr) Metoda

Definicja

Żąda wskaźnika do określonego interfejsu z obiektu COM.

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);
public static int QueryInterface (IntPtr pUnk, in 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

Parametry

pUnk
IntPtr

nativeint

Interfejs do odpytowania.

iid
Guid

Identyfikator interfejsu (IID) żądanego interfejsu.

ppv
IntPtr

nativeint

Po zwróceniu tej metody element zawiera odwołanie do zwróconego interfejsu.

Zwraca

HRESULT wskazujący powodzenie lub niepowodzenie wywołania.

Atrybuty

Uwagi

Metoda QueryInterface uwidacznia metodę IUnknown::QueryInterface obiektu COM, która próbuje uzyskać określony wskaźnik interfejsu. Użycie QueryInterface w obiekcie COM jest takie samo jak wykonywanie operacji rzutowania w kodzie zarządzanym. Wywołanie obiektu za pomocą tej metody powoduje, że liczba odwołań zwiększa się w wskaźniku interfejsu przed zwróceniem wskaźnika. Zawsze używaj polecenia Marshal.Release , aby odkreślić liczbę odwołań po zakończeniu pracy ze wskaźnikiem. Aby uzyskać wartość reprezentującą wskaźnik interfejsu IUnknown, możesz wywołać Marshal.GetComInterfaceForObjectmetodę IntPtr , Marshal.GetIUnknownForObjectlub Marshal.GetIDispatchForObject.

Dotyczy

Zobacz też