Что означает код HRESULT 0x8002000E (DISP_E_BADPARAMCOUNT)?

 
Предыдущий Следующий
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 и flags DISPATCH_METHOD/PROPERTYGET/PROPERTYPUT.
  • Сверьте обязательные и optional-параметры с фактической type information конкретной версии объекта.
  • Для property put проверьте наличие именованного DISPID_PROPERTYPUT.

Что делать

Сформируйте DISPPARAMS с правильным числом позиционных и именованных аргументов для выбранной формы Invoke.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.