| Предыдущий | Следующий |
| DISP_E_ARRAYISLOCKED | DISP_E_PARAMNOTOPTIONAL |
DISP_E_BADPARAMCOUNT
Что означает DISP_E_BADPARAMCOUNT
DISP_E_BADPARAMCOUNT (0x8002000E) — количество переданных аргументов не соответствует форме вызова выбранного метода или свойства.
COM Automation позволяет вызывать свойства и методы через IDispatch без жёсткой привязки к vtable-интерфейсу: имя преобразуется в DISPID, а Invoke получает аргументы как VARIANT/DISPPARAMS. Поэтому для DISP_E_* особенно важны конкретный член, DISPID и фактические типы аргументов.
Что проверить
- Сохраните
cArgs,cNamedArgs, DISPID и flagsDISPATCH_METHOD/PROPERTYGET/PROPERTYPUT. - Сверьте обязательные и optional-параметры с фактической type information конкретной версии объекта.
- Для property put проверьте наличие именованного
DISPID_PROPERTYPUT.
Что делать
Сформируйте DISPPARAMS с правильным числом позиционных и именованных аргументов для выбранной формы Invoke.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.