Marshal.QueryInterface(IntPtr, Guid, IntPtr) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 equivale all'esecuzione di un'operazione di cast nel codice gestito. Se si chiama un oggetto con questo metodo, il conteggio dei riferimenti viene incrementato sul puntatore dell'interfaccia prima che venga restituito il puntatore. Usare Marshal.Release sempre per decrementare il conteggio dei riferimenti al termine dell'operazione con il puntatore. Per ottenere un IntPtr valore che rappresenta un puntatore all'interfaccia IUnknown , è possibile chiamare Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjecto Marshal.GetIDispatchForObject.