home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD70856242000.psc / Module1.bas < prev    next >
Encoding:
BASIC Source File  |  2000-06-18  |  2.1 KB  |  54 lines

  1. Attribute VB_Name = "Module1"
  2. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3.  
  4. 'This module is required by CDrag_Drop class.
  5. 'For an explanation of the following routines see the
  6. 'accompanied ReadMe file.
  7. '                               -Author     Muhammad Abubakar
  8. '                                       <joehacker@yahoo.com>
  9. '                                       http://go.to/abubakar
  10.  
  11. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  12.  
  13. Option Explicit
  14.  
  15. Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  16. Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long) As Long
  17. Public Declare Sub DragFinish Lib "shell32.dll" (ByVal HDROP As Long)
  18. Public Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal HDROP As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long
  19. Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal Hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  20. Public Const GWL_WNDPROC = (-4)
  21. Public Const WM_DROPFILES = &H233
  22. Public PrevWndFunc As Long
  23.  
  24. Public obj As CDrag_Drop
  25.  
  26. Public Function WndProc(ByVal Hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  27.     
  28.     'Dim obj As New CDrag_Drop
  29.     
  30.     Dim n As Long, iLoop As Long, FileInfo As Long
  31.     Dim Buffer As String * 256, tmp As String
  32.     Dim length As Long
  33.     If msg = WM_DROPFILES Then
  34.         obj.ClearFileNames
  35.         FileInfo = wParam
  36.         n = DragQueryFile(FileInfo, -1&, vbNullString, 0)
  37.         For iLoop = 0 To n - 1
  38.             length = DragQueryFile(FileInfo, iLoop, ByVal Buffer, 256)
  39.             Buffer = Trim(Buffer)
  40.             obj.AddInFileNames Buffer
  41.         Next
  42.         
  43.         obj.NowRaiseEvent
  44.         
  45.         DragFinish FileInfo 'wParam
  46.         WndProc = 0
  47.     Else
  48.         WndProc = CallWindowProc(PrevWndFunc, Hwnd, msg, wParam, lParam)
  49.     End If
  50.     
  51.     
  52. End Function
  53.  
  54.