]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/windows/dropfiles/dropfiles.factor
windows.dropfiles: move two words from windows.dragdrop-listener
[factor.git] / basis / windows / dropfiles / dropfiles.factor
index 4f07275004effd0b6bddf31b33a63b020e638c20..ab4ec14c37cba3cbea06bf1d7950606eae40e821 100644 (file)
@@ -1,3 +1,17 @@
 ! Copyright (C) 2017 Alexander Ilin.
 ! See http://factorcode.org/license.txt for BSD license.
+USING: alien.data alien.strings io.encodings.utf16n kernel math
+sequences windows.messages windows.shell32 windows.types ;
 IN: windows.dropfiles
+
+: filecount-from-hdrop ( hdrop -- n )
+    0xFFFFFFFF f 0 DragQueryFile ;
+
+: filenames-from-hdrop ( hdrop -- filenames )
+    dup filecount-from-hdrop <iota>
+    [
+        2dup f 0 DragQueryFile 1 + ! get size of filename buffer
+        dup WCHAR <c-array>
+        [ swap DragQueryFile drop ] keep
+        utf16n alien>string
+    ] with map ;