Reactos
1#pragma once
2
3typedef struct
4{
5 PCWSTR FontName;
6 PCWSTR SubFontName;
7} MUI_SUBFONT;
8
9typedef USHORT LANGID;
10typedef 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 */
22typedef struct
23{
24 LANGID LangID; // Language ID (like 0x0409)
25 KLID LayoutID; // Layout ID (like 0x00000409)
26} MUI_LAYOUTS;
27
28typedef ULONG GEOID; // See winnls.h
29
30typedef 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
43BOOLEAN
44IsLanguageAvailable(
45 IN PCWSTR LanguageId);
46
47KLID
48MUIDefaultKeyboardLayout(
49 IN PCWSTR LanguageId);
50
51UINT
52MUIGetOEMCodePage(
53 IN PCWSTR LanguageId);
54
55GEOID
56MUIGetGeoID(
57 IN PCWSTR LanguageId);
58
59const MUI_LAYOUTS*
60MUIGetLayoutsList(
61 IN PCWSTR LanguageId);
62
63BOOLEAN
64AddKbLayoutsToRegistry(
65 _In_ const MUI_LAYOUTS* MuiLayouts);
66
67BOOLEAN
68AddKeyboardLayouts(
69 IN PCWSTR LanguageId);
70
71BOOLEAN
72AddCodePage(
73 IN PCWSTR LanguageId);