Marshal.QueryInterface(IntPtr, Guid, IntPtr) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.