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

Definição

Solicita um ponteiro para uma interface especificada de um objeto COM.Requests a pointer to a specified interface from a COM object.

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);
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

A interface a ser consultada.The interface to be queried.

iid
Guid

O IID (identificador de interface) da interface solicitada.The interface identifier (IID) of the requested interface.

ppv
IntPtr

Quando este método retorna, ele contém uma referência à interface retornada.When this method returns, contains a reference to the returned interface.

Retornos

Um HRESULT que indica o êxito ou falha da chamada.An HRESULT that indicates the success or failure of the call.

Atributos

Comentários

O método QueryInterface expõe o método IUnknown:: QueryInterface de um objeto com, que tenta obter um ponteiro de interface específico.The QueryInterface method exposes the IUnknown::QueryInterface method of a COM object, which attempts to obtain a specific interface pointer. O uso de QueryInterface em um objeto COM é o mesmo que executar uma operação Cast no código gerenciado.Using QueryInterface on a COM object is the same as performing a cast operation in managed code. Chamar um objeto com esse método faz com que a contagem de referência seja incrementada no ponteiro da interface antes que o ponteiro seja retornado.Calling an object with this method causes the reference count to increment on the interface pointer before the pointer is returned. Sempre use Marshal.Release para decrementar a contagem de referência depois de terminar com o ponteiro.Always use Marshal.Release to decrement the reference count once you have finished with the pointer. Para obter um valor de IntPtr que representa um ponteiro de interface IUnknown , você pode chamar Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjectou Marshal.GetIDispatchForObject.To obtain an IntPtr value that represents a IUnknown interface pointer, you can call Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObject, or Marshal.GetIDispatchForObject.

Segurança

SecurityCriticalAttribute
requer confiança total para o chamador imediato.requires full trust for the immediate caller. Este membro não pode ser usado pelo código transparente ou parcialmente confiável.This member cannot be used by partially trusted or transparent code.

Aplica-se a

Veja também