1 /*
2  * Copyright 2013 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 #include <windows.h>
8 #include <stdio.h>
9 
10 #define BUFFER_SIZE 512
MyFuncLocaleEx(LPWSTR pStr,DWORD dwFlags,LPARAM lparam)11 BOOL CALLBACK MyFuncLocaleEx(LPWSTR pStr, DWORD dwFlags, LPARAM lparam) {
12     WCHAR wcBuffer[BUFFER_SIZE];
13     int bufferSize;
14 
15     bufferSize = GetLocaleInfoEx(pStr, LOCALE_SENGLANGUAGE, wcBuffer, BUFFER_SIZE);
16     if (bufferSize == 0) {
17         wprintf(L"Locale %s had error %d\n", pStr, GetLastError());
18         return (TRUE);
19     }
20 
21     LCID lcid = LocaleNameToLCID(pStr, nullptr);
22     if (lcid == 0) {
23         wprintf(L"Error %d getting LCID\n", GetLastError());
24         return (TRUE);
25     }
26 
27     if (lcid > 0x8000) {
28         wprintf(L"//");
29     }
30     wprintf(L"    { 0x%.4x, \"%s\" }, //%s\n", lcid, pStr, wcBuffer);
31 
32     return (TRUE);
33 }
34 
main(int argc,wchar_t * argv[])35 int main(int argc, wchar_t* argv[]) {
36     EnumSystemLocalesEx(MyFuncLocaleEx, LOCALE_ALL, nullptr, nullptr);
37 }
38