Что означает код HRESULT 0x80040066 (DV_E_STGMEDIUM)?

 
Предыдущий Следующий
DV_E_DVTARGETDEVICE DV_E_STATDATA

DV_E_STGMEDIUM

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

DV_E_STGMEDIUM означает некорректный STGMEDIUM для операции OLE/clipboard/drag-and-drop.

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

  • Сопоставьте tymed с реально заполненным union member: HGLOBAL, IStream, IStorage, file и другие варианты требуют разных полей.
  • Проверьте lifetime ресурса и pUnkForRelease; medium не должен ссылаться на уже освобождённый handle/interface.
  • Не меняйте только numeric TYMED. Исправьте пару type + resource и правила освобождения в producer/consumer contract.

Как подтвердить исправление

Контрольная передача должна принимать STGMEDIUM и освобождать underlying resource ровно один раз по правилам OLE.

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


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