Retrieve List of Files from Clipboard

MSDN: Windows Clipboard API

This is sample code. Add error handling and adjust to your requirements as necessary.

&& Get list of files from Clipboard
DECLARE Long OpenClipboard IN USER32 Long hWndNewOwner
DECLARE Long CloseClipboard IN USER32
DECLARE Long EmptyClipboard IN USER32
 
DECLARE Long GetClipboardData IN USER32 Long lnFormat
DECLARE Long EnumClipboardFormats IN USER32 Long lnFormat
 
DECLARE Long DragQueryFile IN Shell32 ;
	Long hDrop, Long iFile, String @ lpszFile, Long cch
 
&& open clipboard
lnResult = OpenClipboard(_SCREEN.hWnd)
 
&& Enumerate the file formats in the clipboard.
&& Helpful for testing, otherwise is not required.
lnFormat = 0
lnFormat = EnumClipboardFormats(lnFormat)
lnCntr = 1
DO WHILE lnFormat > 0
	? lnCntr, lnFormat
	lnCntr = lnCntr + 1
	lnFormat = EnumClipboardFormats(lnFormat)
ENDDO
 
&& Get handle on file list structure ( Format type 15)
lnHdrop = GetClipboardData (15)
IF lnHdrop > 0
	lcBuffer = SPACE(512)
	lnSize = 512
	lnFile = BITOR(0xFFFFFFFF,0)
        && Get the # of files in the list
	lnFileCount = DragQueryFile(lnHdrop, lnFile, @lcBuffer, lnSize  )
 
        && Get each file name
	FOR lnFile = 0 TO lnFileCount-1
		lnLen = DragQueryFile(lnHdrop, lnFile, @lcBuffer, lnSize  )
		? lnFile+1, LEFT(lcBuffer, lnLen)
	ENDFOR
 
ENDIF
 
&& Empty clipboard, if necessary 
&&= EmptyClipboard()
&& Close clipboard
= CloseClipboard()