This topic defines the LOCALE_CUSTOM* constants used by NLS to represent custom locales.

LOCALE_CUSTOM_DEFAULTWindows Vista and later: The default custom locale. When an NLS function must return a locale identifier for a supplemental locale for the current user, the function returns this value instead of LOCALE_USER_DEFAULT. The value of LOCALE_CUSTOM_DEFAULT is 0x0C00.
LOCALE_CUSTOM_UI_DEFAULTWindows Vista and later: The default custom locale for MUI. The user preferred UI languages and the system preferred UI languages can include at most a single language that is implemented by a Language Interface Pack (LIP) and for which the language identifier corresponds to a supplemental locale. If there is such a language in a list, the constant is used to refer to that language in certain contexts. The value of LOCALE_CUSTOM_UI_DEFAULT is 0x1400.
LOCALE_CUSTOM_UNSPECIFIEDWindows Vista and later: An unspecified custom locale, used to identify all supplemental locales except the locale for the current user. Supplemental locales cannot be distinguished from one another by their locale identifiers, but can be distinguished by their locale names. Certain NLS functions can return this constant to indicate that they cannot provide a useful identifier for a particular locale. The value of LOCALE_CUSTOM_UNSPECIFIED is 0x1000.