Что означает код HRESULT 0x80020011 (DISP_E_NOTACOLLECTION)?

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


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