Что означает код HRESULT 0x8004006C (DV_E_DVTARGETDEVICE_SIZE)?

 
Предыдущий Следующий
DV_E_DVASPECT DV_E_NOIVIEWOBJECT

DV_E_DVTARGETDEVICE_SIZE

Что означает DV_E_DVTARGETDEVICE_SIZE

DV_E_DVTARGETDEVICE_SIZE: Поле DVTARGETDEVICE::tdSize не описывает допустимый полный target-device buffer. Даже если остальные offsets выглядят корректно, OLE не может безопасно интерпретировать структуру при неверном общем размере.

Что проверить

  • Сравните tdSize с реально выделенным количеством bytes.
  • Учитывайте trailing driver/device/port strings и optional DEVMODE, а не только sizeof(DVTARGETDEVICE).
  • После сериализации/копирования не оставляйте tdSize от исходного buffer другой длины.

Что делать

Запишите фактический total size и заново вычислите tdSize после формирования всех variable-length полей. Не увеличивайте значение без реального расширения allocated buffer.

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


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