| Предыдущий | Следующий |
| DISP_E_TYPEMISMATCH | DISP_E_NONAMEDARGS |
DISP_E_UNKNOWNNAME
Что означает DISP_E_UNKNOWNNAME
DISP_E_UNKNOWNNAME (0x80020006) — IDispatch::GetIDsOfNames не смог сопоставить одно из запрошенных имён с DISPID.
COM Automation позволяет вызывать свойства и методы через IDispatch без жёсткой привязки к vtable-интерфейсу: имя преобразуется в DISPID, а Invoke получает аргументы как VARIANT/DISPPARAMS. Поэтому для DISP_E_* особенно важны конкретный член, DISPID и фактические типы аргументов.
Что проверить
- Запишите точное имя, LCID и concrete COM class.
- Проверьте регистр только если конкретная реализация делает его значимым; главное — имя из type information именно этой версии объекта.
- Если запрашивается несколько имён, определите, какое из них не разрешилось: это может быть имя параметра, а не метода.
Что делать
Используйте имя, опубликованное этим Automation-объектом, и не переносите DISPIDs/имена без проверки между версиями или разными классами.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.