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.

201 lines
6.5 KiB

  1. /*****************************************************************************\
  2. * *
  3. * wfext.h - Windows File Manager Extensions definitions (Win32 variant) *
  4. * *
  5. * Version 3.10 *
  6. * *
  7. * Copyright (c) 1991-1995, Microsoft Corp. All rights reserved. *
  8. * *
  9. *******************************************************************************/
  10. #ifndef _INC_WFEXT
  11. #define _INC_WFEXT /* #defined if wfext.h has been included */
  12. #ifdef __cplusplus /* Assume C declaration for C++ */
  13. extern "C" {
  14. #endif /* __cplusplus */
  15. #define MENU_TEXT_LEN 40
  16. #define FMMENU_FIRST 1
  17. #define FMMENU_LAST 99
  18. #define FMEVENT_LOAD 100
  19. #define FMEVENT_UNLOAD 101
  20. #define FMEVENT_INITMENU 102
  21. #define FMEVENT_USER_REFRESH 103
  22. #define FMEVENT_SELCHANGE 104
  23. #define FMEVENT_TOOLBARLOAD 105
  24. #define FMEVENT_HELPSTRING 106
  25. #define FMEVENT_HELPMENUITEM 107
  26. #define FMFOCUS_DIR 1
  27. #define FMFOCUS_TREE 2
  28. #define FMFOCUS_DRIVES 3
  29. #define FMFOCUS_SEARCH 4
  30. #define FM_GETFOCUS (WM_USER + 0x0200)
  31. #define FM_GETSELCOUNT (WM_USER + 0x0202)
  32. #define FM_GETSELCOUNTLFN (WM_USER + 0x0203) /* LFN versions are odd */
  33. #define FM_REFRESH_WINDOWS (WM_USER + 0x0206)
  34. #define FM_RELOAD_EXTENSIONS (WM_USER + 0x0207)
  35. #define FM_GETDRIVEINFOA (WM_USER + 0x0201)
  36. #define FM_GETFILESELA (WM_USER + 0x0204)
  37. #define FM_GETFILESELLFNA (WM_USER + 0x0205) /* LFN versions are odd */
  38. #define FM_GETDRIVEINFOW (WM_USER + 0x0211)
  39. #define FM_GETFILESELW (WM_USER + 0x0214)
  40. #define FM_GETFILESELLFNW (WM_USER + 0x0215) /* LFN versions are odd */
  41. #ifdef UNICODE
  42. #define FM_GETDRIVEINFO FM_GETDRIVEINFOW
  43. #define FM_GETFILESEL FM_GETFILESELW
  44. #define FM_GETFILESELLFN FM_GETFILESELLFNW
  45. #else
  46. #define FM_GETDRIVEINFO FM_GETDRIVEINFOA
  47. #define FM_GETFILESEL FM_GETFILESELA
  48. #define FM_GETFILESELLFN FM_GETFILESELLFNA
  49. #endif
  50. #ifndef UNICODE_ONLY
  51. typedef struct _FMS_GETFILESELA {
  52. FILETIME ftTime;
  53. DWORD dwSize;
  54. BYTE bAttr;
  55. CHAR szName[260]; // always fully qualified
  56. } FMS_GETFILESELA, FAR *LPFMS_GETFILESELA;
  57. #endif //!UNICODE_ONLY
  58. #ifndef ANSI_ONLY
  59. typedef struct _FMS_GETFILESELW {
  60. FILETIME ftTime ;
  61. DWORD dwSize;
  62. BYTE bAttr;
  63. WCHAR szName[260]; // always fully qualified
  64. } FMS_GETFILESELW, FAR *LPFMS_GETFILESELW;
  65. #endif //!ANSI_ONLY
  66. #ifdef UNICODE
  67. #define FMS_GETFILESEL FMS_GETFILESELW
  68. #define LPFMS_GETFILESEL LPFMS_GETFILESELW
  69. #else
  70. #define FMS_GETFILESEL FMS_GETFILESELA
  71. #define LPFMS_GETFILESEL LPFMS_GETFILESELA
  72. #endif
  73. #ifndef UNICODE_ONLY
  74. typedef struct _FMS_GETDRIVEINFOA { // for drive
  75. DWORD dwTotalSpace;
  76. DWORD dwFreeSpace;
  77. CHAR szPath[260]; // current directory
  78. CHAR szVolume[14]; // volume label
  79. CHAR szShare[128]; // if this is a net drive
  80. } FMS_GETDRIVEINFOA, FAR *LPFMS_GETDRIVEINFOA;
  81. #endif //!UNICODE_ONLY
  82. #ifndef ANSI_ONLY
  83. typedef struct _FMS_GETDRIVEINFOW { // for drive
  84. DWORD dwTotalSpace;
  85. DWORD dwFreeSpace;
  86. WCHAR szPath[260]; // current directory
  87. WCHAR szVolume[14]; // volume label
  88. WCHAR szShare[128]; // if this is a net drive
  89. } FMS_GETDRIVEINFOW, FAR *LPFMS_GETDRIVEINFOW;
  90. #endif //!ANSI_ONLY
  91. #ifdef UNICODE
  92. #define FMS_GETDRIVEINFO FMS_GETDRIVEINFOW
  93. #define LPFMS_GETDRIVEINFO LPFMS_GETDRIVEINFOW
  94. #else
  95. #define FMS_GETDRIVEINFO FMS_GETDRIVEINFOA
  96. #define LPFMS_GETDRIVEINFO LPFMS_GETDRIVEINFOA
  97. #endif
  98. #ifndef UNICODE_ONLY
  99. typedef struct _FMS_LOADA {
  100. DWORD dwSize; // for version checks
  101. CHAR szMenuName[MENU_TEXT_LEN]; // output
  102. HMENU hMenu; // output
  103. UINT wMenuDelta; // input
  104. } FMS_LOADA, FAR *LPFMS_LOADA;
  105. #endif //!UNICODE_ONLY
  106. #ifndef ANSI_ONLY
  107. typedef struct _FMS_LOADW {
  108. DWORD dwSize; // for version checks
  109. WCHAR szMenuName[MENU_TEXT_LEN]; // output
  110. HMENU hMenu; // output
  111. UINT wMenuDelta; // input
  112. } FMS_LOADW, FAR *LPFMS_LOADW;
  113. #endif //!ANSI_ONLY
  114. #ifdef UNICODE
  115. #define FMS_LOAD FMS_LOADW
  116. #define LPFMS_LOAD LPFMS_LOADW
  117. #else
  118. #define FMS_LOAD FMS_LOADA
  119. #define LPFMS_LOAD LPFMS_LOADA
  120. #endif
  121. // Toolbar definitions
  122. typedef struct tagEXT_BUTTON {
  123. WORD idCommand; /* menu command to trigger */
  124. WORD idsHelp; /* help string ID */
  125. WORD fsStyle; /* button style */
  126. } EXT_BUTTON, FAR *LPEXT_BUTTON;
  127. typedef struct tagFMS_TOOLBARLOAD {
  128. DWORD dwSize; /* for version checks */
  129. LPEXT_BUTTON lpButtons; /* output */
  130. WORD cButtons; /* output, 0==>no buttons */
  131. WORD cBitmaps; /* number of non-sep buttons */
  132. WORD idBitmap; /* output */
  133. HBITMAP hBitmap; /* output if idBitmap==0 */
  134. } FMS_TOOLBARLOAD, FAR *LPFMS_TOOLBARLOAD;
  135. #ifndef UNICODE_ONLY
  136. typedef struct tagFMS_HELPSTRINGA {
  137. INT idCommand; /* input, -1==>the menu was selected */
  138. HMENU hMenu; /* input, the extensions menu */
  139. CHAR szHelp[128]; /* output, the help string */
  140. } FMS_HELPSTRINGA, FAR *LPFMS_HELPSTRINGA;
  141. #endif //!UNICODE_ONLY
  142. #ifndef ANSI_ONLY
  143. typedef struct tagFMS_HELPSTRINGW {
  144. INT idCommand; /* input, -1==>the menu was selected */
  145. HMENU hMenu; /* input, the extensions menu */
  146. WCHAR szHelp[128]; /* output, the help string */
  147. } FMS_HELPSTRINGW, FAR *LPFMS_HELPSTRINGW;
  148. #endif //!ANSI_ONLY
  149. #ifdef UNICODE
  150. #define FMS_HELPSTRING FMS_HELPSTRINGW
  151. #define LPFMS_HELPSTRING LPFMS_HELPSTRINGW
  152. #else
  153. #define FMS_HELPSTRING FMS_HELPSTRINGA
  154. #define LPFMS_HELPSTRING LPFMS_HELPSTRINGA
  155. #endif
  156. typedef DWORD (APIENTRY *FM_EXT_PROC)(HWND, WORD, LONG);
  157. typedef DWORD (APIENTRY *FM_UNDELETE_PROC)(HWND, LPTSTR);
  158. #ifdef UNICODE
  159. LONG WINAPI FMExtensionProcW(HWND hwnd, WORD wEvent, LONG lParam);
  160. #else
  161. LONG WINAPI FMExtensionProc(HWND hwnd, WORD wEvent, LONG lParam);
  162. #endif
  163. #ifdef __cplusplus
  164. } /* End of extern "C" { */
  165. #endif /* __cplusplus */
  166. #endif /* _INC_WFEXT */