The DragDrop structure provides functions to allow file names to be dragged and dropped onto a window. Calling DragAcceptFiles for a window allows it to accept dropped files. It will then receive a WM_DROPFILES message containing a drop handle when one or more files are dropped on the window. The file names are retrieved from the drop handle using DragQueryFile and the position within the window with DragQueryPoint. To complete processing the message call DragFinish.
structure DragDrop: sig type HDROP type HWND (* = Window.HWND *) type POINT = { x: int, y: int } val DragAcceptFiles : HWND * bool -> unit val DragFinish : HDROP -> unit val DragQueryFile : HDROP -> string list val DragQueryPoint : HDROP -> POINT * bool end