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á 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.