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
 31typedef 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
 39typedef 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
 57typedef struct _UMS_GETSELA {
 58  DWORD dwRID;
 59  LPSTR pchName;
 60  DWORD dwSelType;
 61  LPSTR pchFullName;
 62  LPSTR pchComment;
 63} UMS_GETSELA,*PUMS_GETSELA;
 64
 65typedef 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
 76typedef 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
 85typedef 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
 92typedef 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
102typedef struct _UMS_GETOPTIONS {
103  WINBOOL fSaveSettingsOnExit;
104  WINBOOL fConfirmation;
105  WINBOOL fSortByFullName;
106} UMS_GETOPTIONS,*PUMS_GETOPTIONS;
107
108typedef 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
139typedef DWORD (WINAPI *PUMX_LOADMENUW)(HWND hWnd,PUMS_LOADMENUW pumsload);
140typedef DWORD (WINAPI *PUMX_LOADMENUA)(HWND hWnd,PUMS_LOADMENUA pumsload);
141
142typedef LPWSTR (WINAPI *PUMX_GETEXTENDEDERRORSTRINGW)(VOID);
143typedef LPSTR (WINAPI *PUMX_GETEXTENDEDERRORSTRINGA)(VOID);
144typedef VOID (WINAPI *PUMX_UNLOADMENU)(VOID);
145typedef VOID (WINAPI *PUMX_INITIALIZEMENU)(VOID);
146typedef VOID (WINAPI *PUMX_REFRESH)(HWND hwndParent);
147typedef VOID (WINAPI *PUMX_MENUACTION)(HWND hwndParent,DWORD dwEventId);
148typedef VOID (WINAPI *PUMX_CREATEW)(HWND hwndParent,PUMS_GETSELW pumsSelection);
149typedef VOID (WINAPI *PUMX_CREATEA)(HWND hwndParent,PUMS_GETSELA pumsSelection);
150typedef VOID (WINAPI *PUMX_DELETEW)(HWND hwndParent,PUMS_GETSELW pumsSelection);
151typedef VOID (WINAPI *PUMX_DELETEA)(HWND hwndParent,PUMS_GETSELA pumsSelection);
152typedef VOID (WINAPI *PUMX_RENAMEW)(HWND hwndParent,PUMS_GETSELW pumsSelection,LPWSTR pchNewName);
153typedef 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
161DWORD WINAPI UMELoadMenuA(HWND hwndMessage,PUMS_LOADMENUA pumsload);
162DWORD WINAPI UMELoadMenuW(HWND hwndMessage,PUMS_LOADMENUW pumsload);
163LPSTR WINAPI UMEGetExtendedErrorStringA(VOID);
164LPWSTR WINAPI UMEGetExtendedErrorStringW(VOID);
165VOID WINAPI UMEUnloadMenu(VOID);
166VOID WINAPI UMEInitializeMenu(VOID);
167VOID WINAPI UMERefresh(HWND hwndParent);
168VOID WINAPI UMEMenuAction(HWND hwndParent,DWORD dwEventId);
169VOID WINAPI UMECreateA(HWND hwndParent,PUMS_GETSELA pumsSelection);
170VOID WINAPI UMECreateW(HWND hwndParent,PUMS_GETSELW pumsSelection);
171VOID WINAPI UMEDeleteA(HWND hwndParent,PUMS_GETSELA pumsSelection);
172VOID WINAPI UMEDeleteW(HWND hwndParent,PUMS_GETSELW pumsSelection);
173VOID WINAPI UMERenameA(HWND hwndParent,PUMS_GETSELA pumsSelection,LPSTR pchNewName);
174VOID WINAPI UMERenameW(HWND hwndParent,PUMS_GETSELW pumsSelection,LPWSTR pchNewName);
175#endif