Marshal.QueryInterface(IntPtr, Guid, IntPtr) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vraagt een aanwijzer naar een opgegeven interface vanuit een 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);
public static int QueryInterface(IntPtr pUnk, ref Guid iid, out IntPtr ppv);
[<System.Security.SecurityCritical>]
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
Parameters
- pUnk
-
IntPtr
nativeint
De interface die moet worden opgevraagd.
- iid
- Guid
De interface-id (IID) van de aangevraagde interface.
- ppv
-
IntPtr
nativeint
Wanneer deze methode wordt geretourneerd, bevat deze een verwijzing naar de geretourneerde interface.
Retouren
Een HRESULT dat aangeeft dat de oproep is geslaagd of mislukt.
- Kenmerken
Opmerkingen
Met QueryInterface de methode wordt de methode IUnknown::QueryInterface van een COM-object weergegeven, waarmee een specifieke interfaceaanwijzer wordt opgehaald. Het gebruik van QueryInterface een COM-object is hetzelfde als het uitvoeren van een cast-bewerking in beheerde code. Als u een object aanroept met deze methode, wordt het aantal verwijzingen verhoogd op de interfaceaanwijzer voordat de aanwijzer wordt geretourneerd. Gebruik Marshal.Release altijd om het aantal verwijzingen te verlagen zodra u klaar bent met de aanwijzer. Als u een IntPtr waarde wilt verkrijgen die een IUnknown-interfaceaanwijzer vertegenwoordigt, kunt u aanroepen Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjectof Marshal.GetIDispatchForObject.