Marshal.QueryInterface(IntPtr, Guid, IntPtr) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Solicita um ponteiro para uma interface especificada de um 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
A interface a ser consultada.
- iid
- Guid
O IID (identificador de interface) da interface solicitada.
- ppv
-
IntPtr
nativeint
Quando este método retorna, ele contém uma referência à interface retornada.
Retornos
Um HRESULT que indica o êxito ou falha da chamada.
- Atributos
Comentários
O QueryInterface método expõe o método IUnknown::QueryInterface de um objeto COM, que tenta obter um ponteiro de interface específico. Usar QueryInterface
em um objeto COM é o mesmo que executar uma operação de conversão no código gerenciado. Chamar um objeto com esse método faz com que a contagem de referência incremente no ponteiro da interface antes que o ponteiro seja retornado. Sempre use Marshal.Release para diminuir a contagem de referências depois de terminar com o ponteiro. Para obter um IntPtr valor que representa um ponteiro de interface IUnknown , você pode chamar Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjectou Marshal.GetIDispatchForObject.