home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l430 / 1.ddi / CHAP6.ZIP / DRAGDROP.H < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-11  |  2.2 KB  |  77 lines

  1. /* 
  2. DRAGDROP.H -- USER-related Drag and Drop protocol
  3.  
  4. from "Undocumented Windows" by Schulman et al. (Addison-Wesley, 1992)
  5. Chapter 6: USER
  6.  
  7. Copyright (c) Dave Maxey 1992
  8. */
  9.  
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13.  
  14.  
  15. /* === UNDOCUMENTED MESSAGES === */
  16.  
  17. #define WM_DROPOBJECT            0x022A
  18. #define WM_QUERYDROPOBJECT        0x022B
  19.  
  20. #define WM_BEGINDRAG            0x022C
  21. #define WM_DRAGLOOP                0x022D
  22.  
  23. #define WM_DRAGSELECT            0x022E
  24. #define WM_DRAGMOVE                0x022F
  25.  
  26. #ifndef WM_DROPFILES
  27. #define WM_DROPFILES            0x0233
  28. #endif
  29.  
  30.  
  31. /* === UNDOCUMENTED CONSTANTS === */
  32.  
  33. // Used in the wFlags field of the DRAGINFO sructure
  34. #define DRAGOBJ_PROGRAM            0x0001    // A single executable
  35. #define DRAGOBJ_DATA            0x0002    // A single 'other' file
  36. #define DRAGOBJ_DIRECTORY        0x0003    // A single pathed directory
  37. #define DRAGOBJ_MULTIPLE        0x0004    // Any combination 2 or more
  38. #define DRAGOBJ_EXTERNAL        0x8000    // ORed with one of the above
  39.  
  40. // Used as the return to the source (caller of DragObject)
  41. #define DRAG_PRNT 0x544e5250
  42. #define DRAG_FILE 0x454c4946
  43.  
  44. /* === UNDOCUMENTED STRUCTURE === */
  45.  
  46. // Structure pointed at by lParam of WM_DRAGDROP
  47. typedef struct {
  48.     HWND hwndSource;    // File Manager window that owns source listbox
  49.     HANDLE h1;            // Handle of drag icon ???
  50.     WORD wFlags;        // One of the DRAGOBJ_ constants below. They
  51.                         // include a top bit set, indicating drag
  52.                         // is allowed outside source app (FileMan).
  53.     char *szList;        // near pointer to list of files.
  54.     HANDLE hOfstruct;    // handle to a global OFSTRUCT. If a list, or
  55.                         // file has no association, FileMan sets
  56.                         // this to NULL.
  57.     int    x, y;            // Position of cursor at drop
  58.     long lUnknown;        // ????
  59.     } DRAGINFO, FAR * LPDRAGINFO;
  60.  
  61.  
  62. // Structure in global memory - handle in wParam of WM_DROPFILES in 3.1
  63. typedef struct {
  64.     WORD wOfsFirst;        // Offset of the first filename in the block
  65.     WORD xDrop;            // X coordinate of the drop point
  66.     WORD yDrop;            // Y coordinate of the drop point
  67.     BOOL bClient;        // 1 if Dropped on client area, 0 if NonClient
  68.     char chBuffer[1];    // Buffer with null-terminated list
  69.                         //  of null-terminated strings
  70.     } DROPINFO, FAR * LPDROPINFO;
  71.  
  72.  
  73. #ifdef __cplusplus
  74. }
  75. #endif
  76.  
  77.