42
42
This table is sorted by low byte of winlayout, then by next byte, etc.
45
WinKBLayoutRec winKBLayouts[] =
45
WinKBLayoutRec winKBLayouts[] =
47
{ 0x404, -1, "pc105", "zh_TW", NULL, NULL, "Chinese (Taiwan)"},
48
{ 0x405, -1, "pc105", "cz", NULL, NULL, "Czech"},
49
{0x10405, -1, "pc105", "cz_qwerty", NULL, NULL, "Czech (QWERTY)"},
50
{ 0x406, -1, "pc105", "dk", NULL, NULL, "Danish"},
51
{ 0x407, -1, "pc105", "de", NULL, NULL, "German (Germany)"},
52
{0x10407, -1, "pc105", "de", NULL, NULL, "German (Germany, IBM)"},
53
{ 0x807, -1, "pc105", "ch", "de", NULL, "German (Switzerland)"},
54
{ 0x409, -1, "pc105", "us", NULL, NULL, "English (USA)"},
55
{0x10409, -1, "pc105", "dvorak", NULL, NULL, "English (USA, Dvorak)"},
56
{0x20409, -1, "pc105", "us_intl", NULL, NULL, "English (USA, International)"},
57
{ 0x809, -1, "pc105", "gb", NULL, NULL, "English (United Kingdom)"},
58
{ 0x1809, -1, "pc105", "ie", NULL, NULL, "Irish"},
59
{ 0x40a, -1, "pc105", "es", NULL, NULL, "Spanish (Spain, Traditional Sort)"},
60
{ 0x80a, -1, "pc105", "latam", NULL, NULL, "Latin American"},
61
{ 0x40b, -1, "pc105", "fi", NULL, NULL, "Finnish"},
62
{ 0x40c, -1, "pc105", "fr", NULL, NULL, "French (Standard)"},
63
{ 0x80c, -1, "pc105", "be", NULL, NULL, "French (Belgian)"},
64
{ 0xc0c, -1, "pc105", "ca", "fr", NULL, "French (Canada)"},
65
{ 0x100c, -1, "pc105", "ch", "fr", NULL, "French (Switzerland)"},
66
{ 0x40d, -1, "pc105", "il", NULL, NULL, "Hebrew"},
67
{ 0x40e, -1, "pc105", "hu", NULL, NULL, "Hungarian"},
68
{ 0x40f, -1, "pc105", "is", NULL, NULL, "Icelandic"},
69
{ 0x410, -1, "pc105", "it", NULL, NULL, "Italian"},
70
{0x10410, -1, "pc105", "it", NULL, NULL, "Italian (142)"},
71
{0xa0000410,-1, "macbook79","it", "mac",NULL, "Italiano (Apple)"},
72
{ 0x411, 7, "jp106", "jp", NULL, NULL, "Japanese"},
73
{ 0x413, -1, "pc105", "nl", NULL, NULL, "Dutch"},
74
{ 0x813, -1, "pc105", "be", NULL, NULL, "Dutch (Belgian)"},
75
{ 0x414, -1, "pc105", "no", NULL, NULL, "Norwegian"},
76
{ 0x415, -1, "pc105", "pl", NULL, NULL, "Polish (Programmers)"},
77
{ 0x416, -1, "pc105", "br", NULL, NULL, "Portuguese (Brazil, ABNT)"},
78
{0x10416, -1, "abnt2", "br", NULL, NULL, "Portuguese (Brazil, ABNT2)"},
79
{ 0x816, -1, "pc105", "pt", NULL, NULL, "Portuguese (Portugal)"},
80
{ 0x41a, -1, "pc105", "hr", NULL, NULL, "Croatian"},
81
{ 0x41d, -1, "pc105", "se", NULL, NULL, "Swedish (Sweden)"},
82
{ 0x424, -1, "pc105", "si", NULL, NULL, "Slovenian"},
83
{ 0x425, -1, "pc105", "ee", NULL, NULL, "Estonian"},
84
{ 0x452, -1, "pc105", "gb", "intl", NULL, "United Kingdom (Extended)"},
85
{ -1, -1, NULL, NULL, NULL, NULL, NULL}
47
{ 0x00000404, -1, "pc105", "zh_TW", NULL, NULL, "Chinese (Taiwan)"},
48
{ 0x00000405, -1, "pc105", "cz", NULL, NULL, "Czech"},
49
{ 0x00010405, -1, "pc105", "cz_qwerty", NULL, NULL, "Czech (QWERTY)"},
50
{ 0x00000406, -1, "pc105", "dk", NULL, NULL, "Danish"},
51
{ 0x00000407, -1, "pc105", "de", NULL, NULL, "German (Germany)"},
52
{ 0x00010407, -1, "pc105", "de", NULL, NULL, "German (Germany,IBM)"},
53
{ 0x00000807, -1, "pc105", "ch", "de", NULL, "German (Switzerland)"},
54
{ 0x00000409, -1, "pc105", "us", NULL, NULL, "English (USA)"},
55
{ 0x00010409, -1, "pc105", "dvorak", NULL, NULL, "English (USA,Dvorak)"},
56
{ 0x00020409, -1, "pc105", "us_intl", NULL, NULL, "English (USA,International)"},
57
{ 0x00000809, -1, "pc105", "gb", NULL, NULL, "English (United Kingdom)"},
58
{ 0x00001809, -1, "pc105", "ie", NULL, NULL, "Irish"},
59
{ 0x0000040a, -1, "pc105", "es", NULL, NULL, "Spanish (Spain,Traditional Sort)"},
60
{ 0x0000080a, -1, "pc105", "latam", NULL, NULL, "Latin American"},
61
{ 0x0000040b, -1, "pc105", "fi", NULL, NULL, "Finnish"},
62
{ 0x0000040c, -1, "pc105", "fr", NULL, NULL, "French (Standard)"},
63
{ 0x0000080c, -1, "pc105", "be", NULL, NULL, "French (Belgian)"},
64
{ 0x00000c0c, -1, "pc105", "ca", "fr", NULL, "French (Canada)"},
65
{ 0x0000100c, -1, "pc105", "ch", "fr", NULL, "French (Switzerland)"},
66
{ 0x0000040d, -1, "pc105", "il", NULL, NULL, "Hebrew"},
67
{ 0x0000040e, -1, "pc105", "hu", NULL, NULL, "Hungarian"},
68
{ 0x0000040f, -1, "pc105", "is", NULL, NULL, "Icelandic"},
69
{ 0x00000410, -1, "pc105", "it", NULL, NULL, "Italian"},
70
{ 0x00010410, -1, "pc105", "it", NULL, NULL, "Italian (142)"},
71
{ 0xa0000410, -1, "macbook79", "it", "mac", NULL, "Italiano (Apple)"},
72
{ 0x00000411, 7, "jp106", "jp", NULL, NULL, "Japanese"},
73
{ 0x00000413, -1, "pc105", "nl", NULL, NULL, "Dutch"},
74
{ 0x00000813, -1, "pc105", "be", NULL, NULL, "Dutch (Belgian)"},
75
{ 0x00000414, -1, "pc105", "no", NULL, NULL, "Norwegian"},
76
{ 0x00000415, -1, "pc105", "pl", NULL, NULL, "Polish (Programmers)"},
77
{ 0x00000416, -1, "pc105", "br", NULL, NULL, "Portuguese (Brazil,ABNT)"},
78
{ 0x00010416, -1, "abnt2", "br", NULL, NULL, "Portuguese (Brazil,ABNT2)"},
79
{ 0x00000816, -1, "pc105", "pt", NULL, NULL, "Portuguese (Portugal)"},
80
{ 0x0000041a, -1, "pc105", "hr", NULL, NULL, "Croatian"},
81
{ 0x0000041d, -1, "pc105", "se", NULL, NULL, "Swedish (Sweden)"},
82
{ 0x00000424, -1, "pc105", "si", NULL, NULL, "Slovenian"},
83
{ 0x00000425, -1, "pc105", "ee", NULL, NULL, "Estonian"},
84
{ 0x00000452, -1, "pc105", "gb", "intl", NULL, "United Kingdom (Extended)"},
85
{ -1, -1, NULL, NULL, NULL, NULL, NULL}
88
/* Listing of language codes from MSDN */
90
Support ID XKB Language
91
====================================================================
92
? 0x0000 Language Neutral
93
? 0x0400 Process or User Default Language
94
? 0x0800 System Default Language
95
0x0401 Arabic (Saudi Arabia)
99
0x1401 Arabic (Algeria)
100
0x1801 Arabic (Morocco)
101
0x1c01 Arabic (Tunisia)
103
0x2401 Arabic (Yemen)
104
0x2801 Arabic (Syria)
105
0x2c01 Arabic (Jordan)
106
0x3001 Arabic (Lebanon)
107
0x3401 Arabic (Kuwait)
108
0x3801 Arabic (U.A.E.)
109
0x3c01 Arabic (Bahrain)
110
0x4001 Arabic (Qatar)
114
0x0404 Chinese (Taiwan)
116
0x0c04 Chinese (Hong Kong SAR, PRC)
117
0x1004 Chinese (Singapore)
118
0x1404 Chinese (Macao SAR) (98/ME,2K/XP)
120
X cz_qwerty Czech (QWERTY)
123
X 0x0407 de German (Standard)
124
X 0x0807 de_CH German (Switzerland)
125
0x0c07 German (Austria)
126
0x1007 German (Luxembourg)
127
0x1407 German (Liechtenstein)
129
X 0x0409 us English (United States)
130
X 0x0809 gb English (United Kingdom)
131
0x0c09 English (Australian)
132
0x1009 English (Canadian)
133
0x1409 English (New Zealand)
134
X 0x1809 ie English (Ireland)
135
0x1c09 English (South Africa)
136
0x2009 English (Jamaica)
137
0x2409 English (Caribbean)
138
0x2809 English (Belize)
139
0x2c09 English (Trinidad)
140
0x3009 English (Zimbabwe) (98/ME,2K/XP)
141
0x3409 English (Philippines) (98/ME,2K/XP)
142
X 0x040a es Spanish (Spain, Traditional Sort)
143
0x080a Spanish (Mexican)
144
0x0c0a Spanish (Spain, Modern Sort)
145
0x100a Spanish (Guatemala)
146
0x140a Spanish (Costa Rica)
147
0x180a Spanish (Panama)
148
0x1c0a Spanish (Dominican Republic)
149
0x200a Spanish (Venezuela)
150
0x240a Spanish (Colombia)
151
0x280a Spanish (Peru)
152
0x2c0a Spanish (Argentina)
153
0x300a Spanish (Ecuador)
154
0x340a Spanish (Chile)
155
0x380a Spanish (Uruguay)
156
0x3c0a Spanish (Paraguay)
157
0x400a Spanish (Bolivia)
158
0x440a Spanish (El Salvador)
159
0x480a Spanish (Honduras)
160
0x4c0a Spanish (Nicaragua)
161
0x500a Spanish (Puerto Rico)
164
X 0x040c fr French (Standard)
165
X 0x080c be French (Belgian)
166
. 0x0c0c French (Canadian)
167
French (Canadian, Legacy)
168
Canadian (Multilingual)
169
X 0x100c fr_CH French (Switzerland)
170
0x140c French (Luxembourg)
171
0x180c French (Monaco) (98/ME,2K/XP)
173
X 0x040e hu Hungarian
175
X 0x0410 it Italian (Standard)
176
0x0810 Italian (Switzerland)
179
0x0812 Korean (Johab) (95,NT)
180
. 0x0413 Dutch (Netherlands)
181
X 0x0813 be Dutch (Belgium)
182
X 0x0414 no Norwegian (Bokmal)
183
0x0814 Norwegian (Nynorsk)
185
X 0x0416 br Portuguese (Brazil)
186
X 0x0816 pt Portuguese (Portugal)
190
. 0x081a Serbian (Latin)
191
. 0x0c1a Serbian (Cyrillic)
192
0x101a Croatian (Bosnia and Herzegovina)
193
0x141a Bosnian (Bosnia and Herzegovina)
194
0x181a Serbian (Latin, Bosnia, and Herzegovina)
195
0x1c1a Serbian (Cyrillic, Bosnia, and Herzegovina)
199
0x081d Swedish (Finland)
202
0x0420 Urdu (Pakistan) (98/ME,2K/XP)
211
0x0827 Lithuanian (Classic) (98)
213
0x042a Vietnamese (98/ME,NT,2K/XP)
214
0x042b Armenian. This is Unicode only. (2K/XP)
218
0x082c Azeri (Cyrillic)
220
0x042f Macedonian (FYROM)
222
0x0432 Setswana/Tswana (South Africa)
223
0x0434 isiXhosa/Xhosa (South Africa)
224
0x0435 isiZulu/Zulu (South Africa)
226
0x0437 Georgian. This is Unicode only. (2K/XP)
228
0x0439 Hindi. This is Unicode only. (2K/XP)
229
0x043a Maltese (Malta)
230
0x043b Sami, Northern (Norway)
231
0x083b Sami, Northern (Sweden)
232
0x0c3b Sami, Northern (Finland)
233
0x103b Sami, Lule (Norway)
234
0x143b Sami, Lule (Sweden)
235
0x183b Sami, Southern (Norway)
236
0x1c3b Sami, Southern (Sweden)
237
0x203b Sami, Skolt (Finland)
238
0x243b Sami, Inari (Finland)
239
0x043e Malay (Malaysian)
240
0x083e Malay (Brunei Darussalam)
242
0x0441 Swahili (Kenya)
244
0x0843 Uzbek (Cyrillic)
245
0x0444 Tatar (Tatarstan)
246
0x0445 Bengali (India)
248
0x0446 Punjabi. This is Unicode only. (XP)
249
0x0447 Gujarati. This is Unicode only. (XP)
250
0x0449 Tamil. This is Unicode only. (2K/XP)
251
0x044a Telugu. This is Unicode only. (XP)
252
0x044b Kannada. This is Unicode only. (XP)
253
0x044c Malayalam (India)
254
0x044e Marathi. This is Unicode only. (2K/XP)
255
0x044f Sanskrit. This is Unicode only. (2K/XP)
256
0x0450 Mongolian (XP)
257
0x0452 Welsh (United Kingdom)
260
0x0457 Konkani. This is Unicode only. (2K/XP)
261
0x045a Syriac. This is Unicode only. (XP)
262
0x0465 Divehi. This is Unicode only. (XP)
265
0x046b Quechua (Bolivia)
266
0x086b Quechua (Ecuador)
267
0x0c6b Quechua (Peru)
268
0x046c Sesotho sa Leboa/Northern Sotho (South Africa)
269
0x007f LOCALE_INVARIANT. See MAKELCID.
270
0x0481 Maori (New Zealand)
89
See http://technet.microsoft.com/en-us/library/cc766503%28WS.10%29.aspx
90
for a listing of input locale (keyboard layout) codes