Что означает код HRESULT 0x00040101 (DRAGDROP_S_CANCEL)?

 
Предыдущий Следующий
DRAGDROP_S_DROP DRAGDROP_S_USEDEFAULTCURSORS

DRAGDROP_S_CANCEL

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

DRAGDROP_S_CANCEL (0x00040101) — Операция перетаскивания отменена.

При результате 0x00040101 граница диагностики проходит внутри подсистемы «OLE Drag and Drop», в области «регистрацию окна и взаимодействие IDataObject/IDropTarget». Здесь сообщение «операция перетаскивания отменена» связано с темой «отмена».

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

Первый шаг — сопоставьте первый отказ с фактическими параметрами операции. Когда при 0x00040101 система сообщает «операция перетаскивания отменена», выясните источник отмены и проверьте частичное завершение; код отмены сам по себе не означает, что операция не изменила данные.

Перед повтором 0x00040101 зафиксируйте HWND, поток и COM apartment, регистрацию цели, FORMATETC/STGMEDIUM и порядок DragEnter/DragOver/Drop; отдельно запишите HRESULT, IDropSource, ID, IDs, IDropSource::QueryContinueDrag. Различия по теме «отмена» для 0x00040101 покажут, изменился ли первый неуспешный этап.

Практическое исправление для 0x00040101: выполняйте регистрацию и отзыв на правильном UI-потоке и соблюдайте владение объектами данных и носителями. В контексте условия «операция перетаскивания отменена» для 0x00040101 оно должно устранить подтверждённую причину, а не скрыть исходный HRESULT.

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

Документация для результата 0x00040101: COM drag-and-drop status codes · IDropSource::QueryContinueDrag · DoDragDrop.


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