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 _SMX_H_
7 #define _SMX_H_
8 
9 #include <_mingw_unicode.h>
10 
11 #define MENU_TEXT_LEN 50
12 
13 #define SME_VERSION 0
14 
15 #define SM_GETSELCOUNT (WM_USER + 1000)
16 #define SM_GETSERVERSELA (WM_USER + 1001)
17 #define SM_GETSERVERSELW (WM_USER + 1002)
18 #define SM_GETCURFOCUSA (WM_USER + 1003)
19 #define SM_GETCURFOCUSW (WM_USER + 1004)
20 #define SM_GETOPTIONS (WM_USER + 1005)
21 
22 #define SM_GETSERVERSEL __MINGW_NAME_AW(SM_GETSERVERSEL)
23 #define SM_GETCURFOCUS __MINGW_NAME_AW(SM_GETCURFOCUS)
24 
25 typedef struct _SMS_LOADMENUA {
26   DWORD dwVersion;
27   CHAR szMenuName[MENU_TEXT_LEN + 1];
28   HMENU hMenu;
29   CHAR szHelpFileName[MAX_PATH];
30   DWORD dwServerType;
31   DWORD dwMenuDelta;
32 } SMS_LOADMENUA,*PSMS_LOADMENUA;
33 
34 typedef struct _SMS_LOADMENUW {
35   DWORD dwVersion;
36   WCHAR szMenuName[MENU_TEXT_LEN + 1];
37   HMENU hMenu;
38   WCHAR szHelpFileName[MAX_PATH];
39   DWORD dwServerType;
40   DWORD dwMenuDelta;
41 } SMS_LOADMENUW,*PSMS_LOADMENUW;
42 
43 #define SMS_LOADMENU __MINGW_NAME_AW(SMS_LOADMENU)
44 #define PSMS_LOADMENU __MINGW_NAME_AW(PSMS_LOADMENU)
45 
46 typedef struct _SMS_GETSERVERSELA {
47   CHAR szServerName[MAX_PATH];
48   DWORD dwServerType;
49 } SMS_GETSERVERSELA,*PSMS_GETSERVERSELA;
50 
51 typedef struct _SMS_GETSERVERSELW {
52   WCHAR szServerName[MAX_PATH];
53   DWORD dwServerType;
54 
55 } SMS_GETSERVERSELW,*PSMS_GETSERVERSELW;
56 
57 #define SMS_GETSERVERSEL __MINGW_NAME_AW(SMS_GETSERVERSEL)
58 #define PSMS_GETSERVERSEL __MINGW_NAME_AW(PSMS_GETSERVERSEL)
59 
60 typedef struct _SMS_GETSELCOUNT {
61   DWORD dwItems;
62 } SMS_GETSELCOUNT,*PSMS_GETSELCOUNT;
63 
64 #define SM_FOCUS_TYPE_NT_DOMAIN 1
65 #define SM_FOCUS_TYPE_LM_DOMAIN 2
66 #define SM_FOCUS_TYPE_UNKNOWN_DOMAIN 3
67 #define SM_FOCUS_TYPE_NT_SERVER 4
68 #define SM_FOCUS_TYPE_LM_SERVER 5
69 #define SM_FOCUS_TYPE_WFW_SERVER 6
70 #define SM_FOCUS_TYPE_UNKNOWN_SERVER 7
71 
72 typedef struct _SMS_GETCURFOCUSA {
73   CHAR szFocus[MAX_PATH];
74   DWORD dwFocusType;
75 } SMS_GETCURFOCUSA,*PSMS_GETCURFOCUSA;
76 
77 typedef struct _SMS_GETCURFOCUSW {
78   WCHAR szFocus[MAX_PATH];
79   DWORD dwFocusType;
80 } SMS_GETCURFOCUSW,*PSMS_GETCURFOCUSW;
81 
82 #define SMS_GETCURFOCUS __MINGW_NAME_AW(SMS_GETCURFOCUS)
83 #define PSMS_GETCURFOCUS __MINGW_NAME_AW(PSMS_GETCURFOCUS)
84 
85 typedef struct _SMS_GETOPTIONS {
86   WINBOOL fSaveSettingsOnExit;
87   WINBOOL fConfirmation;
88 } SMS_GETOPTIONS,*PSMS_GETOPTIONS;
89 
90 typedef struct _SMS_VALIDATEA {
91   const CHAR *pszServer;
92   CHAR *pszType;
93   CHAR *pszComment;
94 } SMS_VALIDATEA,*PSMS_VALIDATEA;
95 
96 typedef struct _SMS_VALIDATEW {
97   const WCHAR *pszServer;
98   WCHAR *pszType;
99   WCHAR *pszComment;
100 
101 } SMS_VALIDATEW,*PSMS_VALIDATEW;
102 
103 #define SMS_VALIDATE __MINGW_NAME_AW(SMS_VALIDATE)
104 #define PSMS_VALIDATE __MINGW_NAME_AW(PSMS_VALIDATE)
105 
106 #define SZ_SME_UNLOADMENU "SMEUnloadMenu"
107 #define SZ_SME_INITIALIZEMENU "SMEInitializeMenu"
108 #define SZ_SME_REFRESH "SMERefresh"
109 #define SZ_SME_MENUACTION "SMEMenuAction"
110 #define SZ_SME_LOADMENUW "SMELoadMenuW"
111 #define SZ_SME_GETEXTENDEDERRORSTRINGW "SMEGetExtendedErrorStringW"
112 #define SZ_SME_VALIDATEW "SMEValidateW"
113 #define SZ_SME_LOADMENUA "SMELoadMenuA"
114 #define SZ_SME_GETEXTENDEDERRORSTRINGA "SMEGetExtendedErrorStringA"
115 #define SZ_SME_VALIDATEA "SMEValidateA"
116 
117 #define SZ_SME_LOADMENU __MINGW_NAME_AW(SZ_SME_LOADMENU)
118 #define SZ_SME_GETEXTENDEDERRORSTRING __MINGW_NAME_AW(SZ_SME_GETEXTENDEDERRORSTRING)
119 #define SZ_SME_VALIDATE __MINGW_NAME_AW(SZ_SME_VALIDATE)
120 
121 typedef DWORD (WINAPI *PSMX_LOADMENU)(HWND hWnd,PSMS_LOADMENU psmsload);
122 typedef LPTSTR (WINAPI *PSMX_GETEXTENDEDERRORSTRING)(VOID);
123 typedef VOID (WINAPI *PSMX_UNLOADMENU)(VOID);
124 typedef VOID (WINAPI *PSMX_INITIALIZEMENU)(VOID);
125 typedef VOID (WINAPI *PSMX_REFRESH)(HWND hwndParent);
126 typedef VOID (WINAPI *PSMX_MENUACTION)(HWND hwndParent,DWORD dwEventId);
127 typedef WINBOOL (WINAPI *PSMX_VALIDATE)(PSMS_VALIDATE psmsvalidate);
128 
129 DWORD WINAPI SMELoadMenuA(HWND hWnd,PSMS_LOADMENUA psmsload);
130 DWORD WINAPI SMELoadMenuW(HWND hWnd,PSMS_LOADMENUW psmsload);
131 LPSTR WINAPI SMEGetExtendedErrorStringA(VOID);
132 LPWSTR WINAPI SMEGetExtendedErrorStringW(VOID);
133 VOID WINAPI SMEUnloadMenu(VOID);
134 VOID WINAPI SMEInitializeMenu(VOID);
135 VOID WINAPI SMERefresh(HWND hwndParent);
136 VOID WINAPI SMEMenuAction(HWND hwndParent,DWORD dwEventId);
137 WINBOOL WINAPI SMEValidateA(PSMS_VALIDATEA psmsValidate);
138 WINBOOL WINAPI SMEValidateW(PSMS_VALIDATEW psmsValidate);
139 
140 #endif
141