Метод ITypeInfo::Invoke (oaidl.h)

Вызывает метод или обращается к свойству объекта, реализующему интерфейс, описанный в описании типа.

Синтаксис

HRESULT Invoke(
  [in]      PVOID      pvInstance,
  [in]      MEMBERID   memid,
  [in]      WORD       wFlags,
  [in, out] DISPPARAMS *pDispParams,
  [out]     VARIANT    *pVarResult,
  [out]     EXCEPINFO  *pExcepInfo,
  [out]     UINT       *puArgErr
);

Параметры

[in] pvInstance

Экземпляр интерфейса, описываемого этим описанием типа.

[in] memid

Элемент интерфейса.

[in] wFlags

Флаги, описывающие контекст используемого вызова.

Значение Значение
DISPATCH_METHOD
Доступ к элементу осуществляется как метод. При неоднозначности можно задать оба флага: этот флаг и флаг DISPATCH_PROPERTYGET.
DISPATCH_PROPERTYGET
Элемент извлекается как свойство или элемент данных.
DISPATCH_PROPERTYPUT
Элемент изменяется как свойство или элемент данных.
DISPATCH_PROPERTYPUTREF
Элемент изменяется с помощью назначения ссылки, а не назначения значения. Этот флаг действителен, только если свойство принимает ссылку на объект.

[in, out] pDispParams

Массив аргументов, массив DISPID для именованных аргументов и количество элементов в каждом массиве.

[out] pVarResult

Результат. Значение должно иметь значение NULL, если вызывающий объект не ожидает никакого результата. Если wFlags указывает DISPATCH_PROPERTYPUT или DISPATCH_PROPERTYPUTREF, pVarResultis игнорируется.

[out] pExcepInfo

Структура сведений об исключении, которая заполняется только в том случае, если возвращается DISP_E_EXCEPTION. Если для входных данных pExcepInfo имеет значение NULL, возвращается только ошибка HRESULT.

[out] puArgErr

Если Invoke возвращает DISP_E_TYPEMISMATCH, puArgErr указывает индекс (в rgvarg) аргумента с неправильным типом. Если несколько аргументов возвращают ошибку, puArgErr указывает только первый аргумент с ошибкой. Аргументы в pDispParams->rgvarg отображаются в обратном порядке, поэтому первым является аргумент с наибольшим индексом в массиве. Этот параметр не может быть пустым.

Возвращаемое значение

Код возврата Описание
S_OK
Успешно.
E_INVALIDARG
Один или несколько аргументов недопустимы.
DISP_E_EXCEPTION
Вызываемый член вернул ошибку HRESULT. Если элемент реализует IErrorInfo, подробные сведения доступны в объекте ошибки. В противном случае параметр pExcepInfo содержит сведения.
 

Также может быть возвращена любая из ошибок IDispatch::Invoke .

Комментарии

Используйте функцию ITypeInfo::Invoke для доступа к члену объекта или вызовите метод, реализующий интерфейс, описанный в описании этого типа. Для объектов, поддерживающих интерфейс IDispatch , можно использовать Invoke для реализации IDispatch::Invoke.

ITypeInfo::Invoke принимает указатель на экземпляр класса . В противном случае его параметры совпадают с IDispatch::Invoke, за исключением того, что параметры refiid и lcid пропускаются в ITypeInfo::Invoke. При вызове ITypeInfo::Invoke выполняет действия, описанные в параметрах IDispatch::Invoke для указанного экземпляра.

Для членов интерфейса ПАРАМЕТРОВL ITypeInfo::Invoke передает код LCID сведений о типе в параметры, помеченные атрибутом lcid, а возвращаемое значение — в атрибут retval.

Если описание типа наследуется от другого описания типа, эта функция рекурсирует описание базового типа, чтобы найти элемент с запрошенным идентификатором элемента.

Требования

Требование Значение
Целевая платформа Windows
Header oaidl.h

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

ITypeInfo