Drag and Drop

01/06/2010 - 02:19 por MABSoft | Informe spam
Hola
¿Como puedo hacer drag and Drop de un archivo hacia afuera de mi aplicación?

Tengo un ListView con el nombre completo del archivo en una de sus filas ,
quiero arrastrar ese nombre y que el archivo se copie donde suelto el mouse
(en el escritorio por ejemplo)
¿Se puede hacer esto?
Se como hacerlo hacia dentro de la aplicación, pero no tengo idea de como va
hacia afuera.
Desde ya muchas gracias a todos
 

Leer las respuestas

#1 langosta
01/06/2010 - 06:44 | Informe spam
"MABSoft" escribió en el mensaje de
noticias news:
Hola
¿Como puedo hacer drag and Drop de un archivo hacia afuera de mi
aplicación?

Tengo un ListView con el nombre completo del archivo en una de sus
filas , quiero arrastrar ese nombre y que el archivo se copie donde
suelto el mouse (en el escritorio por ejemplo)
¿Se puede hacer esto?



Si, por qué no...

Se como hacerlo hacia dentro de la aplicación, pero no tengo idea de
como va hacia afuera.



La función que debes incovar se llama DoDragDrop() y requiere como
parámetros la implementación de dos "interfaces": IDropSource e
IDataObject.

Cuando el drop se hace efectivo, empaquetas un objeto de tipo HDROP o
sea el handle que te devuelve GlobalAlloc() en el que copias la data en
formato CF_DROP

La data consta de una cabecera de tipo DROPFILES y a continuación la
lista de el o los archivos en la forma de strings terminados en NUL y un
string vacío como terminador (o sea, un doble NUL final)

"x:\pepe.doc" & chr(0) & chr(0)

Hay otros formatos posibles

CFSTR_FILECONTENTS
CFSTR_FILEDESCRIPTOR
CFSTR_FILENAME
CFSTR_FILENAMEMAP
CFSTR_MOUNTEDVOLUME
CFSTR_SHELLIDLIST
CFSTR_SHELLIDLISTOFFSET

casi todos, sino todos, empaquetados en un hglobal.

Desde ya muchas gracias a todos

Preguntas similares