| Предыдущий | Следующий |
| 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.
Нужно найти другой код? Найти другой код состояния или ошибки.