]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/dropfiles/dropfiles.factor
windows.dropfiles: move two words from windows.dragdrop-listener
[factor.git] / basis / windows / dropfiles / dropfiles.factor
1 ! Copyright (C) 2017 Alexander Ilin.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.data alien.strings io.encodings.utf16n kernel math
4 sequences windows.messages windows.shell32 windows.types ;
5 IN: windows.dropfiles
6
7 : filecount-from-hdrop ( hdrop -- n )
8     0xFFFFFFFF f 0 DragQueryFile ;
9
10 : filenames-from-hdrop ( hdrop -- filenames )
11     dup filecount-from-hdrop <iota>
12     [
13         2dup f 0 DragQueryFile 1 + ! get size of filename buffer
14         dup WCHAR <c-array>
15         [ swap DragQueryFile drop ] keep
16         utf16n alien>string
17     ] with map ;