1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_WFEXT 7 #define _INC_WFEXT 8 9 #include <_mingw_unicode.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 #define MENU_TEXT_LEN 40 16 17 #define FMMENU_FIRST 1 18 #define FMMENU_LAST 99 19 20 #define FMEVENT_LOAD 100 21 #define FMEVENT_UNLOAD 101 22 #define FMEVENT_INITMENU 102 23 #define FMEVENT_USER_REFRESH 103 24 #define FMEVENT_SELCHANGE 104 25 #define FMEVENT_TOOLBARLOAD 105 26 #define FMEVENT_HELPSTRING 106 27 #define FMEVENT_HELPMENUITEM 107 28 29 #define FMFOCUS_DIR 1 30 #define FMFOCUS_TREE 2 31 #define FMFOCUS_DRIVES 3 32 #define FMFOCUS_SEARCH 4 33 34 #define FM_GETFOCUS (WM_USER + 0x0200) 35 #define FM_GETSELCOUNT (WM_USER + 0x0202) 36 #define FM_GETSELCOUNTLFN (WM_USER + 0x0203) 37 #define FM_REFRESH_WINDOWS (WM_USER + 0x0206) 38 #define FM_RELOAD_EXTENSIONS (WM_USER + 0x0207) 39 40 #define FM_GETDRIVEINFOA (WM_USER + 0x0201) 41 #define FM_GETFILESELA (WM_USER + 0x0204) 42 #define FM_GETFILESELLFNA (WM_USER + 0x0205) 43 44 #define FM_GETDRIVEINFOW (WM_USER + 0x0211) 45 #define FM_GETFILESELW (WM_USER + 0x0214) 46 #define FM_GETFILESELLFNW (WM_USER + 0x0215) 47 48 #define FM_GETDRIVEINFO __MINGW_NAME_AW(FM_GETDRIVEINFO) 49 #define FM_GETFILESEL __MINGW_NAME_AW(FM_GETFILESEL) 50 #define FM_GETFILESELLFN __MINGW_NAME_AW(FM_GETFILESELLFN) 51 52 typedef struct _FMS_GETFILESELA { 53 FILETIME ftTime; 54 DWORD dwSize; 55 BYTE bAttr; 56 CHAR szName[260]; 57 } FMS_GETFILESELA,*LPFMS_GETFILESELA; 58 59 typedef struct _FMS_GETFILESELW { 60 FILETIME ftTime; 61 DWORD dwSize; 62 BYTE bAttr; 63 WCHAR szName[260]; 64 } FMS_GETFILESELW,*LPFMS_GETFILESELW; 65 66 #define FMS_GETFILESEL __MINGW_NAME_AW(FMS_GETFILESEL) 67 #define LPFMS_GETFILESEL __MINGW_NAME_AW(LPFMS_GETFILESEL) 68 69 typedef struct _FMS_GETDRIVEINFOA { 70 DWORD dwTotalSpace; 71 DWORD dwFreeSpace; 72 CHAR szPath[260]; 73 CHAR szVolume[14]; 74 CHAR szShare[128]; 75 } FMS_GETDRIVEINFOA,*LPFMS_GETDRIVEINFOA; 76 77 typedef struct _FMS_GETDRIVEINFOW { 78 DWORD dwTotalSpace; 79 DWORD dwFreeSpace; 80 WCHAR szPath[260]; 81 WCHAR szVolume[14]; 82 WCHAR szShare[128]; 83 } FMS_GETDRIVEINFOW,*LPFMS_GETDRIVEINFOW; 84 85 #define FMS_GETDRIVEINFO __MINGW_NAME_AW(FMS_GETDRIVEINFO) 86 #define LPFMS_GETDRIVEINFO __MINGW_NAME_AW(LPFMS_GETDRIVEINFO) 87 88 typedef struct _FMS_LOADA { 89 DWORD dwSize; 90 CHAR szMenuName[MENU_TEXT_LEN]; 91 HMENU hMenu; 92 UINT wMenuDelta; 93 } FMS_LOADA,*LPFMS_LOADA; 94 95 typedef struct _FMS_LOADW { 96 DWORD dwSize; 97 WCHAR szMenuName[MENU_TEXT_LEN]; 98 HMENU hMenu; 99 UINT wMenuDelta; 100 } FMS_LOADW,*LPFMS_LOADW; 101 102 #define FMS_LOAD __MINGW_NAME_AW(FMS_LOAD) 103 #define LPFMS_LOAD __MINGW_NAME_AW(LPFMS_LOAD) 104 105 typedef struct tagEXT_BUTTON { 106 WORD idCommand; 107 WORD idsHelp; 108 WORD fsStyle; 109 } EXT_BUTTON,*LPEXT_BUTTON; 110 111 typedef struct tagFMS_TOOLBARLOAD { 112 DWORD dwSize; 113 LPEXT_BUTTON lpButtons; 114 WORD cButtons; 115 WORD cBitmaps; 116 WORD idBitmap; 117 HBITMAP hBitmap; 118 } FMS_TOOLBARLOAD,*LPFMS_TOOLBARLOAD; 119 120 typedef struct tagFMS_HELPSTRINGA { 121 INT idCommand; 122 HMENU hMenu; 123 CHAR szHelp[128]; 124 } FMS_HELPSTRINGA,*LPFMS_HELPSTRINGA; 125 126 typedef struct tagFMS_HELPSTRINGW { 127 INT idCommand; 128 HMENU hMenu; 129 WCHAR szHelp[128]; 130 } FMS_HELPSTRINGW,*LPFMS_HELPSTRINGW; 131 132 #define FMS_HELPSTRING __MINGW_NAME_AW(FMS_HELPSTRING) 133 #define LPFMS_HELPSTRING __MINGW_NAME_AW(LPFMS_HELPSTRING) 134 135 typedef DWORD (WINAPI *FM_EXT_PROC)(HWND,WORD,LONG); 136 typedef DWORD (WINAPI *FM_UNDELETE_PROC)(HWND,LPTSTR); 137 138 LONG WINAPI FMExtensionProcW(HWND hwnd,WORD wEvent,LONG lParam); 139 LONG WINAPI FMExtensionProc(HWND hwnd,WORD wEvent,LONG lParam); 140 141 #ifdef __cplusplus 142 } 143 #endif 144 #endif 145