Что означает код HRESULT 0x80020013 (DISP_E_BUFFERTOOSMALL)?

 
Предыдущий Следующий
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.
  • Исключите изменение результата между запросом размера и повторным заполнением буфера.

Что делать

Выделите буфер по документированному размерному контракту и корректно обработайте повторный рост результата.

Технические ссылки


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