windows.dropfiles: move two words from windows.dragdrop-listener

factor-shell
Alexander Iljin 2017-08-22 02:27:03 +03:00 committed by John Benediktsson
parent a236b11dfd
commit 29ef0dcc59
3 changed files with 34 additions and 14 deletions

View File

@ -5,25 +5,13 @@ USING: accessors alien.accessors alien.data alien.strings
classes.struct io.encodings.utf16n kernel make math namespaces classes.struct io.encodings.utf16n kernel make math namespaces
prettyprint sequences specialized-arrays prettyprint sequences specialized-arrays
ui.gadgets.worlds ui.tools.listener windows.com ui.gadgets.worlds ui.tools.listener windows.com
windows.com.wrapper windows.kernel32 windows.ole32 windows.com.wrapper windows.dropfiles windows.kernel32
windows.shell32 windows.types ; windows.ole32 windows.shell32 windows.types ;
SPECIALIZED-ARRAY: WCHAR SPECIALIZED-ARRAY: WCHAR
IN: windows.dragdrop-listener IN: windows.dragdrop-listener
CONSTANT: E_OUTOFMEMORY -2147024882 ! 0x8007000e CONSTANT: E_OUTOFMEMORY -2147024882 ! 0x8007000e
: 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 ;
: handle-data-object ( handler: ( hdrop -- x ) data-object -- filenames ) : handle-data-object ( handler: ( hdrop -- x ) data-object -- filenames )
FORMATETC <struct> FORMATETC <struct>
CF_HDROP >>cfFormat CF_HDROP >>cfFormat

View File

@ -0,0 +1,18 @@
! Copyright (C) 2017 Alexander Ilin.
! See http://factorcode.org/license.txt for BSD license.
USING: help.markup help.syntax kernel windows.ole32 ;
IN: windows.dropfiles
HELP: filecount-from-hdrop
{ $values
{ "hdrop" null }
{ "n" null }
}
{ $description "" } ;
HELP: filenames-from-hdrop
{ $values
{ "hdrop" null }
{ "filenames" null }
}
{ $description "" } ;

View File

@ -1,3 +1,17 @@
! Copyright (C) 2017 Alexander Ilin. ! Copyright (C) 2017 Alexander Ilin.
! See http://factorcode.org/license.txt for BSD license. ! 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 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 ;