Что означает код HRESULT 0x80020004 (DISP_E_PARAMNOTFOUND)?

 
Предыдущий Следующий
DISP_E_MEMBERNOTFOUND DISP_E_TYPEMISMATCH

DISP_E_PARAMNOTFOUND

Что означает DISP_E_PARAMNOTFOUND

DISP_E_PARAMNOTFOUND (0x80020004) — в сигнатуре вызываемого Automation-члена не найден переданный именованный параметр или ссылка на параметр.

COM Automation позволяет вызывать свойства и методы через IDispatch без жёсткой привязки к vtable-интерфейсу: имя преобразуется в DISPID, а Invoke получает аргументы как VARIANT/DISPPARAMS. Поэтому для DISP_E_* особенно важны конкретный член, DISPID и фактические типы аргументов.

Что проверить

  • Запишите DISPID члена и named parameter DISPIDs.
  • Получайте DISPIDs имён через тот же объект и LCID, а не переносите значения от другого класса/версии.
  • Проверьте optional arguments: DISP_E_PARAMNOTFOUND также используется в VARIANT с VT_ERROR для обозначения пропущенного optional-параметра, поэтому учитывайте границу, на которой код был получен.

Что делать

Исправьте имя/сопоставление параметра или корректно обозначьте optional argument согласно Automation-контракту.

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


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