Revision control
Copy as Markdown
Other Tools
// Licensed under the Apache License, Version 2.0
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! Procedure declarations, constant definitions, and macros for the NLS component.
use ctypes::c_int;
use shared::basetsd::LONG_PTR;
use shared::guiddef::GUID;
use shared::minwindef::{
BOOL, BYTE, DWORD, INT, LPARAM, LPDWORD, LPINT, LPVOID, LPWORD, MAX_PATH, PDWORD, PULONG,
UINT,
};
use um::minwinbase::SYSTEMTIME;
use um::winnt::{
CHAR, LANGID, LCID, LONG, LPCSTR, LPCWCH, LPCWSTR, LPSTR, LPWSTR, PCNZCH, PCNZWCH, PCWSTR,
PCZZWSTR, PULONGLONG, PWSTR, PZZWSTR, ULONGLONG, WCHAR,
};
pub const MAX_LEADBYTES: usize = 12;
pub const MAX_DEFAULTCHAR: usize = 2;
pub const MB_PRECOMPOSED: DWORD = 0x00000001;
pub const MB_COMPOSITE: DWORD = 0x00000002;
pub const MB_USEGLYPHCHARS: DWORD = 0x00000004;
pub const MB_ERR_INVALID_CHARS: DWORD = 0x00000008;
pub const WC_COMPOSITECHECK: DWORD = 0x00000200;
pub const WC_DISCARDNS: DWORD = 0x00000010;
pub const WC_SEPCHARS: DWORD = 0x00000020;
pub const WC_DEFAULTCHAR: DWORD = 0x00000040;
pub const WC_ERR_INVALID_CHARS: DWORD = 0x00000080;
pub const WC_NO_BEST_FIT_CHARS: DWORD = 0x00000400;
pub const CP_ACP: DWORD = 0;
pub const CP_OEMCP: DWORD = 1;
pub const CP_MACCP: DWORD = 2;
pub const CP_THREAD_ACP: DWORD = 3;
pub const CP_SYMBOL: DWORD = 42;
pub const CP_UTF7: DWORD = 65000;
pub const CP_UTF8: DWORD = 65001;
pub type LGRPID = DWORD;
pub type LCTYPE = DWORD;
pub type CALTYPE = DWORD;
pub type CALID = DWORD;
STRUCT!{struct CPINFO {
MaxCharSize: UINT,
DefaultChar: [BYTE; MAX_DEFAULTCHAR],
LeadByte: [BYTE; MAX_LEADBYTES],
}}
pub type LPCPINFO = *mut CPINFO;
STRUCT!{struct CPINFOEXA {
MaxCharSize: UINT,
DefaultChar: [BYTE; MAX_DEFAULTCHAR],
LeadByte: [BYTE; MAX_LEADBYTES],
UnicodeDefaultChar: WCHAR,
CodePage: UINT,
CodePageName: [CHAR; MAX_PATH],
}}
pub type LPCPINFOEXA = *mut CPINFOEXA;
STRUCT!{struct CPINFOEXW {
MaxCharSize: UINT,
DefaultChar: [BYTE; MAX_DEFAULTCHAR],
LeadByte: [BYTE; MAX_LEADBYTES],
UnicodeDefaultChar: WCHAR,
CodePage: UINT,
CodePageName: [WCHAR; MAX_PATH],
}}
pub type LPCPINFOEXW = *mut CPINFOEXW;
STRUCT!{struct NUMBERFMTA {
NumDigits: UINT,
LeadingZero: UINT,
Grouping: UINT,
lpDecimalSep: LPSTR,
lpThousandSep: LPSTR,
NegativeOrder: UINT,
}}
pub type LPNUMBERFMTA = *mut NUMBERFMTA;
STRUCT!{struct NUMBERFMTW {
NumDigits: UINT,
LeadingZero: UINT,
Grouping: UINT,
lpDecimalSep: LPWSTR,
lpThousandSep: LPWSTR,
NegativeOrder: UINT,
}}
pub type LPNUMBERFMTW = *mut NUMBERFMTW;
STRUCT!{struct CURRENCYFMTA {
NumDigits: UINT,
LeadingZero: UINT,
Grouping: UINT,
lpDecimalSep: LPSTR,
lpThousandSep: LPSTR,
NegativeOrder: UINT,
PositiveOrder: UINT,
lpCurrencySymbol: LPSTR,
}}
pub type LPCURRENCYFMTA = *mut CURRENCYFMTA;
STRUCT!{struct CURRENCYFMTW {
NumDigits: UINT,
LeadingZero: UINT,
Grouping: UINT,
lpDecimalSep: LPWSTR,
lpThousandSep: LPWSTR,
NegativeOrder: UINT,
PositiveOrder: UINT,
lpCurrencySymbol: LPWSTR,
}}
pub type LPCURRENCYFMTW = *mut CURRENCYFMTW;
pub type NLS_FUNCTION = DWORD;
STRUCT!{struct NLSVERSIONINFO {
dwNLSVersionInfoSize: DWORD,
dwNLSVersion: DWORD,
dwDefinedVersion: DWORD,
dwEffectiveId: DWORD,
guidCustomVersion: GUID,
}}
pub type LPNLSVERSIONINFO = *mut NLSVERSIONINFO;
STRUCT!{struct NLSVERSIONINFOEX {
dwNLSVersionInfoSize: DWORD,
dwNLSVersion: DWORD,
dwDefinedVersion: DWORD,
dwEffectiveId: DWORD,
guidCustomVersion: GUID,
}}
pub type LPNLSVERSIONINFOEX = *mut NLSVERSIONINFOEX;
pub type GEOID = LONG;
pub type GEOTYPE = DWORD;
pub type GEOCLASS = DWORD;
ENUM!{enum NORM_FORM {
NormalizationOther = 0,
NormalizationC = 0x1,
NormalizationD = 0x2,
NormalizationKC = 0x5,
NormalizationKD = 0x6,
}}
FN!{stdcall LANGUAGEGROUP_ENUMPROCA(
LGRPID,
LPSTR,
LPSTR,
DWORD,
LONG_PTR,
) -> BOOL}
FN!{stdcall LANGGROUPLOCALE_ENUMPROCA(
LGRPID,
LCID,
LPSTR,
LONG_PTR,
) -> BOOL}
FN!{stdcall UILANGUAGE_ENUMPROCA(
LPSTR,
LONG_PTR,
) -> BOOL}
FN!{stdcall CODEPAGE_ENUMPROCA(
LPSTR,
) -> BOOL}
FN!{stdcall DATEFMT_ENUMPROCA(
LPSTR,
) -> BOOL}
FN!{stdcall DATEFMT_ENUMPROCEXA(
LPSTR,
CALID,
) -> BOOL}
FN!{stdcall TIMEFMT_ENUMPROCA(
LPSTR,
) -> BOOL}
FN!{stdcall CALINFO_ENUMPROCA(
LPSTR,
) -> BOOL}
FN!{stdcall CALINFO_ENUMPROCEXA(
LPSTR,
CALID,
) -> BOOL}
FN!{stdcall LOCALE_ENUMPROCA(
LPSTR,
) -> BOOL}
FN!{stdcall LOCALE_ENUMPROCW(
LPWSTR,
) -> BOOL}
FN!{stdcall LANGUAGEGROUP_ENUMPROCW(
LGRPID,
LPWSTR,
LPWSTR,
DWORD,
LONG_PTR,
) -> BOOL}
FN!{stdcall LANGGROUPLOCALE_ENUMPROCW(
LGRPID,
LCID,
LPWSTR,
LONG_PTR,
) -> BOOL}
FN!{stdcall UILANGUAGE_ENUMPROCW(
LPWSTR,
LONG_PTR,
) -> BOOL}
FN!{stdcall CODEPAGE_ENUMPROCW(
LPWSTR,
) -> BOOL}
FN!{stdcall DATEFMT_ENUMPROCW(
LPWSTR,
) -> BOOL}
FN!{stdcall DATEFMT_ENUMPROCEXW(
LPWSTR,
CALID,
) -> BOOL}
FN!{stdcall TIMEFMT_ENUMPROCW(
LPWSTR,
) -> BOOL}
FN!{stdcall CALINFO_ENUMPROCW(
LPWSTR,
) -> BOOL}
FN!{stdcall CALINFO_ENUMPROCEXW(
LPWSTR,
CALID,
) -> BOOL}
FN!{stdcall GEO_ENUMPROC(
GEOID,
) -> BOOL}
STRUCT!{struct FILEMUIINFO {
dwSize: DWORD,
dwVersion: DWORD,
dwFileType: DWORD,
pChecksum: [BYTE; 16],
pServiceChecksum: [BYTE; 16],
dwLanguageNameOffset: DWORD,
dwTypeIDMainSize: DWORD,
dwTypeIDMainOffset: DWORD,
dwTypeNameMainOffset: DWORD,
dwTypeIDMUISize: DWORD,
dwTypeIDMUIOffset: DWORD,
dwTypeNameMUIOffset: DWORD,
abBuffer: [BYTE; 8],
}}
pub type PFILEMUIINFO = *mut FILEMUIINFO;
FN!{stdcall CALINFO_ENUMPROCEXEX(
LPWSTR,
CALID,
LPWSTR,
LPARAM,
) -> BOOL}
FN!{stdcall DATEFMT_ENUMPROCEXEX(
LPWSTR,
CALID,
LPARAM,
) -> BOOL}
FN!{stdcall TIMEFMT_ENUMPROCEX(
LPWSTR,
LPARAM,
) -> BOOL}
FN!{stdcall LOCALE_ENUMPROCEX(
LPWSTR,
DWORD,
LPARAM,
) -> BOOL}
extern "system" {
pub fn CompareStringA(
Locale: LCID,
dwCmpFlags: DWORD,
lpString1: PCNZCH,
cchCount1: c_int,
lpString2: PCNZCH,
cchCount2: c_int,
) -> c_int;
pub fn CompareStringEx(
lpLocaleName: LPCWSTR,
dwCmpFlags: DWORD,
lpString1: LPCWCH,
cchCount1: c_int,
lpString2: LPCWCH,
cchCount2: c_int,
lpVersionInformation: LPNLSVERSIONINFO,
lpReserved: LPVOID,
lParam: LPARAM,
) -> c_int;
pub fn CompareStringW(
Locale: LCID,
dwCmpFlags: DWORD,
lpString1: PCNZWCH,
cchCount1: c_int,
lpString2: PCNZWCH,
cchCount2: c_int,
) -> c_int;
pub fn ConvertDefaultLocale(Locale: LCID) -> LCID;
pub fn EnumCalendarInfoA(
lpCalInfoEnumProc: CALINFO_ENUMPROCA,
Locale: LCID,
Calendar: CALID,
CalType: CALTYPE,
) -> BOOL;
pub fn EnumCalendarInfoExA(
lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA,
Locale: LCID,
Calendar: CALID,
CalType: CALTYPE,
) -> BOOL;
pub fn EnumCalendarInfoExEx(
pCalInfoEnumProcExEx: CALINFO_ENUMPROCEXEX,
lpLocaleName: LPCWSTR,
Calendar: CALID,
lpReserved: LPCWSTR,
CalType: CALTYPE,
lParam: LPARAM,
) -> BOOL;
pub fn EnumCalendarInfoExW(
lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW,
Locale: LCID,
Calendar: CALID,
CalType: CALTYPE,
) -> BOOL;
pub fn EnumCalendarInfoW(
lpCalInfoEnumProc: CALINFO_ENUMPROCW,
Locale: LCID,
Calendar: CALID,
CalType: CALTYPE,
) -> BOOL;
pub fn EnumDateFormatsA(
lpDateFmtEnumProc: DATEFMT_ENUMPROCA,
Locale: LCID,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumDateFormatsExA(
lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA,
Locale: LCID,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumDateFormatsExEx(
lpDateFmtEnumProcExEx: DATEFMT_ENUMPROCEXEX,
lpLocaleName: LPCWSTR,
dwFlags: DWORD,
lParam: LPARAM,
) -> BOOL;
pub fn EnumDateFormatsExW(
lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW,
Locale: LCID,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumDateFormatsW(
lpDateFmtEnumProc: DATEFMT_ENUMPROCW,
Locale: LCID,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumLanguageGroupLocalesA(
lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA,
LanguageGroup: LGRPID,
dwFlags: DWORD,
lParam: LONG_PTR,
) -> BOOL;
pub fn EnumLanguageGroupLocalesW(
lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW,
LanguageGroup: LGRPID,
dwFlags: DWORD,
lParam: LONG_PTR,
) -> BOOL;
pub fn EnumSystemCodePagesA(
lpCodePageEnumProc: CODEPAGE_ENUMPROCA,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumSystemCodePagesW(
lpCodePageEnumProc: CODEPAGE_ENUMPROCW,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumSystemGeoID(
GeoClass: GEOCLASS,
ParentGeoId: GEOID,
lpGeoEnumProc: GEO_ENUMPROC,
) -> BOOL;
pub fn EnumSystemLanguageGroupsA(
lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA,
dwFlags: DWORD,
lParam: LONG_PTR,
) -> BOOL;
pub fn EnumSystemLanguageGroupsW(
lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW,
dwFlags: DWORD,
lParam: LONG_PTR,
) -> BOOL;
pub fn EnumSystemLocalesA(
lpLocaleEnumProc: LOCALE_ENUMPROCA,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumSystemLocalesEx(
lpLocaleEnumProcEx: LOCALE_ENUMPROCEX,
dwFlags: DWORD,
lParam: LPARAM,
lpReserved: LPVOID,
) -> BOOL;
pub fn EnumSystemLocalesW(
lpLocaleEnumProc: LOCALE_ENUMPROCW,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumTimeFormatsA(
lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA,
Locale: LCID,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumTimeFormatsEx(
lpTimeFmtEnumProcEx: TIMEFMT_ENUMPROCEX,
lpLocaleName: LPCWSTR,
dwFlags: DWORD,
lParam: LPARAM,
) -> BOOL;
pub fn EnumTimeFormatsW(
lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW,
Locale: LCID,
dwFlags: DWORD,
) -> BOOL;
pub fn EnumUILanguagesA(
lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA,
dwFlags: DWORD,
lParam: LONG_PTR,
) -> BOOL;
pub fn EnumUILanguagesW(
lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW,
dwFlags: DWORD,
lParam: LONG_PTR,
) -> BOOL;
pub fn FindNLSString(
Locale: LCID,
dwFindNLSStringFlags: DWORD,
lpStringSource: LPCWSTR,
cchSource: c_int,
lpStringValue: LPCWSTR,
cchValue: c_int,
pcchFound: LPINT,
) -> c_int;
pub fn FindNLSStringEx(
lpLocaleName: LPCWSTR,
dwFindNLSStringFlags: DWORD,
lpStringSource: LPCWSTR,
cchSource: c_int,
lpStringValue: LPCWSTR,
cchValue: c_int,
pcchFound: LPINT,
lpVersionInformation: LPNLSVERSIONINFO,
lpReserved: LPVOID,
sortHandle: LPARAM,
) -> c_int;
pub fn FoldStringA(
dwMapFlags: DWORD,
lpSrcStr: LPCSTR,
cchSrc: c_int,
lpDestStr: LPSTR,
cchDest: c_int,
) -> c_int;
pub fn GetACP() -> UINT;
pub fn GetCPInfo(
CodePage: UINT,
lpCPInfo: LPCPINFO,
) -> BOOL;
pub fn GetCPInfoExA(
CodePage: UINT,
dwFlags: DWORD,
lpCPInfoEx: LPCPINFOEXA,
) -> BOOL;
pub fn GetCPInfoExW(
CodePage: UINT,
dwFlags: DWORD,
lpCPInfoEx: LPCPINFOEXW,
) -> BOOL;
pub fn GetCalendarInfoA(
Locale: LCID,
Calendar: CALID,
CalType: CALTYPE,
lpCalData: LPSTR,
cchData: c_int,
lpValue: LPDWORD,
) -> c_int;
pub fn GetCalendarInfoEx(
lpLocaleName: LPCWSTR,
Calendar: CALID,
lpReserved: LPCWSTR,
CalType: CALTYPE,
lpCalData: LPWSTR,
cchData: c_int,
lpValue: LPDWORD,
) -> c_int;
pub fn GetCalendarInfoW(
Locale: LCID,
Calendar: CALID,
CalType: CALTYPE,
lpCalData: LPWSTR,
cchData: c_int,
lpValue: LPDWORD,
) -> c_int;
pub fn GetCurrencyFormatA(
Locale: LCID,
dwFlags: DWORD,
lpValue: LPCSTR,
lpFormat: *const CURRENCYFMTA,
lpCurrencyStr: LPSTR,
cchCurrency: c_int,
) -> c_int;
pub fn GetCurrencyFormatEx(
lpLocaleName: LPCWSTR,
dwFlags: DWORD,
lpValue: LPCWSTR,
lpFormat: *const CURRENCYFMTW,
lpCurrencyStr: LPWSTR,
cchCurrency: c_int,
) -> c_int;
pub fn GetCurrencyFormatW(
Locale: LCID,
dwFlags: DWORD,
lpValue: LPCWSTR,
lpFormat: *const CURRENCYFMTW,
lpCurrencyStr: LPWSTR,
cchCurrency: c_int,
) -> c_int;
pub fn GetDurationFormat(
Locale: LCID,
dwFlags: DWORD,
lpDuration: *const SYSTEMTIME,
ullDuration: ULONGLONG,
lpFormat: LPCWSTR,
lpDurationStr: LPWSTR,
cchDuration: c_int,
) -> c_int;
pub fn GetDurationFormatEx(
lpLocaleName: LPCWSTR,
dwFlags: DWORD,
lpDuration: *const SYSTEMTIME,
ullDuration: ULONGLONG,
lpFormat: LPCWSTR,
lpDurationStr: LPWSTR,
cchDuration: c_int,
) -> c_int;
pub fn GetFileMUIInfo(
dwFlags: DWORD,
pcwszFilePath: PCWSTR,
pFileMUIInfo: PFILEMUIINFO,
pcbFileMUIInfo: *mut DWORD,
) -> BOOL;
pub fn GetFileMUIPath(
dwFlags: DWORD,
pcwszFilePath: PCWSTR,
pwszLanguage: PWSTR,
pcchLanguage: PULONG,
pwszFileMUIPath: PWSTR,
pcchFileMUIPath: PULONG,
pululEnumerator: PULONGLONG,
) -> BOOL;
pub fn GetGeoInfoA(
Location: GEOID,
GeoType: GEOTYPE,
lpGeoData: LPSTR,
cchData: c_int,
LangId: LANGID,
) -> c_int;
pub fn GetGeoInfoW(
Location: GEOID,
GeoType: GEOTYPE,
lpGeoData: LPWSTR,
cchData: c_int,
LangId: LANGID,
) -> c_int;
pub fn GetLocaleInfoA(
Locale: LCID,
LCType: LCTYPE,
lpLCData: LPSTR,
cchData: c_int,
) -> c_int;
pub fn GetLocaleInfoEx(
lpLocaleName: LPCWSTR,
LCType: LCTYPE,
lpLCData: LPWSTR,
cchData: c_int,
) -> c_int;
pub fn GetLocaleInfoW(
Locale: LCID,
LCType: LCTYPE,
lpLCData: LPWSTR,
cchData: c_int,
) -> c_int;
pub fn GetNLSVersion(
Function: NLS_FUNCTION,
Locale: LCID,
lpVersionInformation: LPNLSVERSIONINFO,
) -> BOOL;
pub fn GetNLSVersionEx(
function: NLS_FUNCTION,
lpLocaleName: LPCWSTR,
lpVersionInformation: LPNLSVERSIONINFOEX,
) -> BOOL;
pub fn GetNumberFormatA(
Locale: LCID,
dwFlags: DWORD,
lpValue: LPCSTR,
lpFormat: *const NUMBERFMTA,
lpNumberStr: LPSTR,
cchNumber: c_int,
) -> c_int;
pub fn GetNumberFormatEx(
lpLocaleName: LPCWSTR,
dwFlags: DWORD,
lpValue: LPCWSTR,
lpFormat: *const NUMBERFMTW,
lpNumberStr: LPWSTR,
cchNumber: c_int,
) -> c_int;
pub fn GetNumberFormatW(
Locale: LCID,
dwFlags: DWORD,
lpValue: LPCWSTR,
lpFormat: *const NUMBERFMTW,
lpNumberStr: LPWSTR,
cchNumber: c_int,
) -> c_int;
pub fn GetOEMCP() -> UINT;
pub fn GetProcessPreferredUILanguages(
dwFlags: DWORD,
pulNumLanguages: PULONG,
pwszLanguagesBuffer: PZZWSTR,
pcchLanguagesBuffer: PULONG,
) -> BOOL;
pub fn GetStringScripts(
dwFlags: DWORD,
lpString: LPCWSTR,
cchString: c_int,
lpScripts: LPWSTR,
cchScripts: c_int,
) -> c_int;
pub fn GetStringTypeA(
Locale: LCID,
dwInfoType: DWORD,
lpSrcStr: LPCSTR,
cchSrc: c_int,
lpCharType: LPWORD,
) -> BOOL;
pub fn GetStringTypeExA(
Locale: LCID,
dwInfoType: DWORD,
lpSrcStr: LPCSTR,
cchSrc: c_int,
lpCharType: LPWORD,
) -> BOOL;
pub fn GetStringTypeW(
dwInfoType: DWORD,
lpSrcStr: LPCWCH,
cchSrc: c_int,
lpCharType: LPWORD,
) -> BOOL;
pub fn GetSystemDefaultLCID() -> LCID;
pub fn GetSystemDefaultLangID() -> LANGID;
pub fn GetSystemDefaultLocaleName(
lpLocaleName: LPWSTR,
cchLocaleName: c_int,
) -> c_int;
pub fn GetSystemDefaultUILanguage() -> LANGID;
pub fn GetSystemPreferredUILanguages(
dwFlags: DWORD,
pulNumLanguages: PULONG,
pwszLanguagesBuffer: PZZWSTR,
pcchLanguagesBuffer: PULONG,
) -> BOOL;
pub fn GetThreadLocale() -> LCID;
pub fn GetThreadPreferredUILanguages(
dwFlags: DWORD,
pulNumLanguages: PULONG,
pwszLanguagesBuffer: PZZWSTR,
pcchLanguagesBuffer: PULONG,
) -> BOOL;
pub fn GetThreadUILanguage() -> LANGID;
pub fn GetUILanguageInfo(
dwFlags: DWORD,
pwmszLanguage: PCZZWSTR,
pwszFallbackLanguages: PZZWSTR,
pcchFallbackLanguages: PDWORD,
pAttributes: PDWORD,
) -> BOOL;
pub fn GetUserDefaultLCID() -> LCID;
pub fn GetUserDefaultLangID() -> LANGID;
pub fn GetUserDefaultLocaleName(
lpLocaleName: LPWSTR,
cchLocaleName: c_int,
) -> c_int;
pub fn GetUserDefaultUILanguage() -> LANGID;
pub fn GetUserGeoID(GeoClass: GEOCLASS) -> GEOID;
pub fn GetUserPreferredUILanguages(
dwFlags: DWORD,
pulNumLanguages: PULONG,
pwszLanguagesBuffer: PZZWSTR,
pcchLanguagesBuffer: PULONG,
) -> BOOL;
pub fn IsDBCSLeadByte(
TestChar: BYTE,
) -> BOOL;
pub fn IsDBCSLeadByteEx(
CodePage: UINT,
TestChar: BYTE,
) -> BOOL;
pub fn IsNLSDefinedString(
Function: NLS_FUNCTION,
dwFlags: DWORD,
lpVersionInformation: LPNLSVERSIONINFO,
lpString: LPCWSTR,
cchStr: INT,
) -> BOOL;
pub fn IsNormalizedString(
NormForm: NORM_FORM,
lpString: LPCWSTR,
cwLength: c_int,
) -> BOOL;
pub fn IsValidCodePage(
CodePage: UINT,
) -> BOOL;
pub fn IsValidLanguageGroup(
LanguageGroup: LGRPID,
dwFlags: DWORD,
) -> BOOL;
pub fn IsValidLocale(
Locale: LCID,
dwFlags: DWORD,
) -> BOOL;
pub fn IsValidLocaleName(
lpLocaleName: LPCWSTR,
) -> BOOL;
pub fn IsValidNLSVersion(
function: NLS_FUNCTION,
lpLocaleName: LPCWSTR,
lpVersionInformation: LPNLSVERSIONINFOEX,
) -> BOOL;
pub fn LCIDToLocaleName(
Locale: LCID,
lpName: LPWSTR,
cchName: c_int,
dwFlags: DWORD,
) -> c_int;
pub fn LCMapStringA(
Locale: LCID,
dwMapFlags: DWORD,
lpSrcStr: LPCSTR,
cchSrc: c_int,
lpDestStr: LPSTR,
cchDest: c_int,
) -> c_int;
pub fn LCMapStringEx(
lpLocaleName: LPCWSTR,
dwMapFlags: DWORD,
lpSrcStr: LPCWSTR,
cchSrc: c_int,
lpDestStr: LPWSTR,
cchDest: c_int,
lpVersionInformation: LPNLSVERSIONINFO,
lpReserved: LPVOID,
sortHandle: LPARAM,
) -> c_int;
pub fn LCMapStringW(
Locale: LCID,
dwMapFlags: DWORD,
lpSrcStr: LPCWSTR,
cchSrc: c_int,
lpDestStr: LPWSTR,
cchDest: c_int,
) -> c_int;
pub fn LocaleNameToLCID(
lpName: LPCWSTR,
dwFlags: DWORD,
) -> LCID;
pub fn NormalizeString(
NormForm: NORM_FORM,
lpSrcString: LPCWSTR,
cwSrcLength: c_int,
lpDstString: LPWSTR,
cwDstLength: c_int,
) -> c_int;
pub fn NotifyUILanguageChange(
dwFlags: DWORD,
pcwstrNewLanguage: PCWSTR,
pcwstrPreviousLanguage: PCWSTR,
dwReserved: DWORD,
pdwStatusRtrn: PDWORD,
) -> BOOL;
pub fn ResolveLocaleName(
lpNameToResolve: LPCWSTR,
lpLocaleName: LPWSTR,
cchLocaleName: c_int,
) -> c_int;
pub fn SetCalendarInfoA(
Locale: LCID,
Calendar: CALID,
CalType: CALTYPE,
lpCalData: LPCSTR,
) -> BOOL;
pub fn SetCalendarInfoW(
Locale: LCID,
Calendar: CALID,
CalType: CALTYPE,
lpCalData: LPCWSTR,
) -> BOOL;
pub fn SetLocaleInfoA(
Locale: LCID,
LCType: LCTYPE,
lpLCData: LPCSTR,
) -> BOOL;
pub fn SetLocaleInfoW(
Locale: LCID,
LCType: LCTYPE,
lpLCData: LPCWSTR,
) -> BOOL;
pub fn SetProcessPreferredUILanguages(
dwFlags: DWORD,
pwszLanguagesBuffer: PCZZWSTR,
pulNumLanguages: PULONG,
) -> BOOL;
pub fn SetThreadLocale(Locale: LCID) -> BOOL;
pub fn SetThreadPreferredUILanguages(
dwFlags: DWORD,
pwszLanguagesBuffer: PCZZWSTR,
pulNumLanguages: PULONG,
) -> BOOL;
pub fn SetThreadUILanguage(LangId: LANGID) -> LANGID;
pub fn SetUserGeoID(GeoId: GEOID) -> BOOL;
pub fn VerifyScripts(
dwFlags: DWORD,
lpLocaleScripts: LPCWSTR,
cchLocaleScripts: c_int,
lpTestScripts: LPCWSTR,
cchTestScripts: c_int,
) -> BOOL;
}