| Предыдущий | Следующий |
| DISP_E_BADCALLEE | DISP_E_DIVBYZERO |
DISP_E_NOTACOLLECTION
Что означает DISP_E_NOTACOLLECTION
DISP_E_NOTACOLLECTION (0x80020011) — Объект не поддерживает коллекцию.
При результате 0x80020011 граница диагностики проходит внутри подсистемы «COM Automation», в области «IDispatch, сопоставление имён, аргументы VARIANT и локаль». Здесь сообщение «объект не поддерживает коллекцию» связано с темой «notacollection».
Что проверить и как подтвердить исправление
Первый шаг — сопоставьте первый отказ с фактическими параметрами операции. Когда при 0x80020011 система сообщает «объект не поддерживает коллекцию», воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Для воспроизведения 0x80020011 сохраните DISPID, имя члена, LCID, число и типы аргументов, DISPPARAMS, EXCEPINFO и argErr; отдельно запишите HRESULT, LCID, EXCEPINFO, VARIANT, CLSID. По теме «notacollection» для 0x80020011 сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.
После локализации 0x80020011 действуйте по контракту подсистемы: приведите число, порядок и типы аргументов к описанию вызываемого члена; сохраните EXCEPINFO до следующего COM-вызова. Для 0x80020011 и условия «объект не поддерживает коллекцию» неизменённый повтор без нового состояния не считается исправлением.
Подтвердите изменение повтором исходной операции: результат 0x80020011 не должен возникать на исправном объекте, но прежний отрицательный контроль обязан оставаться предсказуемым.
Документация для результата 0x80020011: IDispatch::Invoke · IDispatch::GetIDsOfNames · EXCEPINFO.
Нужно найти другой код? Найти другой код состояния или ошибки.