Compartilhar via


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

Definição

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.

Aplica-se a

Confira também