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 _UMX_H_
7 #define _UMX_H_
8 
9 #include <_mingw_unicode.h>
10 
11 #define UME_MENU_TEXT_LEN 50
12 #define UME_VERSION 0
13 
14 #define UMS_LISTBOX_USERS 0
15 #define UMS_LISTBOX_GROUPS 1
16 
17 #define UM_GETSELCOUNT (WM_USER + 1000)
18 #define UM_GETUSERSELA (WM_USER + 1001)
19 #define UM_GETUSERSELW (WM_USER + 1002)
20 #define UM_GETGROUPSELA (WM_USER + 1003)
21 #define UM_GETGROUPSELW (WM_USER + 1004)
22 #define UM_GETCURFOCUSA (WM_USER + 1005)
23 #define UM_GETCURFOCUSW (WM_USER + 1006)
24 #define UM_GETOPTIONS (WM_USER + 1007)
25 #define UM_GETOPTIONS2 (WM_USER + 1008)
26 
27 #define UM_GETUSERSEL __MINGW_NAME_AW(UM_GETUSERSEL)
28 #define UM_GETGROUPSEL __MINGW_NAME_AW(UM_GETGROUPSEL)
29 #define UM_GETCURFOCUS __MINGW_NAME_AW(UM_GETCURFOCUS)
30 
31 typedef struct _UMS_LOADMENUA {
32   DWORD dwVersion;
33   CHAR szMenuName[UME_MENU_TEXT_LEN + 1];
34   HMENU hMenu;
35   CHAR szHelpFileName[MAX_PATH];
36   DWORD dwMenuDelta;
37 } UMS_LOADMENUA,*PUMS_LOADMENUA;
38 
39 typedef struct _UMS_LOADMENUW {
40   DWORD dwVersion;
41   WCHAR szMenuName[UME_MENU_TEXT_LEN + 1];
42   HMENU hMenu;
43   WCHAR szHelpFileName[MAX_PATH];
44   DWORD dwMenuDelta;
45 } UMS_LOADMENUW,*PUMS_LOADMENUW;
46 
47 #define UMS_LOADMENU __MINGW_NAME_AW(UMS_LOADMENU)
48 #define PUMS_LOADMENU __MINGW_NAME_AW(PUMS_LOADMENU)
49 
50 #define UM_SELTYPE_USER 0x10
51 #define UM_SELTYPE_NORMALUSER 0x1 | UM_SELTYPE_USER
52 #define UM_SELTYPE_REMOTEUSER 0x2 | UM_SELTYPE_USER
53 #define UM_SELTYPE_GROUP 0x20
54 #define UM_SELTYPE_LOCALGROUP 0x4 | UM_SELTYPE_GROUP
55 #define UM_SELTYPE_GLOBALGROUP 0x8 | UM_SELTYPE_GROUP
56 
57 typedef struct _UMS_GETSELA {
58   DWORD dwRID;
59   LPSTR pchName;
60   DWORD dwSelType;
61   LPSTR pchFullName;
62   LPSTR pchComment;
63 } UMS_GETSELA,*PUMS_GETSELA;
64 
65 typedef struct _UMS_GETSELW {
66   DWORD dwRID;
67   LPWSTR pchName;
68   DWORD dwSelType;
69   LPWSTR pchFullName;
70   LPWSTR pchComment;
71 } UMS_GETSELW,*PUMS_GETSELW;
72 
73 #define UMS_GETSEL __MINGW_NAME_AW(UMS_GETSEL)
74 #define PUMS_GETSEL __MINGW_NAME_AW(PUMS_GETSEL)
75 
76 typedef struct _UMS_GETSELCOUNT {
77   DWORD dwItems;
78 } UMS_GETSELCOUNT,*PUMS_GETSELCOUNT;
79 
80 #define UM_FOCUS_TYPE_DOMAIN 1
81 #define UM_FOCUS_TYPE_WINNT 2
82 #define UM_FOCUS_TYPE_LM 3
83 #define UM_FOCUS_TYPE_UNKNOWN 4
84 
85 typedef struct _UMS_GETCURFOCUSA {
86   CHAR szFocus[MAX_PATH];
87   DWORD dwFocusType;
88   CHAR szFocusPDC[MAX_PATH];
89   PVOID psidFocus;
90 } UMS_GETCURFOCUSA,*PUMS_GETCURFOCUSA;
91 
92 typedef struct _UMS_GETCURFOCUSW {
93   WCHAR szFocus[MAX_PATH];
94   DWORD dwFocusType;
95   WCHAR szFocusPDC[MAX_PATH];
96   PVOID psidFocus;
97 } UMS_GETCURFOCUSW,*PUMS_GETCURFOCUSW;
98 
99 #define UMS_GETCURFOCUS __MINGW_NAME_AW(UMS_GETCURFOCUS)
100 #define PUMS_GETCURFOCUS __MINGW_NAME_AW(PUMS_GETCURFOCUS)
101 
102 typedef struct _UMS_GETOPTIONS {
103   WINBOOL fSaveSettingsOnExit;
104   WINBOOL fConfirmation;
105   WINBOOL fSortByFullName;
106 } UMS_GETOPTIONS,*PUMS_GETOPTIONS;
107 
108 typedef struct _UMS_GETOPTIONS2 {
109   WINBOOL fSaveSettingsOnExit;
110   WINBOOL fConfirmation;
111   WINBOOL fSortByFullName;
112   WINBOOL fMiniUserManager;
113   WINBOOL fLowSpeedConnection;
114 } UMS_GETOPTIONS2,*PUMS_GETOPTIONS2;
115 
116 #define SZ_UME_UNLOADMENU "UMEUnloadMenu"
117 #define SZ_UME_INITIALIZEMENU "UMEInitializeMenu"
118 #define SZ_UME_REFRESH "UMERefresh"
119 #define SZ_UME_MENUACTION "UMEMenuAction"
120 
121 #define SZ_UME_LOADMENUW "UMELoadMenuW"
122 #define SZ_UME_GETEXTENDEDERRORSTRINGW "UMEGetExtendedErrorStringW"
123 #define SZ_UME_CREATEW "UMECreateW"
124 #define SZ_UME_DELETEW "UMEDeleteW"
125 #define SZ_UME_RENAMEW "UMERenameW"
126 
127 #define SZ_UME_LOADMENUA "UMELoadMenuA"
128 #define SZ_UME_GETEXTENDEDERRORSTRINGA "UMEGetExtendedErrorStringA"
129 #define SZ_UME_CREATEA "UMECreateA"
130 #define SZ_UME_DELETEA "UMEDeleteA"
131 #define SZ_UME_RENAMEA "UMERenameA"
132 
133 #define SZ_UME_LOADMENU __MINGW_NAME_AW(SZ_UME_LOADMENU)
134 #define SZ_UME_GETEXTENDEDERRORSTRING __MINGW_NAME_AW(SZ_UME_GETEXTENDEDERRORSTRING)
135 #define SZ_UME_CREATE __MINGW_NAME_AW(SZ_UME_CREATE)
136 #define SZ_UME_DELETE __MINGW_NAME_AW(SZ_UME_DELETE)
137 #define SZ_UME_RENAME __MINGW_NAME_AW(SZ_UME_RENAME)
138 
139 typedef DWORD (WINAPI *PUMX_LOADMENUW)(HWND hWnd,PUMS_LOADMENUW pumsload);
140 typedef DWORD (WINAPI *PUMX_LOADMENUA)(HWND hWnd,PUMS_LOADMENUA pumsload);
141 
142 typedef LPWSTR (WINAPI *PUMX_GETEXTENDEDERRORSTRINGW)(VOID);
143 typedef LPSTR (WINAPI *PUMX_GETEXTENDEDERRORSTRINGA)(VOID);
144 typedef VOID (WINAPI *PUMX_UNLOADMENU)(VOID);
145 typedef VOID (WINAPI *PUMX_INITIALIZEMENU)(VOID);
146 typedef VOID (WINAPI *PUMX_REFRESH)(HWND hwndParent);
147 typedef VOID (WINAPI *PUMX_MENUACTION)(HWND hwndParent,DWORD dwEventId);
148 typedef VOID (WINAPI *PUMX_CREATEW)(HWND hwndParent,PUMS_GETSELW pumsSelection);
149 typedef VOID (WINAPI *PUMX_CREATEA)(HWND hwndParent,PUMS_GETSELA pumsSelection);
150 typedef VOID (WINAPI *PUMX_DELETEW)(HWND hwndParent,PUMS_GETSELW pumsSelection);
151 typedef VOID (WINAPI *PUMX_DELETEA)(HWND hwndParent,PUMS_GETSELA pumsSelection);
152 typedef VOID (WINAPI *PUMX_RENAMEW)(HWND hwndParent,PUMS_GETSELW pumsSelection,LPWSTR pchNewName);
153 typedef VOID (WINAPI *PUMX_RENAMEA)(HWND hwndParent,PUMS_GETSELA pumsSelection,LPSTR pchNewName);
154 
155 #define PUMX_LOADMENU __MINGW_NAME_AW(PUMX_LOADMENU)
156 #define PUMX_GETEXTENDEDERRORSTRING __MINGW_NAME_AW(PUMX_GETEXTENDEDERRORSTRING)
157 #define PUMX_CREATE __MINGW_NAME_AW(PUMX_CREATE)
158 #define PUMX_DELETE __MINGW_NAME_AW(PUMX_DELETE)
159 #define PUMX_RENAME __MINGW_NAME_AW(PUMX_RENAME)
160 
161 DWORD WINAPI UMELoadMenuA(HWND hwndMessage,PUMS_LOADMENUA pumsload);
162 DWORD WINAPI UMELoadMenuW(HWND hwndMessage,PUMS_LOADMENUW pumsload);
163 LPSTR WINAPI UMEGetExtendedErrorStringA(VOID);
164 LPWSTR WINAPI UMEGetExtendedErrorStringW(VOID);
165 VOID WINAPI UMEUnloadMenu(VOID);
166 VOID WINAPI UMEInitializeMenu(VOID);
167 VOID WINAPI UMERefresh(HWND hwndParent);
168 VOID WINAPI UMEMenuAction(HWND hwndParent,DWORD dwEventId);
169 VOID WINAPI UMECreateA(HWND hwndParent,PUMS_GETSELA pumsSelection);
170 VOID WINAPI UMECreateW(HWND hwndParent,PUMS_GETSELW pumsSelection);
171 VOID WINAPI UMEDeleteA(HWND hwndParent,PUMS_GETSELA pumsSelection);
172 VOID WINAPI UMEDeleteW(HWND hwndParent,PUMS_GETSELW pumsSelection);
173 VOID WINAPI UMERenameA(HWND hwndParent,PUMS_GETSELA pumsSelection,LPSTR pchNewName);
174 VOID WINAPI UMERenameW(HWND hwndParent,PUMS_GETSELW pumsSelection,LPWSTR pchNewName);
175 #endif
176