Marshal.QueryInterface(IntPtr, Guid, IntPtr) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Żą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 którego ma być odpytywane.
- iid
- Guid
Identyfikator interfejsu (IID) żądanego interfejsu.
- ppv
-
IntPtr
nativeint
Gdy ta metoda zostanie zwrócona, 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
obiektu 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 wskaźnik interfejsu przed zwróceniem wskaźnika. Zawsze używaj polecenia Marshal.Release , aby zdekrementować liczbę odwołań po zakończeniu pracy ze wskaźnikiem. Aby uzyskać wartość reprezentującą IntPtr wskaźnik interfejsu IUnknown , możesz wywołać Marshal.GetComInterfaceForObjectmetodę , Marshal.GetIUnknownForObjectlub Marshal.GetIDispatchForObject.