Marshal.QueryInterface(IntPtr, Guid, IntPtr) Metodo

Definizione

Richiede un puntatore a un'interfaccia specificata da un oggetto 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

Parametri

pUnk
IntPtr

nativeint

Interfaccia su cui eseguire una query.

iid
Guid

Identificatore di interfaccia (IID) dell'interfaccia richiesta.

ppv
IntPtr

nativeint

Quando questo metodo restituisce un risultato, contiene un riferimento all'interfaccia restituita.

Restituisce

HRESULT che indica l'esito positivo o negativo della chiamata.

Attributi

Commenti

Il QueryInterface metodo espone il metodo IUnknown::QueryInterface di un oggetto COM, che tenta di ottenere un puntatore di interfaccia specifico. L'uso QueryInterface in un oggetto COM corrisponde all'esecuzione di un'operazione cast nel codice gestito. La chiamata di un oggetto con questo metodo causa l'incremento del conteggio dei riferimenti sul puntatore dell'interfaccia prima che venga restituito il puntatore. Usare Marshal.Release sempre per decrerere il conteggio dei riferimenti dopo aver completato il puntatore. Per ottenere un valore che rappresenta un IntPtr puntatore dell'interfaccia IUnknown , è possibile chiamare Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjecto Marshal.GetIDispatchForObject.

Si applica a

Vedi anche