| Предыдущий | Следующий |
| DISP_E_DIVBYZERO | TYPE_E_BUFFERTOOSMALL |
DISP_E_BUFFERTOOSMALL
Что означает DISP_E_BUFFERTOOSMALL
DISP_E_BUFFERTOOSMALL (0x80020013) — предоставленного вызывающей стороной буфера недостаточно для полного результата Automation-операции.
COM Automation позволяет вызывать свойства и методы через IDispatch без жёсткой привязки к vtable-интерфейсу: имя преобразуется в DISPID, а Invoke получает аргументы как VARIANT/DISPPARAMS. Поэтому для DISP_E_* особенно важны конкретный член, DISPID и фактические типы аргументов.
Что проверить
- Запишите фактическую capacity, единицы измерения размера и требуемый размер, если API его сообщает.
- Проверьте различие между байтами и символами, включая завершающий NUL.
- Исключите изменение результата между запросом размера и повторным заполнением буфера.
Что делать
Выделите буфер по документированному размерному контракту и корректно обработайте повторный рост результата.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
