windows.dragdrop-listener: generalize some code for reuse
parent
75f5f08810
commit
db24910497
|
@ -19,7 +19,7 @@ IN: windows.dragdrop-listener
|
||||||
utf16n alien>string
|
utf16n alien>string
|
||||||
] with map ;
|
] with map ;
|
||||||
|
|
||||||
: filenames-from-data-object ( data-object -- filenames )
|
: handle-data-object ( handler: ( hdrop -- x ) data-object -- filenames )
|
||||||
FORMATETC <struct>
|
FORMATETC <struct>
|
||||||
CF_HDROP >>cfFormat
|
CF_HDROP >>cfFormat
|
||||||
f >>ptd
|
f >>ptd
|
||||||
|
@ -29,9 +29,12 @@ IN: windows.dragdrop-listener
|
||||||
STGMEDIUM <struct>
|
STGMEDIUM <struct>
|
||||||
[ IDataObject::GetData ] keep swap succeeded? [
|
[ IDataObject::GetData ] keep swap succeeded? [
|
||||||
dup data>>
|
dup data>>
|
||||||
[ filenames-from-hdrop ] with-global-lock
|
[ rot execute( hdrop -- x ) ] with-global-lock
|
||||||
swap ReleaseStgMedium
|
swap ReleaseStgMedium
|
||||||
] [ drop f ] if ;
|
] [ 2drop f ] if ;
|
||||||
|
|
||||||
|
: filenames-from-data-object ( data-object -- filenames )
|
||||||
|
\ filenames-from-hdrop swap handle-data-object ;
|
||||||
|
|
||||||
TUPLE: listener-dragdrop hWnd last-drop-effect ;
|
TUPLE: listener-dragdrop hWnd last-drop-effect ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue