Some ideas to help you:

If the application is not started, and you drag and drop files to your programs icon in Windows Explorer (whether that icon is on your desktop, or in the list of files within a folder) then the application is started and the parameters (the files you were dragging and dropped) are passed in using the Command() function.

A different scenario is required if you drag and drop files onto an already running application. In this situation, the OLEDropMode must be set to
1 – Manual
for every object on the form that wants to receive a dropped file.

There are many OLExxxx subroutines that can be coded – the only one that is definitely required is the OLEDragDrop routine, which gets run when an item is dropped onto that object on the form.

The data that has been packaged by the dragged from application, is available to the dropped on application, although it must be decoded first. To identify a list of files from Windows Explorer use the following:
VB Code:
  1. Dim i As Integer
  2.     If Data.GetFormat(15) Then
  3. 'Format 15 is an array of names from WinExplorer
  4.         MsgBox “The first file is “ & Data.Files(1)
  5.         For i = 2 To Data.Files.Count
  6.           MsgBox “Next file: “ & Data.Files(i)
  7.         Next i
  8.         Data.Files.Clear
  9.     End If
The Format numbers used in the OLE DragDrop data structure, are:
Text = 1 (vbCFText)
Bitmap = 2 (vbCFBitmap)
Metafile = 3 (used when dragging attachments from Outlook)
Emetafile = 14
DIB = 8
Palette = 9
Files = 15 (vbCFFiles)
RTF = -16639

If you want to drop files from your application back to Windows Explorer, the following will load the correct data structure with the file names (full names plus path are needed). Remember: Dropping these filenames onto Windows Explorer will initiate a copy operation.
VB Code:
  1. Data.Files.Add "C:\Temp\Myfile1.TXT", 1
  2. Data.Files.Add "C:\Temp\Yourfile2.TXT", 2
  3. Data.SetData , 15