EnumSystemLocales

The EnumSystemLocales function enumerates the locales that are either installed on or supported by a system. The dwFlags parameter determines whether the function enumerates installed or supported system locales. The function enumerates locales by passing locale identifiers, one at a time, to the specified application-defined callback function. This continues until all of the installed or supported locale identifiers have been passed to the callback function or the callback function returns FALSE.

BOOL EnumSystemLocales(
  LOCALE_ENUMPROC lpLocaleEnumProc,
                  // pointer to enumeration callback function
  DWORD dwFlags   // indicates which locales to enumerate
);
 

Parameters

lpLocaleEnumProc
Points to an application-defined callback function. The EnumSystemLocales function enumerates locales by making repeated calls to this callback function. For more information, see the EnumLocalesProc callback function.
dwFlags
Specifies the locale identifiers to enumerate. This parameter can be one of the following values:
Value Meaning
LCID_INSTALLED Enumerate only installed locale identifiers.
LCID_SUPPORTED Enumerate all supported locale identifiers.
LCID_ALTERNATE_SORTS Enumerate only the alternate sorts. If this flag is used by itself, then only the alternate sort locale IDs will be returned. If this flag is used with either LCID_INSTALLED or LCID_SUPPORTED, then the installed or supported locales will be returned as well as the alternate sort locale IDs.

Return Values

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError. GetLastError may return one of the following error codes:

ERROR_INVALID_PARAMETER
ERROR_BADDB
ERROR_INVALID FLAGS

Remarks

The LCID_INSTALLED and LCID_SUPPORTED flags are mutually exclusive.

Windows CE: Windows CE does not support the LCID_ALTERNATE_SORTS flag.

QuickInfo

  Windows NT: Requires version 3.5 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Requires version 1.0 or later.
  Header: Declared in winnls.h.
  Import Library: Use kernel32.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT.

See Also

National Language Support Overview, National Language Support Functions, EnumLocalesProc