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
25typedef 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
34typedef 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
46typedef struct _SMS_GETSERVERSELA {
47  CHAR szServerName[MAX_PATH];
48  DWORD dwServerType;
49} SMS_GETSERVERSELA,*PSMS_GETSERVERSELA;
50
51typedef 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
60typedef 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
72typedef struct _SMS_GETCURFOCUSA {
73  CHAR szFocus[MAX_PATH];
74  DWORD dwFocusType;
75} SMS_GETCURFOCUSA,*PSMS_GETCURFOCUSA;
76
77typedef 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
85typedef struct _SMS_GETOPTIONS {
86  WINBOOL fSaveSettingsOnExit;
87  WINBOOL fConfirmation;
88} SMS_GETOPTIONS,*PSMS_GETOPTIONS;
89
90typedef struct _SMS_VALIDATEA {
91  const CHAR *pszServer;
92  CHAR *pszType;
93  CHAR *pszComment;
94} SMS_VALIDATEA,*PSMS_VALIDATEA;
95
96typedef 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
121typedef DWORD (WINAPI *PSMX_LOADMENU)(HWND hWnd,PSMS_LOADMENU psmsload);
122typedef LPTSTR (WINAPI *PSMX_GETEXTENDEDERRORSTRING)(VOID);
123typedef VOID (WINAPI *PSMX_UNLOADMENU)(VOID);
124typedef VOID (WINAPI *PSMX_INITIALIZEMENU)(VOID);
125typedef VOID (WINAPI *PSMX_REFRESH)(HWND hwndParent);
126typedef VOID (WINAPI *PSMX_MENUACTION)(HWND hwndParent,DWORD dwEventId);
127typedef WINBOOL (WINAPI *PSMX_VALIDATE)(PSMS_VALIDATE psmsvalidate);
128
129DWORD WINAPI SMELoadMenuA(HWND hWnd,PSMS_LOADMENUA psmsload);
130DWORD WINAPI SMELoadMenuW(HWND hWnd,PSMS_LOADMENUW psmsload);
131LPSTR WINAPI SMEGetExtendedErrorStringA(VOID);
132LPWSTR WINAPI SMEGetExtendedErrorStringW(VOID);
133VOID WINAPI SMEUnloadMenu(VOID);
134VOID WINAPI SMEInitializeMenu(VOID);
135VOID WINAPI SMERefresh(HWND hwndParent);
136VOID WINAPI SMEMenuAction(HWND hwndParent,DWORD dwEventId);
137WINBOOL WINAPI SMEValidateA(PSMS_VALIDATEA psmsValidate);
138WINBOOL WINAPI SMEValidateW(PSMS_VALIDATEW psmsValidate);
139
140#endif
141