Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.9 KiB

  1. //
  2. // File Manager Extensions definitions
  3. //
  4. #define MENU_TEXT_LEN 40
  5. #define FMMENU_FIRST 1
  6. #define FMMENU_LAST 99
  7. #define FMEVENT_LOAD 100
  8. #define FMEVENT_UNLOAD 101
  9. #define FMEVENT_INITMENU 102
  10. #define FMEVENT_USER_REFRESH 103
  11. #define FMEVENT_SELCHANGE 104
  12. #define FMFOCUS_DIR 1
  13. #define FMFOCUS_TREE 2
  14. #define FMFOCUS_DRIVES 3
  15. #define FMFOCUS_SEARCH 4
  16. #define FM_GETFOCUS (WM_USER + 0x0200)
  17. #define FM_GETDRIVEINFO (WM_USER + 0x0201)
  18. #define FM_GETSELCOUNT (WM_USER + 0x0202)
  19. #define FM_GETSELCOUNTLFN (WM_USER + 0x0203) // LFN versions are odd
  20. #define FM_GETFILESEL (WM_USER + 0x0204)
  21. #define FM_GETFILESELLFN (WM_USER + 0x0205) // LFN versions are odd
  22. #define FM_REFRESH_WINDOWS (WM_USER + 0x0206)
  23. #define FM_RELOAD_EXTENSIONS (WM_USER + 0x0207)
  24. typedef struct _FMS_GETFILESEL {
  25. FILETIME ftTime;
  26. DWORD dwSize;
  27. BYTE bAttr;
  28. CHAR szName[260]; // alwyas fully qualified
  29. } FMS_GETFILESEL, FAR *LPFMS_GETFILESEL;
  30. typedef struct _FMS_GETDRIVEINFO { // for drive
  31. DWORD dwTotalSpace;
  32. DWORD dwFreeSpace;
  33. CHAR szPath[260]; // current directory
  34. CHAR szVolume[14]; // volume label
  35. CHAR szShare[128]; // if this is a net drive
  36. } FMS_GETDRIVEINFO, FAR *LPFMS_GETDRIVEINFO;
  37. typedef struct _FMS_LOAD {
  38. DWORD dwSize; // for version checks
  39. CHAR szMenuName[MENU_TEXT_LEN]; // output
  40. HMENU hMenu; // output
  41. WORD wMenuDelta; // input
  42. } FMS_LOAD, FAR *LPFMS_LOAD;
  43. typedef INT_PTR (APIENTRY *FM_EXT_PROC)(HWND, WPARAM, LPARAM);
  44. typedef DWORD (APIENTRY *FM_UNDELETE_PROC)(HWND, LPSTR);
  45. //------------------ private stuff --------------------------- /* ;Internal */
  46. /* ;Internal */
  47. typedef struct _EXTENSION { /* ;Internal */
  48. INT_PTR (APIENTRY *ExtProc)(HWND, WPARAM, LPARAM); /* ;Internal */
  49. WORD Delta; /* ;Internal */
  50. HANDLE hModule; /* ;Internal */
  51. HMENU hMenu; /* ;Internal */
  52. DWORD dwFlags; /* ;Internal */
  53. } EXTENSION; /* ;Internal */
  54. /* ;Internal */
  55. #define MAX_EXTENSIONS 5 /* ;Internal */
  56. extern EXTENSION extensions[MAX_EXTENSIONS]; /* ;Internal */
  57. /* ;Internal */
  58. INT_PTR APIENTRY ExtensionMsgProc(UINT wMsg, WPARAM wParam, LPARAM lpSel);/* ;Internal */
  59. VOID APIENTRY FreeExtensions(VOID); /* ;Internal */