Site icon EfmSoft

Что означает код HRESULT 0x80020010 (DISP_E_BADCALLEE)?

 
Предыдущий Следующий
DISP_E_PARAMNOTOPTIONAL DISP_E_NOTACOLLECTION

DISP_E_BADCALLEE

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

DISP_E_BADCALLEE (0x80020010) — Недопустимый вызываемый объект.

Контекст результата 0x80020010 — подсистема «COM Automation» и область «IDispatch, сопоставление имён, аргументы VARIANT и локаль». Условие «недопустимый вызываемый объект» указывает на тему «badcallee», а не на общий отказ всего компонента.

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

Сначала проверьте допустимость и структуру входных данных первого неуспешного вызова. Для 0x80020010 в условии «недопустимый вызываемый объект» сверьте тип, размер, диапазон, маску флагов и принадлежность каждого дескриптора текущему объекту именно по контракту первого неуспешного метода.

Сопоставьте с результатом 0x80020010 следующие данные: DISPID, имя члена, LCID, число и типы аргументов, DISPPARAMS, EXCEPINFO и argErr; отдельно запишите HRESULT, IDispatch::Invoke, LCID, EXCEPINFO, VARIANT. До исправления 0x80020010 сохраните исходное состояние объекта по теме «badcallee».

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

После исправления повторите тот же вызов на прежних данных; у результата 0x80020010 должен измениться первый неуспешный этап, а не только последующее сообщение.

Документация для результата 0x80020010: VariantClear · HRESULT values · IDispatch::GetIDsOfNames.


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

Exit mobile version