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