Marshal.QueryInterface(IntPtr, Guid, IntPtr) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyžádá 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);
public static int QueryInterface(IntPtr pUnk, in 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, ref readonly Guid iid, out IntPtr ppv);
[<System.Security.SecurityCritical>]
static member QueryInterface : nativeint * Guid * nativeint -> int
static member QueryInterface : nativeint * Guid * nativeint -> int
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
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
Pokud tato metoda vrátí, obsahuje odkaz na vrácené rozhraní.
Návraty
HODNOTA HRESULT, která označuje úspěch nebo selhání volání.
- Atributy
Poznámky
Metoda QueryInterface zveřejňuje IUnknown::QueryInterface metoda objektu COM, která se pokusí získat konkrétní ukazatel rozhraní. Použití QueryInterface u objektu COM je stejné jako provádění 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. Po dokončení ukazatele vždy používejte Marshal.Release k dekrementování počtu odkazů. Chcete-li získat IntPtr hodnotu, která představuje ukazatel rozhraní IUnknown , můžete volat Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObjectnebo Marshal.GetIDispatchForObject.