Что означает код HRESULT 0x80020001 (DISP_E_UNKNOWNINTERFACE)?

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

DISP_E_UNKNOWNINTERFACE

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

DISP_E_UNKNOWNINTERFACE (0x80020001) — Неизвестный интерфейс.

В подсистеме «COM Automation» результат 0x80020001 относится к области «IDispatch, сопоставление имён, аргументы VARIANT и локаль». Описание «неизвестный интерфейс» сужает проверку до темы «unknowninterface».

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

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

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

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

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

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


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