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