Что означает код HRESULT 0x8004006D (DV_E_NOIVIEWOBJECT)?

 
Предыдущий Следующий
DV_E_DVTARGETDEVICE_SIZE DRAGDROP_E_NOTREGISTERED

DV_E_NOIVIEWOBJECT

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

DV_E_NOIVIEWOBJECT (0x8004006D) — Объект не поддерживает интерфейс IViewObject.

В подсистеме «OLE Data Transfer» результат 0x8004006D относится к области «FORMATETC, STGMEDIUM, аспект и формат обмена». Описание «объект не поддерживает интерфейс iviewobject» сужает проверку до темы «noiviewobject».

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

Не начинайте с общего сброса компонента: сопоставьте первый отказ с фактическими параметрами операции. При 0x8004006D и условии «объект не поддерживает интерфейс iviewobject» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.

Перед повтором 0x8004006D зафиксируйте cfFormat, tymed, dwAspect, lindex, ptd и фактически возвращённый STGMEDIUM; отдельно запишите IViewObject, IDataObject, FORMATETC, STGMEDIUM, IErrorInfo. Различия по теме «noiviewobject» для 0x8004006D покажут, изменился ли первый неуспешный этап.

Исправляя 0x8004006D, меняйте только подтверждённую причину: согласуйте FORMATETC с возможностями IDataObject и освобождайте STGMEDIUM по правилам владения. Результат 0x8004006D с описанием «объект не поддерживает интерфейс iviewobject» должен исчезнуть на исходных данных без обхода штатной проверки.

Повторите операцию в том же окружении и сравните первый отличающийся вызов; для результата 0x8004006D это надёжнее единичного успеха на других данных.

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


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