xref: /reactos/base/setup/lib/mui.h (revision d6eebaa4)
1 #pragma once
2 
3 typedef struct
4 {
5     PCWSTR FontName;
6     PCWSTR SubFontName;
7 } MUI_SUBFONT;
8 
9 typedef USHORT LANGID;
10 typedef ULONG KLID;
11 
12 /*
13  * See http://archives.miloush.net/michkap/archive/2006/10/14/825404.html
14  * and the intl.inf LCID map:
15  *
16  * ; List of locales.
17  * ; <LCID> = <Description>,<OEMCP>,<Language Group>,<langID:HKL pair>,<langID:HKL pair>,...
18  *
19  * Each MUI_LANGUAGE entry corresponds to one such locale description.
20  * Each MUI_LAYOUTS entry corresponds to a <langID:HKL pair>.
21  */
22 typedef struct
23 {
24     LANGID LangID; // Language ID (like 0x0409)
25     KLID LayoutID; // Layout ID (like 0x00000409)
26 } MUI_LAYOUTS;
27 
28 typedef ULONG GEOID; // See winnls.h
29 
30 typedef struct
31 {
32     PCWSTR LanguageID;
33     UINT ACPage;
34     UINT OEMCPage;
35     UINT MACCPage;
36     PCWSTR LanguageDescriptor;
37     GEOID GeoID;
38     const MUI_SUBFONT* MuiSubFonts;
39     const MUI_LAYOUTS* MuiLayouts;
40 } MUI_LANGUAGE;
41 
42 
43 BOOLEAN
44 IsLanguageAvailable(
45     IN PCWSTR LanguageId);
46 
47 KLID
48 MUIDefaultKeyboardLayout(
49     IN PCWSTR LanguageId);
50 
51 UINT
52 MUIGetOEMCodePage(
53     IN PCWSTR LanguageId);
54 
55 GEOID
56 MUIGetGeoID(
57     IN PCWSTR LanguageId);
58 
59 const MUI_LAYOUTS*
60 MUIGetLayoutsList(
61     IN PCWSTR LanguageId);
62 
63 BOOLEAN
64 AddKbLayoutsToRegistry(
65     _In_ const MUI_LAYOUTS* MuiLayouts);
66 
67 BOOLEAN
68 AddKeyboardLayouts(
69     IN PCWSTR LanguageId);
70 
71 BOOLEAN
72 AddCodePage(
73     IN PCWSTR LanguageId);
74