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