[ Mirko Rajkovača @ 09.12.2004. 20:04 ] @
Znam kako mogu prozor svoje aplikacije da ucinim "metom" za drag&drop fajlova, ali kako (kojom API funkcijom) da zapocnem drag&drop iz svoje aplikacije?
[ _Super_Ellite_Bug_ @ 09.12.2004. 23:25 ] @
http://search.microsoft.com/se...st=b&c=0&s=1&swc=0
[ milanche @ 10.12.2004. 22:10 ] @
Postoje dve implementacije: jedna je starija i bazirana je na tzv. legacy clipboard-u,
dok je druga novija, bazirana na OLE/COM tehnologiji. Ova druga je znatno
komplikovanija, sto za tvoj zahtev nije potrebno.

Evo kako se implementira na bazi legacy clipboard-a:

Kljucna stvar je da override-ujes handler za poruku WM_DROPFILES koja se moze naci
u spisku Window poruka (nije u spisku poruka za Dialog). Metod se zove OnDropFiles( )

Unutar tog metoda koristis visenamensku funkciju ::DragQueryFile( ) koja u zavisnosti
od ulaznih parametara moze da ti kaze koliko fajlova je drop-ovano, koliko je dugacak
string imena fajla, i na kraju da ti vrati ime drop-ovanog fajla.

Da bi sve to radilo u Dialog-based aplikacijama, u WM_CREATE handler-u (koji se zove
OnCreate( )) treba da pozoves metod DragAcceptFiles( ) koji inicijalizuje podrsku za
drag-drop. Nisam primetio da skodi ni kad se zove u OnInitDialog( )

U SDI/MDI aplikacijama, drag/drop je po defaultu aktivan, treba ti samo OnDropFiles( )
implementacija. Masa drugih stvari je na mestu - prepoznavanje i odbacivanje
drop-ovanog shortcut-a i/ili foldera, a sto je najvaznije, u ovoj arhitekturi bez problema radi i
drop-ovanje na shortcut aplikacije.

[ Mirko Rajkovača @ 11.12.2004. 13:46 ] @
Milanche hvala na pomoci ali me ne zanima kako da prepoznam fajlove koje korisnik dovuce iznad mog prozora, to sam vec odradio na nacin koji si ti opisao. Ono sto me muci kako da zapocnem suprotnu sekvencu, tj. kako najjednostavnije da omogucim korisniku da neki "fajl" (ListItem ili nesto slicno) iz mog prozora prevuce u npr.Windows Explorer i da ga Explorer prepozna kao fajl sa zadanom putanjom.
[ milanche @ 11.12.2004. 19:48 ] @
Trazis resenje za malo tezi problem - treba iskopati kako se Windows Exploreru mogu
dostavljati fajlovi programatski (ekvivalent rucnog drag-and-drop-ovanja).