7 #define WIN32_NO_STATUS
16 #include <ndk/exfuncs.h>
20 #define DECIMAL_RADIX 10
23 #define MAX_FMT_SIZE 30
24 #define MAX_STR_SIZE 128
25 #define MAX_SAMPLES_STR_SIZE 70
27 #define MAX_NUMDECIMALSEP 4
28 #define MAX_NUMTHOUSANDSEP 4
29 #define MAX_NUMNEGATIVESIGN 5
30 #define MAX_NUMPOSITIVESIGN 5
31 #define MAX_NUMLISTSEP 4
32 #define MAX_NUMNATIVEDIGITS 11
34 #define MAX_CURRSYMBOL 13
35 #define MAX_CURRDECIMALSEP 4
36 #define MAX_CURRTHOUSANDSEP 4
37 #define MAX_CURRGROUPING 10
39 #define MAX_TIMEFORMAT 80
40 #define MAX_TIMESEPARATOR 4
41 #define MAX_TIMEAMSYMBOL 15
42 #define MAX_TIMEPMSYMBOL 15
44 #define MAX_SHORTDATEFORMAT 80
45 #define MAX_LONGDATEFORMAT 80
46 #define MAX_DATESEPARATOR 4
47 #define MAX_YEAR_EDIT 4
49 #define MAX_MISCCOUNTRY 80
50 #define MAX_MISCLANGUAGE 80
52 #define MAX_GROUPINGFORMATS 3
55 typedef struct _APPLET
60 APPLET_PROC AppletProc
;
63 typedef struct _GLOBALDATA
66 WCHAR szNumDecimalSep
[MAX_NUMDECIMALSEP
];
67 WCHAR szNumThousandSep
[MAX_NUMTHOUSANDSEP
];
68 WCHAR szNumNegativeSign
[MAX_NUMNEGATIVESIGN
];
69 WCHAR szNumPositiveSign
[MAX_NUMPOSITIVESIGN
];
70 WCHAR szNumListSep
[MAX_NUMLISTSEP
];
71 WCHAR szNumNativeDigits
[MAX_NUMNATIVEDIGITS
];
80 WCHAR szCurrSymbol
[MAX_CURRSYMBOL
];
81 WCHAR szCurrDecimalSep
[MAX_CURRDECIMALSEP
];
82 WCHAR szCurrThousandSep
[MAX_CURRTHOUSANDSEP
];
89 WCHAR szTimeFormat
[MAX_TIMEFORMAT
];
90 WCHAR szTimeSep
[MAX_TIMESEPARATOR
];
91 WCHAR szTimeAM
[MAX_TIMEAMSYMBOL
];
92 WCHAR szTimePM
[MAX_TIMEPMSYMBOL
];
98 WCHAR szLongDateFormat
[MAX_LONGDATEFORMAT
];
99 WCHAR szShortDateFormat
[MAX_SHORTDATEFORMAT
];
100 WCHAR szDateSep
[MAX_DATESEPARATOR
];
102 INT nFirstWeekOfYear
;
107 WCHAR szMiscCountry
[MAX_MISCCOUNTRY
];
108 WCHAR szMiscLanguage
[MAX_MISCLANGUAGE
];
113 BOOL fUserLocaleChanged
;
114 BOOL bApplyToDefaultUser
;
119 } GLOBALDATA
, *PGLOBALDATA
;
127 extern HINSTANCE hApplet
;
128 extern DWORD IsUnattendedSetupEnabled
;
129 extern DWORD UnattendLCID
;
130 extern GROUPINGDATA GroupingFormats
[MAX_GROUPINGFORMATS
];
133 VOID
PrintErrorMsgBox(UINT msg
);
144 LanguagesPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
148 AdvancedPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
152 CurrencyPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
156 DatePageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
160 GeneralPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
169 InpLocalePageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
173 NumbersPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
177 TimePageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
181 IsSortPageNeeded(LCID lcid
);
184 SortPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
188 InsSpacesFmt(PCWSTR szSourceStr
, PCWSTR szFmtStr
);
191 ReplaceSubStr(PCWSTR szSourceStr
, PCWSTR szStrToReplace
, PCWSTR szTempl
);
194 VOID
AddNewKbLayoutsByLcid(LCID Lcid
);