Что означает код HRESULT 0x80040069 (DV_E_TYMED)?

 
Предыдущий Следующий
DV_E_LINDEX DV_E_CLIPFORMAT

DV_E_TYMED

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

DV_E_TYMED (0x80040069) — Указано недопустимое значение tymed.

Контекст результата 0x80040069 — подсистема «OLE Data Transfer» и область «FORMATETC, STGMEDIUM, аспект и формат обмена». Условие «указано недопустимое значение tymed» указывает на тему «tymed», а не на общий отказ всего компонента.

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

В первую очередь сопоставьте первый отказ с фактическими параметрами операции. Для 0x80040069 в сценарии «указано недопустимое значение tymed» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.

Чтобы локализовать 0x80040069, соберите cfFormat, tymed, dwAspect, lindex, ptd и фактически возвращённый STGMEDIUM; отдельно запишите FORMATETC, IDataObject, STGMEDIUM, IErrorInfo, HRESULT. Затем для 0x80040069 сравните исправный и неуспешный запуск в части «tymed», меняя одно условие за раз.

Коррекция для 0x80040069 должна быть предметной: согласуйте FORMATETC с возможностями IDataObject и освобождайте STGMEDIUM по правилам владения. Для 0x80040069 и сообщения «указано недопустимое значение tymed» общий сброс допустим лишь как контроль, но не как доказательство причины.

Закройте диагностику после двух проверок: исходный сценарий проходит без результата 0x80040069, а заведомо неверный вход отклоняется на ожидаемой границе.

Документация для результата 0x80040069: generic COM error codes · HRESULT values · IDataObject.


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