Что означает код HRESULT 0x80020006 (DISP_E_UNKNOWNNAME)?

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

DISP_E_UNKNOWNNAME

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

DISP_E_UNKNOWNNAME (0x80020006) — Неизвестное имя.

Код 0x80020006 относится не ко всему компоненту «COM Automation», а к операции в области «IDispatch, сопоставление имён, аргументы VARIANT и локаль». Сообщение «неизвестное имя» позволяет начать с темы «неизвестный объект, имя».

Что проверить и как подтвердить исправление

Не начинайте с общего сброса компонента: проверьте идентификатор, область поиска и жизненный цикл отсутствующего объекта. При 0x80020006 и условии «неизвестное имя» проверьте идентификатор, область поиска и поколение объекта; имя может быть верным, но относиться к другому контейнеру или уже удалённому состоянию.

Перед повтором 0x80020006 зафиксируйте DISPID, имя члена, LCID, число и типы аргументов, DISPPARAMS, EXCEPINFO и argErr; отдельно запишите HRESULT, IDispatch::GetIDsOfNames, LCID, EXCEPINFO, VARIANT. Различия по теме «неизвестный объект, имя» для 0x80020006 покажут, изменился ли первый неуспешный этап.

После локализации 0x80020006 действуйте по контракту подсистемы: приведите число, порядок и типы аргументов к описанию вызываемого члена; сохраните EXCEPINFO до следующего COM-вызова. Для 0x80020006 и условия «неизвестное имя» неизменённый повтор без нового состояния не считается исправлением.

Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0x80020006 и без обхода штатных проверок.

Документация для результата 0x80020006: IDispatch::GetIDsOfNames · DISPPARAMS · VARIANT structure.


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