Что означает код HRESULT 0x80020008 (DISP_E_BADVARTYPE)?

 
Предыдущий Следующий
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.


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