Что означает код HRESULT 0x80040064 (DV_E_FORMATETC)?

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

DV_E_FORMATETC

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

DV_E_FORMATETC (0x80040064) — Указана недопустимая структура FORMATETC.

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

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

Сначала сопоставьте первый отказ с фактическими параметрами операции. Для 0x80040064 в условии «указана недопустимая структура formatetc» сохраните исходные байты и проверьте формат, размер, подпись или checksum до любых преобразований; сравните с заведомо исправным образцом.

Для воспроизведения 0x80040064 сохраните cfFormat, tymed, dwAspect, lindex, ptd и фактически возвращённый STGMEDIUM; отдельно запишите HRESULT, FORMATETC, IDataObject, IDataObject::GetData, ID. По теме «formatetc» для 0x80040064 сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.

После локализации 0x80040064 действуйте по контракту подсистемы: согласуйте FORMATETC с возможностями IDataObject и освобождайте STGMEDIUM по правилам владения. Для 0x80040064 и условия «указана недопустимая структура formatetc» неизменённый повтор без нового состояния не считается исправлением.

Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0x80040064 и без обхода штатных проверок.

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


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