Бөлісу құралы:


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.

Применяется к

См. также раздел