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

Definição

Solicita um ponteiro para uma interface especificada a partir 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);
public static int QueryInterface(IntPtr pUnk, ref Guid iid, out IntPtr ppv);
[<System.Security.SecurityCritical>]
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 identificador da interface (IID) da interface solicitada.

ppv
IntPtr

nativeint

Quando este método retorna, contém uma referência à interface retornada.

Devoluções

Um HRESULT que indica o sucesso ou fracasso da chamada.

Atributos

Observações

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 num objeto COM é o mesmo que realizar uma operação de cast em código gerido. Chamar um objeto com este método faz com que a contagem de referências aumente no ponteiro da interface antes de este ser devolvido. Usa Marshal.Release sempre para diminuir a contagem de referências depois de terminares com o apontador. Para obter um IntPtr valor que represente um ponteiro de interface IUnknown , pode chamar Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObject, ou Marshal.GetIDispatchForObject.

Aplica-se a

Ver também