Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

GetNLSVersion function

Retrieves information about the current version of a specified NLS capability for a locale specified by identifier.

Note  For interoperability reasons, the application should prefer the GetNLSVersionEx function to GetNLSVersion because Microsoft is migrating toward the use of locale names instead of locale identifiers for new locales. This recommendation applies especially to custom locales, for which GetNLSVersionEx retrieves enough information to determine if sort behavior has changed. Any application that runs only on Windows Vista and later should use GetNLSVersionEx or at least pass the NLSVERSIONINFOEX structure when calling GetNLSVersion to obtain additional sorting versioning data.


BOOL GetNLSVersion(
  _In_    NLS_FUNCTION     Function,
  _In_    LCID             Locale,
  _Inout_ LPNLSVERSIONINFO lpVersionInformation


Function [in]

The NLS capability to query. This value must be COMPARE_STRING. See the SYSNLS_FUNCTION enumeration.

Locale [in]

Locale identifier that specifies the locale. You can use the MAKELCID macro to create an identifier or use one of the following predefined values.

Windows Vista and later: The following custom locale identifiers are also supported.

lpVersionInformation [in, out]

Pointer to an NLSVERSIONINFO structure. The application must initialize the dwNLSVersionInfoSize member to sizeof(NLSVERSIONINFO).

Note  On Windows Vista and later, the function can alternatively provide version information in an NLSVERSIONINFOEX structure.

Return value

Returns TRUE if and only if the application has supplied valid values in lpVersionInformation, or FALSE otherwise. To get extended error information, the application can call GetLastError, which can return one of the following error codes:

  • ERROR_INSUFFICIENT_BUFFER. A supplied buffer size was not large enough, or it was incorrectly set to NULL.
  • ERROR_INVALID_FLAGS. The values supplied for flags were not valid.
  • ERROR_INVALID_PARAMETER. Any of the parameter values was invalid.


This function allows an application such as Active Directory to determine if an NLS change affects the locale identifier used for a particular index table. If it does not, there is no need to re-index the table. For more information, see Handling Sorting in Your Applications.


Minimum supported client

Windows Vista [desktop apps only]

Minimum supported server

Windows Server 2008 [desktop apps only]


Winnls.h (include Windows.h)





See also

National Language Support
National Language Support Functions
Handling Sorting in Your Applications



© 2016 Microsoft