| Предыдущий | Следующий |
| DV_E_DVTARGETDEVICE | DV_E_STATDATA |
DV_E_STGMEDIUM
Что означает DV_E_STGMEDIUM
DV_E_STGMEDIUM (0x80040066) — Указана недопустимая структура STGMEDIUM.
Код 0x80040066 относится не ко всему компоненту «OLE Data Transfer», а к операции в области «FORMATETC, STGMEDIUM, аспект и формат обмена». Сообщение «указана недопустимая структура stgmedium» позволяет начать с темы «stgmedium».
Что проверить и как подтвердить исправление
До изменения конфигурации сопоставьте первый отказ с фактическими параметрами операции. Для 0x80040066 с описанием «указана недопустимая структура stgmedium» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Диагностика 0x80040066 должна включать cfFormat, tymed, dwAspect, lindex, ptd и фактически возвращённый STGMEDIUM; отдельно запишите HRESULT, STGMEDIUM, IDataObject::GetData, FORMATETC, ID. Для темы «stgmedium» при 0x80040066 важны значения именно на первом отказе, а не после обработки ошибки верхним уровнем.
Коррекция для 0x80040066 должна быть предметной: согласуйте FORMATETC с возможностями IDataObject и освобождайте STGMEDIUM по правилам владения. Для 0x80040066 и сообщения «указана недопустимая структура stgmedium» общий сброс допустим лишь как контроль, но не как доказательство причины.
Повторите операцию в том же окружении и сравните первый отличающийся вызов; для результата 0x80040066 это надёжнее единичного успеха на других данных.
Документация для результата 0x80040066: generic COM error codes · STGMEDIUM structure · IDataObject.
Нужно найти другой код? Найти другой код состояния или ошибки.