I am in the process of developing a application which displays dialogs depending on the OS language. How I can get the OS language using C++ or Windows APIs (Windows 2008/Vi
The accepted answer to this question is wrong. You should not make user interface decisions based on the default locale. Use GetDefaultUILanguage
for this.
Do you resolve this problem?
If answer is No,
LPWSTR lpLocalName=NULL
is wrong.
LPWSTR lpLocalName=NULL
----> WCHAR localName[LOCALE_NAME_MAX_LENGTH]
is right.
Because No memory allocation is in GetUserDefaultLocalName
.
There are several functions to do this in Windows, depending on what format you want the information in. Prior to Windows Vista, the language information was encoded into a LCID (Locale Id) which includes language, as well as some information about sorting and formatting.
For Windows Vista and Windows 7, a more flexible system called Locale Names was devised. GetSystemDefaultLocaleName
Use this if you want to work on Win2k and WinXP. GetSystemDefaultLCID