Что означает код HRESULT 0x8002000B (DISP_E_BADINDEX)?

 
Предыдущий Следующий
DISP_E_OVERFLOW DISP_E_UNKNOWNLCID

DISP_E_BADINDEX

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

DISP_E_BADINDEX (0x8002000B) — Недопустимый индекс.

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

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

Первый шаг — проверьте допустимость и структуру входных данных первого неуспешного вызова. Когда при 0x8002000B система сообщает «недопустимый индекс», сверьте тип, размер, диапазон, маску флагов и принадлежность каждого дескриптора текущему объекту именно по контракту первого неуспешного метода.

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

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

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

Документация для результата 0x8002000B: IDispatch::Invoke · IDispatch::GetIDsOfNames · EXCEPINFO.


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