winnls.h header

This header is used by Internationalization for Windows Applications. For more information, see:

winnls.h contains the following programming interfaces:

Functions

 
CompareString

The CompareString function (winnls.h) compares two character strings for a locale specified by an identifier.
CompareStringA

Compares two character strings, for a locale specified by identifier.Caution  Using CompareString incorrectly can compromise the security of your application. (CompareStringA)
ConvertDefaultLocale

Converts a default locale value to an actual locale identifier.
EnumCalendarInfoA

Enumerates calendar information for a specified locale.Note  To receive a calendar identifier in addition to calendar information, the application should use the EnumCalendarInfoEx function. (ANSI)
EnumCalendarInfoExA

Enumerates calendar information for a locale specified by identifier.Note  Any application that runs only on Windows Vista and later should use EnumCalendarInfoExEx in preference to this function. (ANSI)
EnumCalendarInfoExEx

Enumerates calendar information for a locale specified by name.Note  The application should call this function in preference to EnumCalendarInfo or EnumCalendarInfoEx if designed to run only on Windows Vista and later. Note  This function can enumerate data that changes between releases, for example, due to a custom locale. If your application must persist or transmit data, see Using Persistent Locale Data.
EnumCalendarInfoExW

Enumerates calendar information for a locale specified by identifier.Note  Any application that runs only on Windows Vista and later should use EnumCalendarInfoExEx in preference to this function. (Unicode)
EnumCalendarInfoW

Enumerates calendar information for a specified locale.Note  To receive a calendar identifier in addition to calendar information, the application should use the EnumCalendarInfoEx function. (Unicode)
EnumDateFormatsA

Enumerates the long date, short date, or year/month formats that are available for a specified locale. (ANSI)
EnumDateFormatsExA

Enumerates the long date, short date, or year/month formats that are available for a specified locale.Note  Any application that runs only on Windows Vista and later should use EnumDateFormatsExEx in preference to this function. (ANSI)
EnumDateFormatsExEx

Enumerates the long date, short date, or year/month formats that are available for a locale specified by name.Note  The application should call this function in preference to EnumDateFormats or EnumDateFormatsEx if designed to run only on Windows Vista and later. Note  This function can enumerate data that changes between releases, for example, due to a custom locale. If your application must persist or transmit data, see Using Persistent Locale Data.
EnumDateFormatsExW

Enumerates the long date, short date, or year/month formats that are available for a specified locale.Note  Any application that runs only on Windows Vista and later should use EnumDateFormatsExEx in preference to this function. (Unicode)
EnumDateFormatsW

Enumerates the long date, short date, or year/month formats that are available for a specified locale. (Unicode)
EnumLanguageGroupLocalesA

Enumerates the locales in a specified language group. (ANSI)
EnumLanguageGroupLocalesW

Enumerates the locales in a specified language group. (Unicode)
EnumSystemCodePagesA

Enumerates the code pages that are either installed on or supported by an operating system. (ANSI)
EnumSystemCodePagesW

Enumerates the code pages that are either installed on or supported by an operating system. (Unicode)
EnumSystemGeoID

Enumerates the geographical location identifiers (type GEOID) that are available on the operating system.
EnumSystemGeoNames

Enumerates the two-letter International Organization for Standardization (ISO) 3166-1 codes or numeric United Nations (UN) Series M, Number 49 (M.49) codes for geographical locations that are available on the operating system.
EnumSystemLanguageGroupsA

Enumerates the language groups that are either installed on or supported by an operating system. (ANSI)
EnumSystemLanguageGroupsW

Enumerates the language groups that are either installed on or supported by an operating system. (Unicode)
EnumSystemLocalesA

Enumerates the locales that are either installed on or supported by an operating system.Note  For interoperability reasons, the application should prefer the EnumSystemLocalesEx function to EnumSystemLocales because Microsoft is migrating toward the use of locale names instead of locale identifiers for new locales. Any application that will be run only on Windows Vista and later should use EnumSystemLocalesEx. (ANSI)
EnumSystemLocalesEx

Enumerates the locales that are either installed on or supported by an operating system.Note  The application should call this function in preference to EnumSystemLocales if designed to run only on Windows Vista and later.
EnumSystemLocalesW

Enumerates the locales that are either installed on or supported by an operating system.Note  For interoperability reasons, the application should prefer the EnumSystemLocalesEx function to EnumSystemLocales because Microsoft is migrating toward the use of locale names instead of locale identifiers for new locales. Any application that will be run only on Windows Vista and later should use EnumSystemLocalesEx. (Unicode)
EnumTimeFormatsA

Enumerates the time formats that are available for a locale specified by identifier.Note  For interoperability reasons, the application should prefer the EnumTimeFormatsEx function to EnumTimeFormats because Microsoft is migrating toward the use of locale names instead of locale identifiers for new locales. Any application that runs only on Windows Vista and later should use EnumTimeFormatsEx. (ANSI)
EnumTimeFormatsEx

Enumerates the time formats that are available for a locale specified by name.Note  The application should call this function in preference to EnumTimeFormats if designed to run only on Windows Vista and later. Note  This function can enumerate data that changes between releases, for example, due to a custom locale. If your application must persist or transmit data, see Using Persistent Locale Data.
EnumTimeFormatsW

Enumerates the time formats that are available for a locale specified by identifier.Note  For interoperability reasons, the application should prefer the EnumTimeFormatsEx function to EnumTimeFormats because Microsoft is migrating toward the use of locale names instead of locale identifiers for new locales. Any application that runs only on Windows Vista and later should use EnumTimeFormatsEx. (Unicode)
EnumUILanguagesA

Enumerates the user interface languages that are available on the operating system and calls the callback function with every language in the list. (ANSI)
EnumUILanguagesW

Enumerates the user interface languages that are available on the operating system and calls the callback function with every language in the list. (Unicode)
FILEMUIINFO_GET_CULTURE

Gets the locale name associated with the language name offset information in the dwLanguageNameOffset member of a FILEMUIINFO structure.
FILEMUIINFO_GET_MAIN_TYPEID

Gets the main module types array element associated with the type identifier size and offset in a FILEMUIINFO structure. The information is provided in the dwTypeIDMainSize and dwTypeIDMainOffset members of the structure.
FILEMUIINFO_GET_MAIN_TYPEIDS

Gets the main module types array associated with the type identifier offset information in the dwTypeIDMainOffset member of a FILEMUIINFO structure.
FILEMUIINFO_GET_MAIN_TYPENAMES

Gets the main module names multistring array associated with the type name offset information in the dwTypeNameMainOffset member of a FILEMUIINFO structure.
FILEMUIINFO_GET_MUI_TYPEID

Gets the MUI module types array element associated with the type identifier size and offset information in a FILEMUIINFO structure. The information is provided in the dwTypeIDMUISize and dwTypeIDMUIOffset members of the structure.
FILEMUIINFO_GET_MUI_TYPEIDS

Gets the MUI module types array associated with the type identifier offset information in the dwTypeIDMUIOffset member of a FILEMUIINFO structure.
FILEMUIINFO_GET_MUI_TYPENAMES

Gets the MUI module names multistring array associated with the type name offset information in the dwTypeNameMUIOffset member of a FILEMUIINFO structure.
FindNLSString

Locates a Unicode string (wide characters) or its equivalent in another Unicode string for a locale specified by identifier.Caution  Because strings with very different binary representations can compare as identical, this function can raise certain security concerns. For more information, see the discussion of comparison functions in Security Considerations:_International Features. Note  For interoperability reasons, the application should prefer the FindNLSStringEx function because Microsoft is migrating toward the use of locale names instead of locale identifiers for new locales. Although FindNLSString supports custom locales, most applications should use FindNLSStringEx for this type of support.
FindNLSStringEx

Locates a Unicode string (wide characters) or its equivalent in another Unicode string for a locale specified by name.Caution  Because strings with very different binary representations can compare as identical, this function can raise certain security concerns. For more information, see the discussion of comparison functions in Security Considerations:_International Features.
FoldStringA

Maps one Unicode string to another, performing the specified transformation. (FoldStringA)
GetACP

Retrieves the current Windows ANSI code page identifier for the operating system.Caution  The ANSI API functions, for example, the ANSI version of TextOut, implicitly use GetACP to translate text to or from Unicode.
GetCalendarInfoA

Retrieves information about a calendar for a locale specified by identifier. (ANSI)
GetCalendarInfoEx

Retrieves information about a calendar for a locale specified by name.Note  The application should call this function in preference to GetCalendarInfo if designed to run only on Windows Vista and later. Note  This function can retrieve data that changes between releases, for example, due to a custom locale. If your application must persist or transmit data, see Using Persistent Locale Data.
GetCalendarInfoW

Retrieves information about a calendar for a locale specified by identifier. (Unicode)
GetCPInfo

Retrieves information about any valid installed or available code page. (GetCPInfo)
GetCPInfoExA

Retrieves information about any valid installed or available code page. (GetCPInfoExA)
GetCPInfoExW

Retrieves information about any valid installed or available code page. (GetCPInfoExW)
GetCurrencyFormatA

Formats a number string as a currency string for a locale specified by identifier. (ANSI)
GetCurrencyFormatEx

Formats a number string as a currency string for a locale specified by name.Note  The application should call this function in preference to GetCurrencyFormat if designed to run only on Windows Vista and later. Note  This function can format data that changes between releases, for example, due to a custom locale. If your application must persist or transmit data, see Using Persistent Locale Data.
GetCurrencyFormatW

Formats a number string as a currency string for a locale specified by identifier. (Unicode)
GetDurationFormat

Formats a duration of time as a time string for a locale specified by identifier.
GetDurationFormatEx

Formats a duration of time as a time string for a locale specified by name.
GetFileMUIInfo

Retrieves resource-related information about a file.
GetFileMUIPath

Retrieves the path to all language-specific resource files associated with the supplied LN file. The application must call this function repeatedly to get the path for each resource file.
GetGeoInfoA

Retrieves information about a specified geographical location. (ANSI)
GetGeoInfoEx

Retrieves information about a geographic location that you specify by using a two-letter International Organization for Standardization (ISO) 3166-1 code or numeric United Nations (UN) Series M, Number 49 (M.49) code.
GetGeoInfoW

Retrieves information about a specified geographical location. (Unicode)
GetLocaleInfoA

Retrieves information about a locale specified by identifier. (ANSI)
GetLocaleInfoEx

Retrieves information about a locale specified by name.Note  The application should call this function in preference to GetLocaleInfo if designed to run only on Windows Vista and later. Note  This function can retrieve data that changes between releases, for example, due to a custom locale. If your application must persist or transmit data, see Using Persistent Locale Data.
GetLocaleInfoW

Retrieves information about a locale specified by identifier. (Unicode)
GetNLSVersion

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.
GetNLSVersionEx

Retrieves information about the current version of a specified NLS capability for a locale specified by name.Note  The application should call this function in preference to GetNLSVersion if designed to run only on Windows Vista and later.
GetNumberFormatA

Formats a number string as a number string customized for a locale specified by identifier. (ANSI)
GetNumberFormatEx

Formats a number string as a number string customized for a locale specified by name.Note  The application should call this function in preference to GetNumberFormat if designed to run only on Windows Vista and later. Note  This function can format data that changes between releases, for example, due to a custom locale. If your application must persist or transmit data, see Using Persistent Locale Data.
GetNumberFormatW

Formats a number string as a number string customized for a locale specified by identifier. (Unicode)
GetOEMCP

Returns the current original equipment manufacturer (OEM) code page identifier for the operating system.
GetProcessPreferredUILanguages

Retrieves the process preferred UI languages. For more information, see User Interface Language Management.
GetStringScripts

Provides a list of scripts used in the specified Unicode string.
GetStringTypeA

Deprecated. (GetStringTypeA)
GetSystemDefaultLangID

Returns the language identifier for the system locale.
GetSystemDefaultLCID

Returns the locale identifier for the system locale.Note  Any application that runs only on Windows Vista and later should use GetSystemDefaultLocaleName in preference to this function.
GetSystemDefaultLocaleName

Retrieves the system default locale name.Note  It is recommended that applications call GetUserDefaultLocaleName in preference over this function.
GetSystemDefaultUILanguage

Retrieves the language identifier for the system default UI language of the operating system, also known as the "install language" on Windows Vista and later. For more information, see User Interface Language Management.
GetSystemPreferredUILanguages

Retrieves the system preferred UI languages. For more information, see User Interface Language Management.
GetThreadLocale

Returns the locale identifier of the current locale for the calling thread.Note  This function can retrieve data that changes between releases, for example, due to a custom locale.
GetThreadPreferredUILanguages

Retrieves the thread preferred UI languages for the current thread. For more information, see User Interface Language Management.
GetThreadUILanguage

Returns the language identifier of the first user interface language for the current thread.
GetUILanguageInfo

Retrieves a variety of information about an installed UI language
GetUserDefaultGeoName

Retrieves the two-letter International Organization for Standardization (ISO) 3166-1 code or numeric United Nations (UN) Series M, Number 49 (M.49) code for the default geographical location of the user.
GetUserDefaultLangID

Returns the language identifier of the Region Format setting for the current user.
GetUserDefaultLCID

Returns the locale identifier for the user default locale.Caution  If the user default locale is a custom locale, an application cannot accurately tag data with the value or exchange it.
GetUserDefaultLocaleName

Retrieves the user default locale name.Note  The application should call this function in preference to GetUserDefaultLCID if designed to run only on Windows Vista and later.
GetUserDefaultUILanguage

Returns the language identifier for the user UI language for the current user.
GetUserGeoID

Retrieves information about the geographical location of the user. For more information, see Table of Geographical Locations.
GetUserPreferredUILanguages

Retrieves information about the user preferred UI languages. For more information, see User Interface Language Management.
IdnToAscii

Converts an internationalized domain name (IDN) or another internationalized label to a Unicode (wide character) representation of the ASCII string that represents the name in the Punycode transfer encoding syntax.
IdnToNameprepUnicode

Converts an internationalized domain name (IDN) or another internationalized label to the NamePrep form specified by Network Working Group RFC 3491, but does not perform the additional conversion to Punycode.
IdnToUnicode

Converts the Punycode form of an internationalized domain name (IDN) or another internationalized label to the normal Unicode UTF-16 encoding syntax.
IS_HIGH_SURROGATE

Determines if a character is a UTF-16 high surrogate code point, ranging from 0xd800 to 0xdbff, inclusive.
IS_LOW_SURROGATE

Determines if a character is a UTF-16 low surrogate code point, ranging from 0xdc00 to 0xdfff, inclusive.
IS_SURROGATE_PAIR

Determines if the specified code units form a UTF-16 surrogate pair.
IsDBCSLeadByte

Determines if a specified character is a lead byte for the system default Windows ANSI code page (CP_ACP). A lead byte is the first byte of a two-byte character in a double-byte character set (DBCS) for the code page.
IsDBCSLeadByteEx

Determines if a specified character is potentially a lead byte. A lead byte is the first byte of a two-byte character in a double-byte character set (DBCS) for the code page.
IsNLSDefinedString

Determines if each character in a string has a defined result for a specified NLS capability.
IsNormalizedString

Verifies that a string is normalized according to Unicode 4.0 TR#15. For more information, see Using Unicode Normalization to Represent Strings.
IsValidCodePage

Determines if a specified code page is valid.
IsValidLanguageGroup

Determines if a language group is installed or supported on the operating system. For more information, see NLS Terminology.
IsValidLocale

Determines if the specified locale is installed or supported on the operating system. For more information, see Locales and Languages.
IsValidLocaleName

Determines if the specified locale name is valid for a locale that is installed or supported on the operating system.Note  An application running only on Windows Vista and later should call this function in preference to IsValidLocale to determine the validity of a supplemental locale.
IsValidNLSVersion

Determines if the NLS version is valid for a given NLS function.
LCIDToLocaleName

Converts a locale identifier to a locale name.
LCMapStringA

For a locale specified by identifier, maps one input character string to another using a specified transformation, or generates a sort key for the input string. (ANSI)
LCMapStringEx

For a locale specified by name, maps an input character string to another using a specified transformation, or generates a sort key for the input string.Note  The application should call this function in preference to LCMapString if designed to run only on Windows Vista and later.
LCMapStringW

For a locale specified by identifier, maps one input character string to another using a specified transformation, or generates a sort key for the input string. (Unicode)
LoadStringByReference

Unsupported. LoadStringByReference may be altered or unavailable. Instead, use SHLoadIndirectString.
LocaleNameToLCID

Converts a locale name to a locale identifier.
NormalizeString

Normalizes characters of a text string according to Unicode 4.0 TR#15. For more information, see Using Unicode Normalization to Represent Strings.
NotifyUILanguageChange

Unsupported. NotifyUILanguageChange may be altered or unavailable.
ResolveLocaleName

Finds a possible locale name match for the supplied name.
SetCalendarInfoA

Sets an item of locale information for a calendar. For more information, see Date and Calendar. (ANSI)
SetCalendarInfoW

Sets an item of locale information for a calendar. For more information, see Date and Calendar. (Unicode)
SetLocaleInfoA

Sets an item of information in the user override portion of the current locale. This function does not set the system defaults. (ANSI)
SetLocaleInfoW

Sets an item of information in the user override portion of the current locale. This function does not set the system defaults. (Unicode)
SetProcessPreferredUILanguages

Sets the process preferred UI languages for the application process. For more information, see User Interface Language Management.
SetThreadLocale

Sets the current locale of the calling thread.
SetThreadPreferredUILanguages

Sets the thread preferred UI languages for the current thread. For more information, see User Interface Language Management.
SetThreadUILanguage

Sets the user interface language for the current thread.
SetUserGeoID

Sets the geographical location identifier for the user. This identifier should have one of the values described in Table of Geographical Locations.
SetUserGeoName

Sets the geographic location for the current user to the specified two-letter International Organization for Standardization (ISO) 3166-1 code or numeric United Nations (UN) Series M, Number 49 (M.49) code.
VerifyScripts

Compares two enumerated lists of scripts.

Callback functions

 
GEO_ENUMNAMEPROC

An application-defined callback function that processes enumerated geographical location information provided by the EnumSystemGeoNames function.
LANGGROUPLOCALE_ENUMPROCA

An application-defined callback function that processes enumerated language group locale information provided by the EnumLanguageGroupLocales function. (ANSI)
LANGGROUPLOCALE_ENUMPROCW

An application-defined callback function that processes enumerated language group locale information provided by the EnumLanguageGroupLocales function. (Unicode)
LOCALE_ENUMPROCEX

An application-defined callback function that processes enumerated locale information provided by the EnumSystemLocalesEx function.
UILANGUAGE_ENUMPROCA

An application-defined callback function that processes enumerated user interface language information provided by the EnumUILanguages function. (ANSI)
UILANGUAGE_ENUMPROCW

An application-defined callback function that processes enumerated user interface language information provided by the EnumUILanguages function. (Unicode)

Structures

 
CPINFO

Contains information about a code page. This structure is used by the GetCPInfo function.
CPINFOEXA

Contains information about a code page. This structure is used by the GetCPInfoEx function. (ANSI)
CPINFOEXW

Contains information about a code page. This structure is used by the GetCPInfoEx function. (Unicode)
CURRENCYFMTA

Contains information that defines the format of a currency string. The GetCurrencyFormat function uses this information to customize a currency string for a specified locale. (ANSI)
CURRENCYFMTW

Contains information that defines the format of a currency string. The GetCurrencyFormat function uses this information to customize a currency string for a specified locale. (Unicode)
FILEMUIINFO

Contains information about a file, related to its use with MUI.
NLSVERSIONINFO

The NLSVERSIONINFO structure (winnls.h) is deprecated and should not be used.
NLSVERSIONINFOEX

Contains version information about an NLS capability.
NUMBERFMTA

Contains information that defines the format of a number string. The GetNumberFormat function uses this information to customize a number string for a specified locale. (ANSI)
NUMBERFMTW

Contains information that defines the format of a number string. The GetNumberFormat function uses this information to customize a number string for a specified locale. (Unicode)

Enumerations

 
NORM_FORM

Specifies the supported normalization forms.
SYSGEOCLASS

Specifies the geographical location class.
SYSGEOTYPE

Defines the type of geographical location information requested in the GetGeoInfo or GetGeoInfoEx function.
SYSNLS_FUNCTION

Specifies NLS function capabilities.