[WINHTTP] Sync with Wine Staging 3.9. CORE-14656
[reactos.git] / dll / cpl / intl / intl.h
1 #ifndef _INTL_H
2 #define _INTL_H
3
4 #include <stdarg.h>
5 #include <stdlib.h>
6
7 #define WIN32_NO_STATUS
8 #include <windef.h>
9 #include <winbase.h>
10 #include <winnls.h>
11 #include <winreg.h>
12 #include <winuser.h>
13 #include <cpl.h>
14 #include <setupapi.h>
15 #include <ndk/exfuncs.h>
16
17 #include "resource.h"
18
19 #define DECIMAL_RADIX 10
20
21 /* Limits */
22 #define MAX_FMT_SIZE 30
23 #define MAX_STR_SIZE 128
24 #define MAX_SAMPLES_STR_SIZE 70
25
26 #define MAX_NUMDECIMALSEP 4
27 #define MAX_NUMTHOUSANDSEP 4
28 #define MAX_NUMNEGATIVESIGN 5
29 #define MAX_NUMPOSITIVESIGN 5
30 #define MAX_NUMLISTSEP 4
31 #define MAX_NUMNATIVEDIGITS 11
32
33 #define MAX_CURRSYMBOL 13
34 #define MAX_CURRDECIMALSEP 4
35 #define MAX_CURRTHOUSANDSEP 4
36 #define MAX_CURRGROUPING 10
37
38 #define MAX_TIMEFORMAT 80
39 #define MAX_TIMESEPARATOR 4
40 #define MAX_TIMEAMSYMBOL 15
41 #define MAX_TIMEPMSYMBOL 15
42
43 #define MAX_SHORTDATEFORMAT 80
44 #define MAX_LONGDATEFORMAT 80
45 #define MAX_DATESEPARATOR 4
46 #define MAX_YEAR_EDIT 4
47
48 #define MAX_MISCCOUNTRY 80
49 #define MAX_MISCLANGUAGE 80
50
51 #define MAX_GROUPINGFORMATS 3
52
53
54 typedef struct _APPLET
55 {
56 UINT idIcon;
57 UINT idName;
58 UINT idDescription;
59 APPLET_PROC AppletProc;
60 } APPLET, *PAPPLET;
61
62 typedef struct _GLOBALDATA
63 {
64 /* General */
65 WCHAR szNumPositiveSign[MAX_NUMPOSITIVESIGN];
66 WCHAR szNumNativeDigits[MAX_NUMNATIVEDIGITS];
67
68 /* Number */
69 WCHAR szNumDecimalSep[MAX_NUMDECIMALSEP];
70 WCHAR szNumThousandSep[MAX_NUMTHOUSANDSEP];
71 WCHAR szNumNegativeSign[MAX_NUMNEGATIVESIGN];
72 WCHAR szNumListSep[MAX_NUMLISTSEP];
73 INT nNumNegFormat;
74 INT nNumDigits;
75 INT nNumLeadingZero;
76 INT nNumGrouping;
77 INT nNumMeasure;
78 INT nNumShape;
79
80 /* Currency */
81 WCHAR szCurrSymbol[MAX_CURRSYMBOL];
82 WCHAR szCurrDecimalSep[MAX_CURRDECIMALSEP];
83 WCHAR szCurrThousandSep[MAX_CURRTHOUSANDSEP];
84 INT nCurrPosFormat;
85 INT nCurrNegFormat;
86 INT nCurrDigits;
87 INT nCurrGrouping;
88
89 /* Time */
90 WCHAR szTimeFormat[MAX_TIMEFORMAT];
91 WCHAR szTimeSep[MAX_TIMESEPARATOR];
92 WCHAR szTimeAM[MAX_TIMEAMSYMBOL];
93 WCHAR szTimePM[MAX_TIMEPMSYMBOL];
94 INT nTime;
95 INT nTimePrefix;
96 INT nTimeLeadingZero;
97
98 /* Date */
99 WCHAR szLongDateFormat[MAX_LONGDATEFORMAT];
100 WCHAR szShortDateFormat[MAX_SHORTDATEFORMAT];
101 WCHAR szDateSep[MAX_DATESEPARATOR];
102 INT nFirstDayOfWeek;
103 INT nFirstWeekOfYear;
104 INT nDate;
105 INT nCalendarType;
106 BOOL bEnableYearNotification;
107
108 /* Other */
109 WCHAR szMiscCountry[MAX_MISCCOUNTRY];
110 WCHAR szMiscLanguage[MAX_MISCLANGUAGE];
111 INT nMiscCountry;
112
113 LCID UserLCID;
114 LCID SystemLCID;
115 BOOL bUserLocaleChanged;
116 BOOL bApplyToDefaultUser;
117
118 GEOID geoid;
119 BOOL bGeoIdChanged;
120
121 /* Misc */
122 BOOL bIsUserAdmin;
123 } GLOBALDATA, *PGLOBALDATA;
124
125 typedef struct
126 {
127 UINT nInteger;
128 PWSTR pszString;
129 } GROUPINGDATA;
130
131 extern HINSTANCE hApplet;
132 extern DWORD IsUnattendedSetupEnabled;
133 extern DWORD UnattendLCID;
134 extern GROUPINGDATA GroupingFormats[MAX_GROUPINGFORMATS];
135
136 /* intl.c */
137 VOID PrintErrorMsgBox(UINT msg);
138
139 INT
140 ResourceMessageBox(
141 HWND hwnd,
142 UINT uType,
143 UINT uCaptionId,
144 UINT uMessageId);
145
146 /* languages.c */
147 INT_PTR CALLBACK
148 LanguagesPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
149
150 /* advanced.c */
151 INT_PTR CALLBACK
152 AdvancedPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
153
154 /* currency.c */
155 INT_PTR CALLBACK
156 CurrencyPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
157
158 /* date.c */
159 INT_PTR CALLBACK
160 DatePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
161
162 /* general.c */
163 INT_PTR CALLBACK
164 GeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
165
166 PWSTR
167 GetLocaleString(
168 PWSTR *pLocaleArray,
169 LCTYPE lcType);
170
171 /* locale.c */
172 INT_PTR CALLBACK
173 InpLocalePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
174
175 /* numbers.h */
176 INT_PTR CALLBACK
177 NumbersPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
178
179 /* time.c */
180 INT_PTR CALLBACK
181 TimePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
182
183 /* sort.c */
184 BOOL
185 IsSortPageNeeded(LCID lcid);
186
187 INT_PTR CALLBACK
188 SortPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
189
190 /* misc.c */
191 PWSTR
192 InsSpacesFmt(PCWSTR szSourceStr, PCWSTR szFmtStr);
193
194 PWSTR
195 ReplaceSubStr(PCWSTR szSourceStr, PCWSTR szStrToReplace, PCWSTR szTempl);
196
197 VOID
198 GetSelectedComboBoxText(
199 HWND hwndDlg,
200 INT nIdDlgItem,
201 PWSTR Buffer,
202 UINT uSize);
203
204 VOID
205 GetSelectedComboBoxIndex(
206 HWND hwndDlg,
207 INT nIdDlgItem,
208 PINT pValue);
209
210 /* kblayouts.c */
211 VOID AddNewKbLayoutsByLcid(LCID Lcid);
212
213 #endif /* _INTL_H */