Мне нужно перетащить «виртуальные файлы» из приложения wxWidgets в проводник Windows. Эта статья codeproject является отличным описанием и демонстрацией того, как это сделать в MFC. Мне совсем не ясно, как использовать классы wxWidgets (wxDataObject, wxTextDataObject, wxDropSource, wxDropTarget, wxTextDropTarget, wxFileDropTarget), чтобы сделать то же самое. Кто-нибудь может дать мне несколько советов о том, как действовать?
Мотивация: мне нужно перетаскивать файлы, расположенные на удаленном устройстве. Вытаскивание их из устройства и переформатирование их по мере необходимости занимает много секунд - минут, если выбрано много файлов. Задержка делает перетаскивание полностью непригодным, если файлы загружаются и переформатируются, когда перетаскивание начинается, но до удаления. Использование виртуального файла позволяет завершить удаление, и только после этого файлы копируются - это делает drag'n'drop гладким и привычным для пользователя.
Вот вопрос , связанный со стековым потоком - но это для MFC, и мне нужно решение wxWidgets.
Итак, я попытался следовать примеру codeproject и специализироваться на COleDataSource. Однако, когда я включаю afxole.h, компилятор жалуется
Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
Это не выглядит обнадеживающим.
Теперь я подумал, что мне придется использовать IDataObject. Это кажется разумным? Может ли кто-нибудь указать мне на небольшое введение в использование этого?