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
12extern "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