The WinAPI stores locale ids in the LCID «data type».
A locale id can be created with the MAKELCID(…) macro.
Each thread is assigned a locale, initially the system default locale, which can be changed with SetThreadLocale().
Input Locale
The Input Locale (aka input language) is a per-process setting that specifies the used input language (such as German) and an used input method (for example a keyboard).
Input Locales can be added and removed through the Keyboard and Language tab in the Region and Languagecontrol panel.