7 #define WIN32_NO_STATUS
15 #include <ndk/exfuncs.h>
19 #define DECIMAL_RADIX 10
22 #define MAX_FMT_SIZE 30
23 #define MAX_STR_SIZE 128
24 #define MAX_SAMPLES_STR_SIZE 70
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
33 #define MAX_CURRSYMBOL 13
34 #define MAX_CURRDECIMALSEP 4
35 #define MAX_CURRTHOUSANDSEP 4
36 #define MAX_CURRGROUPING 10
38 #define MAX_TIMEFORMAT 80
39 #define MAX_TIMESEPARATOR 4
40 #define MAX_TIMEAMSYMBOL 15
41 #define MAX_TIMEPMSYMBOL 15
43 #define MAX_SHORTDATEFORMAT 80
44 #define MAX_LONGDATEFORMAT 80
45 #define MAX_DATESEPARATOR 4
46 #define MAX_YEAR_EDIT 4
48 #define MAX_MISCCOUNTRY 80
49 #define MAX_MISCLANGUAGE 80
51 #define MAX_GROUPINGFORMATS 3
54 typedef struct _APPLET
59 APPLET_PROC AppletProc
;
62 typedef struct _GLOBALDATA
65 WCHAR szNumDecimalSep
[MAX_NUMDECIMALSEP
];
66 WCHAR szNumThousandSep
[MAX_NUMTHOUSANDSEP
];
67 WCHAR szNumNegativeSign
[MAX_NUMNEGATIVESIGN
];
68 WCHAR szNumPositiveSign
[MAX_NUMPOSITIVESIGN
];
69 WCHAR szNumListSep
[MAX_NUMLISTSEP
];
70 WCHAR szNumNativeDigits
[MAX_NUMNATIVEDIGITS
];
79 WCHAR szCurrSymbol
[MAX_CURRSYMBOL
];
80 WCHAR szCurrDecimalSep
[MAX_CURRDECIMALSEP
];
81 WCHAR szCurrThousandSep
[MAX_CURRTHOUSANDSEP
];
88 WCHAR szTimeFormat
[MAX_TIMEFORMAT
];
89 WCHAR szTimeSep
[MAX_TIMESEPARATOR
];
90 WCHAR szTimeAM
[MAX_TIMEAMSYMBOL
];
91 WCHAR szTimePM
[MAX_TIMEPMSYMBOL
];
97 WCHAR szLongDateFormat
[MAX_LONGDATEFORMAT
];
98 WCHAR szShortDateFormat
[MAX_SHORTDATEFORMAT
];
99 WCHAR szDateSep
[MAX_DATESEPARATOR
];
101 INT nFirstWeekOfYear
;
106 WCHAR szMiscCountry
[MAX_MISCCOUNTRY
];
107 WCHAR szMiscLanguage
[MAX_MISCLANGUAGE
];
112 BOOL bUserLocaleChanged
;
113 BOOL bApplyToDefaultUser
;
120 } GLOBALDATA
, *PGLOBALDATA
;
128 extern HINSTANCE hApplet
;
129 extern DWORD IsUnattendedSetupEnabled
;
130 extern DWORD UnattendLCID
;
131 extern GROUPINGDATA GroupingFormats
[MAX_GROUPINGFORMATS
];
134 VOID
PrintErrorMsgBox(UINT msg
);
145 LanguagesPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
149 AdvancedPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
153 CurrencyPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
157 DatePageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
161 GeneralPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
170 InpLocalePageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
174 NumbersPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
178 TimePageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
182 IsSortPageNeeded(LCID lcid
);
185 SortPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
189 InsSpacesFmt(PCWSTR szSourceStr
, PCWSTR szFmtStr
);
192 ReplaceSubStr(PCWSTR szSourceStr
, PCWSTR szStrToReplace
, PCWSTR szTempl
);
195 VOID
AddNewKbLayoutsByLcid(LCID Lcid
);