Compartir vía


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

Definición

Solicita un puntero a una interfaz especificada de un objeto 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

Parámetros

pUnk
IntPtr

nativeint

Interfaz que se va a consultar.

iid
Guid

Identificador de interfaz (IID) de la interfaz solicitada.

ppv
IntPtr

nativeint

Cuando este método finaliza, contiene una referencia a la interfaz devuelta.

Devoluciones

HRESULT que indica si la llamada se realizó correctamente o no.

Atributos

Comentarios

El QueryInterface método expone el método IUnknown::QueryInterface de un objeto COM, que intenta obtener un puntero de interfaz específico. El uso QueryInterface de en un objeto COM es el mismo que realizar una operación de conversión en código administrado. Llamar a un objeto con este método hace que el recuento de referencias aumente en el puntero de interfaz antes de que se devuelva el puntero. Marshal.Release Use siempre para disminuir el recuento de referencias una vez que haya terminado con el puntero. Para obtener un IntPtr valor que representa un puntero de interfaz IUnknown , puede llamar a Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjecto Marshal.GetIDispatchForObject.

Se aplica a

Consulte también