Marshal.QueryInterface(IntPtr, Guid, IntPtr) Méthode

Définition

Demande un pointeur vers une interface spécifiée à partir d’un objet 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);
public static int QueryInterface(IntPtr pUnk, in 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, ref readonly Guid iid, out IntPtr ppv);
[<System.Security.SecurityCritical>]
static member QueryInterface : nativeint * Guid * nativeint -> int
static member QueryInterface : nativeint * Guid * nativeint -> int
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member QueryInterface : nativeint * Guid * nativeint -> int
Public Shared Function QueryInterface (pUnk As IntPtr, ByRef iid As Guid, ByRef ppv As IntPtr) As Integer

Paramètres

pUnk
IntPtr

nativeint

Interface à interroger.

iid
Guid

Identificateur d’interface (IID) de l’interface demandée.

ppv
IntPtr

nativeint

Lorsque cette méthode est retournée, contient une référence à l’interface retournée.

Retours

HRESULT qui indique la réussite ou l’échec de l’appel.

Attributs

Remarques

La QueryInterface méthode expose la méthode IUnknown ::QueryInterface d’un objet COM, qui tente d’obtenir un pointeur d’interface spécifique. L’utilisation QueryInterface d’un objet COM est identique à l’exécution d’une opération de cast dans du code managé. L’appel d’un objet avec cette méthode entraîne l’incrémentation du nombre de références sur le pointeur d’interface avant le retour du pointeur. Utilisez Marshal.Release toujours pour décrémenter le nombre de références une fois le pointeur terminé. Pour obtenir une valeur qui représente un pointeur d’interface IntPtrIUnknown , vous pouvez appeler Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjectou Marshal.GetIDispatchForObject.

S’applique à

Voir aussi