Marshal.QueryInterface(IntPtr, Guid, IntPtr) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Запрашивает указатель на указанный интерфейс из 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
Параметры
- pUnk
-
IntPtr
nativeint
Интерфейс для запроса.
- iid
- Guid
Идентификатор интерфейса (IID) запрошенного интерфейса.
- ppv
-
IntPtr
nativeint
При возврате этого метода содержит ссылку на возвращаемый интерфейс.
Возвращаемое значение
HRESULT, указывающий на успех или сбой вызова.
- Атрибуты
Комментарии
Метод QueryInterface предоставляет метод IUnknown::QueryInterface объекта COM, который пытается получить определенный указатель интерфейса. Использование QueryInterface com-объекта аналогично выполнению операции приведения в управляемом коде. Вызов объекта с этим методом приводит к добавочному числу ссылок на указатель интерфейса перед возвратом указателя. Всегда используется Marshal.Release для уменьшения количества ссылок после завершения работы с указателем. Чтобы получить IntPtr значение, представляющее указатель интерфейса IUnknown, можно вызвать Marshal.GetComInterfaceForObjectMarshal.GetIUnknownForObjectили Marshal.GetIDispatchForObject.