| Предыдущий | Следующий |
| DISP_E_UNKNOWNNAME | DISP_E_BADVARTYPE |
DISP_E_NONAMEDARGS
Что означает DISP_E_NONAMEDARGS
DISP_E_NONAMEDARGS (0x80020007) — Именованные аргументы отсутствуют.
Результат 0x80020007 пришёл из подсистемы «COM Automation» при работе с областью «IDispatch, сопоставление имён, аргументы VARIANT и локаль». Для сообщения «именованные аргументы отсутствуют» практический предмет проверки — «nonamedargs».
Что проверить и как подтвердить исправление
До изменения конфигурации сопоставьте первый отказ с фактическими параметрами операции. Для 0x80020007 с описанием «именованные аргументы отсутствуют» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Сопоставьте с результатом 0x80020007 следующие данные: DISPID, имя члена, LCID, число и типы аргументов, DISPPARAMS, EXCEPINFO и argErr; отдельно запишите HRESULT, IDispatch::Invoke, DISPPARAMS, LCID, EXCEPINFO. До исправления 0x80020007 сохраните исходное состояние объекта по теме «nonamedargs».
Практическое исправление для 0x80020007: приведите число, порядок и типы аргументов к описанию вызываемого члена; сохраните EXCEPINFO до следующего COM-вызова. В контексте условия «именованные аргументы отсутствуют» для 0x80020007 оно должно устранить подтверждённую причину, а не скрыть исходный HRESULT.
После исправления повторите тот же вызов на прежних данных; у результата 0x80020007 должен измениться первый неуспешный этап, а не только последующее сообщение.
Документация для результата 0x80020007: DISPPARAMS · EXCEPINFO · VariantClear.
Нужно найти другой код? Найти другой код состояния или ошибки.