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