Sdílet prostřednictvím


Marshal.QueryInterface(IntPtr, Guid, IntPtr) Metoda

Definice

Vyžádá si ukazatel na zadané rozhraní z objektu 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

Parametry

pUnk
IntPtr

nativeint

Rozhraní, které se má dotazovat.

iid
Guid

Identifikátor rozhraní (IID) požadovaného rozhraní.

ppv
IntPtr

nativeint

Když tato metoda vrátí, obsahuje odkaz na vrácené rozhraní.

Návraty

Hodnota HRESULT označující úspěch nebo selhání volání.

Atributy

Poznámky

Metoda QueryInterface zveřejňuje metodu IUnknown::QueryInterface objektu COM, která se pokusí získat konkrétní ukazatel rozhraní. Použití QueryInterface na objektu COM je stejné jako provedení operace přetypování ve spravovaném kódu. Volání objektu pomocí této metody způsobí, že se počet odkazů zvýší na ukazatel rozhraní před vrácením ukazatele. Vždy používejte Marshal.Release ke snížení počtu odkazů, jakmile s ukazatelem dokončíte. Chcete-li získat IntPtr hodnotu, která představuje ukazatel rozhraní IUnknown , můžete volat Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjectnebo Marshal.GetIDispatchForObject.

Platí pro

Viz také