Метод 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
Флаги, описывающие контекст используемого вызова.
[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 отображаются в обратном порядке, поэтому первым является аргумент с наибольшим индексом в массиве. Этот параметр не может быть пустым.
Возвращаемое значение
Код возврата | Описание |
---|---|
|
Успешно. |
|
Один или несколько аргументов недопустимы. |
|
Вызываемый член вернул ошибку 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 |