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