Есть приложение, у него есть 'виртуальная файловая система'. Мне нужно с помощью драга из приложения скопировать из моего приложения файл в папку соответствующую драгу. DoDragDrop начинает перемещать и прерывает выполнение при регулярных файлах. я не хочу тормозов при перетаскивании. Задача: начать копировать файлы после того как отпустили мышу, т.е. после вызова DoDragDrop и в нужную папку...
Поясню. Есть лист вью. Там отображаются файлы и папки, например, телефона. Но как такового доступа к телефону нет. Есть библиотека, которая позволяет копировать файлы и получать их список, что и отображается в лист вью. Мне нужно перетащить элемент из лист вью на какую нить папку winб, и если она может принять файл, то только после этого начать ачинхронную операцию чтения файла из устройства и запись на жоский диск. Если начать её до подтверждени я операции перетаскивания, то , очевидно что то)))
Это тоже непонятно. А дроп так и работает - операция начинается только после отпускания мыши над приемником.
Поясню ещё раз. Копирование файлов производит DoDragDrop. Но на момент драга я еще не слил их с устройства и не имею их на жоском диске. Получается надо сливать их как раз в процессе перетаскивания до вызова додрагдроп, что плоховато на нём сказывается...
Нахер DoDragDrop, от куда эти дельфийские хрени... Пиши все сам!!! Ловишь сообщение WM_CREATE, создаешь LIST_VIEW и потом ставишь ему свойство драга и суб класс: Код (Text): invoke SetWindowLong,[hlist_view],GWL_WNDPROC, ListProc mov [OldWndProc],eax invoke DragAcceptFiles,[hlist_view],TRUE Затем дело происходит в субклассовой процедуре: Код (Text): proc ListProc,hWin,uMsg,wParam,lParam mov eax,[uMsg] cmp eax,WM_DROPFILES je .DROPFILE invoke CallWindowProc,[OldWndProc],[hWin],eax,[wParam],[lParam] ret .DROPFILE: ; Вот тут что хочешь, то и лови, кидай и перебрасывай jmp .finish .finish: xor eax,eax ret endp
dgs Мне нужно перетащить элемент листвью в эксплорер а не наоборот...Функции походят на обратные... Спс, почитаемс про них.
dgs DoDragDrop - это более низкоуровневая функция из Ole32.dll, чем перечисленные тобой из shell32.dll. А дельфи тут вообще никаким боком. А это вобще причем? Ему же не ловить надо... В общем слышал звон...
Я не внимательно прочитав решил, что человек не может себе в приложение перетащить файлики, но за тем он отписался в следующем сообщение и я понял свою не внимательность... хм... Благодарю, не знал надо будет почитать...