Поделиться через


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.

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

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