12880df2609eba09b555ca37be04b6ad89290c765Tom Hudson/*
22880df2609eba09b555ca37be04b6ad89290c765Tom Hudson * Copyright 2013 Google Inc.
32880df2609eba09b555ca37be04b6ad89290c765Tom Hudson *
42880df2609eba09b555ca37be04b6ad89290c765Tom Hudson * Use of this source code is governed by a BSD-style license that can be
52880df2609eba09b555ca37be04b6ad89290c765Tom Hudson * found in the LICENSE file.
62880df2609eba09b555ca37be04b6ad89290c765Tom Hudson */
707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com#include "windows.h"
807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com#include "stdio.h"
907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com
1007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com#define BUFFER_SIZE 512
1107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comBOOL CALLBACK MyFuncLocaleEx(LPWSTR pStr, DWORD dwFlags, LPARAM lparam) {
1207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    WCHAR wcBuffer[BUFFER_SIZE];
1307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    int bufferSize;
1407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com
1507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    bufferSize = GetLocaleInfoEx(pStr, LOCALE_SENGLANGUAGE, wcBuffer, BUFFER_SIZE);
1607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    if (bufferSize == 0) {
1707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com        wprintf(L"Locale %s had error %d\n", pStr, GetLastError());
1807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com        return (TRUE);
1907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    }
2007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com
212880df2609eba09b555ca37be04b6ad89290c765Tom Hudson    LCID lcid = LocaleNameToLCID(pStr, nullptr);
2207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    if (lcid == 0) {
2307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com        wprintf(L"Error %d getting LCID\n", GetLastError());
2407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com        return (TRUE);
2507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    }
26041e2dbc0614e3341e1349fd0e962744a45b6194skia.committer@gmail.com
2707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    if (lcid > 0x8000) {
2807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com        wprintf(L"//");
2907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    }
3007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    wprintf(L"    { 0x%.4x, \"%s\" }, //%s\n", lcid, pStr, wcBuffer);
3107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com
3207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com    return (TRUE);
3307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com}
3407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com
3507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comint main(int argc, wchar_t* argv[]) {
362880df2609eba09b555ca37be04b6ad89290c765Tom Hudson    EnumSystemLocalesEx(MyFuncLocaleEx, LOCALE_ALL, nullptr, nullptr);
3707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com}
38