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);
[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

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 indiquant 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 sur un objet COM équivaut à effectuer 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 que le pointeur ne soit retourné. Marshal.Release Utilisez toujours pour décrémenter le nombre de références une fois que vous avez terminé avec le pointeur. Pour obtenir une IntPtr valeur qui représente un pointeur d’interface IUnknown , vous pouvez appeler Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjectou Marshal.GetIDispatchForObject.

S’applique à

Voir aussi