1 // Copyright © 2015-2017 winapi-rs developers 2 // Licensed under the Apache License, Version 2.0 3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 5 // All files in the project carrying such notice may not be copied, modified, or distributed 6 // except according to those terms. 7 //! Procedure declarations, constant definitions, and macros for the NLS component. 8 use ctypes::c_int; 9 use shared::basetsd::LONG_PTR; 10 use shared::guiddef::GUID; 11 use shared::minwindef::{ 12 BOOL, BYTE, DWORD, INT, LPARAM, LPDWORD, LPINT, LPVOID, LPWORD, MAX_PATH, PDWORD, PULONG, 13 UINT, 14 }; 15 use um::minwinbase::SYSTEMTIME; 16 use um::winnt::{ 17 CHAR, LANGID, LCID, LONG, LPCSTR, LPCWCH, LPCWSTR, LPSTR, LPWSTR, PCNZCH, PCNZWCH, PCWSTR, 18 PCZZWSTR, PULONGLONG, PWSTR, PZZWSTR, ULONGLONG, WCHAR, 19 }; 20 pub const MAX_LEADBYTES: usize = 12; 21 pub const MAX_DEFAULTCHAR: usize = 2; 22 pub const MB_PRECOMPOSED: DWORD = 0x00000001; 23 pub const MB_COMPOSITE: DWORD = 0x00000002; 24 pub const MB_USEGLYPHCHARS: DWORD = 0x00000004; 25 pub const MB_ERR_INVALID_CHARS: DWORD = 0x00000008; 26 pub const WC_COMPOSITECHECK: DWORD = 0x00000200; 27 pub const WC_DISCARDNS: DWORD = 0x00000010; 28 pub const WC_SEPCHARS: DWORD = 0x00000020; 29 pub const WC_DEFAULTCHAR: DWORD = 0x00000040; 30 pub const WC_ERR_INVALID_CHARS: DWORD = 0x00000080; 31 pub const WC_NO_BEST_FIT_CHARS: DWORD = 0x00000400; 32 pub const CP_ACP: DWORD = 0; 33 pub const CP_OEMCP: DWORD = 1; 34 pub const CP_MACCP: DWORD = 2; 35 pub const CP_THREAD_ACP: DWORD = 3; 36 pub const CP_SYMBOL: DWORD = 42; 37 pub const CP_UTF7: DWORD = 65000; 38 pub const CP_UTF8: DWORD = 65001; 39 pub type LGRPID = DWORD; 40 pub type LCTYPE = DWORD; 41 pub type CALTYPE = DWORD; 42 pub type CALID = DWORD; 43 STRUCT!{struct CPINFO { 44 MaxCharSize: UINT, 45 DefaultChar: [BYTE; MAX_DEFAULTCHAR], 46 LeadByte: [BYTE; MAX_LEADBYTES], 47 }} 48 pub type LPCPINFO = *mut CPINFO; 49 STRUCT!{struct CPINFOEXA { 50 MaxCharSize: UINT, 51 DefaultChar: [BYTE; MAX_DEFAULTCHAR], 52 LeadByte: [BYTE; MAX_LEADBYTES], 53 UnicodeDefaultChar: WCHAR, 54 CodePage: UINT, 55 CodePageName: [CHAR; MAX_PATH], 56 }} 57 pub type LPCPINFOEXA = *mut CPINFOEXA; 58 STRUCT!{struct CPINFOEXW { 59 MaxCharSize: UINT, 60 DefaultChar: [BYTE; MAX_DEFAULTCHAR], 61 LeadByte: [BYTE; MAX_LEADBYTES], 62 UnicodeDefaultChar: WCHAR, 63 CodePage: UINT, 64 CodePageName: [WCHAR; MAX_PATH], 65 }} 66 pub type LPCPINFOEXW = *mut CPINFOEXW; 67 STRUCT!{struct NUMBERFMTA { 68 NumDigits: UINT, 69 LeadingZero: UINT, 70 Grouping: UINT, 71 lpDecimalSep: LPSTR, 72 lpThousandSep: LPSTR, 73 NegativeOrder: UINT, 74 }} 75 pub type LPNUMBERFMTA = *mut NUMBERFMTA; 76 STRUCT!{struct NUMBERFMTW { 77 NumDigits: UINT, 78 LeadingZero: UINT, 79 Grouping: UINT, 80 lpDecimalSep: LPWSTR, 81 lpThousandSep: LPWSTR, 82 NegativeOrder: UINT, 83 }} 84 pub type LPNUMBERFMTW = *mut NUMBERFMTW; 85 STRUCT!{struct CURRENCYFMTA { 86 NumDigits: UINT, 87 LeadingZero: UINT, 88 Grouping: UINT, 89 lpDecimalSep: LPSTR, 90 lpThousandSep: LPSTR, 91 NegativeOrder: UINT, 92 PositiveOrder: UINT, 93 lpCurrencySymbol: LPSTR, 94 }} 95 pub type LPCURRENCYFMTA = *mut CURRENCYFMTA; 96 STRUCT!{struct CURRENCYFMTW { 97 NumDigits: UINT, 98 LeadingZero: UINT, 99 Grouping: UINT, 100 lpDecimalSep: LPWSTR, 101 lpThousandSep: LPWSTR, 102 NegativeOrder: UINT, 103 PositiveOrder: UINT, 104 lpCurrencySymbol: LPWSTR, 105 }} 106 pub type LPCURRENCYFMTW = *mut CURRENCYFMTW; 107 pub type NLS_FUNCTION = DWORD; 108 STRUCT!{struct NLSVERSIONINFO { 109 dwNLSVersionInfoSize: DWORD, 110 dwNLSVersion: DWORD, 111 dwDefinedVersion: DWORD, 112 dwEffectiveId: DWORD, 113 guidCustomVersion: GUID, 114 }} 115 pub type LPNLSVERSIONINFO = *mut NLSVERSIONINFO; 116 STRUCT!{struct NLSVERSIONINFOEX { 117 dwNLSVersionInfoSize: DWORD, 118 dwNLSVersion: DWORD, 119 dwDefinedVersion: DWORD, 120 dwEffectiveId: DWORD, 121 guidCustomVersion: GUID, 122 }} 123 pub type LPNLSVERSIONINFOEX = *mut NLSVERSIONINFOEX; 124 pub type GEOID = LONG; 125 pub type GEOTYPE = DWORD; 126 pub type GEOCLASS = DWORD; 127 ENUM!{enum NORM_FORM { 128 NormalizationOther = 0, 129 NormalizationC = 0x1, 130 NormalizationD = 0x2, 131 NormalizationKC = 0x5, 132 NormalizationKD = 0x6, 133 }} 134 FN!{stdcall LANGUAGEGROUP_ENUMPROCA( 135 LGRPID, 136 LPSTR, 137 LPSTR, 138 DWORD, 139 LONG_PTR, 140 ) -> BOOL} 141 FN!{stdcall LANGGROUPLOCALE_ENUMPROCA( 142 LGRPID, 143 LCID, 144 LPSTR, 145 LONG_PTR, 146 ) -> BOOL} 147 FN!{stdcall UILANGUAGE_ENUMPROCA( 148 LPSTR, 149 LONG_PTR, 150 ) -> BOOL} 151 FN!{stdcall CODEPAGE_ENUMPROCA( 152 LPSTR, 153 ) -> BOOL} 154 FN!{stdcall DATEFMT_ENUMPROCA( 155 LPSTR, 156 ) -> BOOL} 157 FN!{stdcall DATEFMT_ENUMPROCEXA( 158 LPSTR, 159 CALID, 160 ) -> BOOL} 161 FN!{stdcall TIMEFMT_ENUMPROCA( 162 LPSTR, 163 ) -> BOOL} 164 FN!{stdcall CALINFO_ENUMPROCA( 165 LPSTR, 166 ) -> BOOL} 167 FN!{stdcall CALINFO_ENUMPROCEXA( 168 LPSTR, 169 CALID, 170 ) -> BOOL} 171 FN!{stdcall LOCALE_ENUMPROCA( 172 LPSTR, 173 ) -> BOOL} 174 FN!{stdcall LOCALE_ENUMPROCW( 175 LPWSTR, 176 ) -> BOOL} 177 FN!{stdcall LANGUAGEGROUP_ENUMPROCW( 178 LGRPID, 179 LPWSTR, 180 LPWSTR, 181 DWORD, 182 LONG_PTR, 183 ) -> BOOL} 184 FN!{stdcall LANGGROUPLOCALE_ENUMPROCW( 185 LGRPID, 186 LCID, 187 LPWSTR, 188 LONG_PTR, 189 ) -> BOOL} 190 FN!{stdcall UILANGUAGE_ENUMPROCW( 191 LPWSTR, 192 LONG_PTR, 193 ) -> BOOL} 194 FN!{stdcall CODEPAGE_ENUMPROCW( 195 LPWSTR, 196 ) -> BOOL} 197 FN!{stdcall DATEFMT_ENUMPROCW( 198 LPWSTR, 199 ) -> BOOL} 200 FN!{stdcall DATEFMT_ENUMPROCEXW( 201 LPWSTR, 202 CALID, 203 ) -> BOOL} 204 FN!{stdcall TIMEFMT_ENUMPROCW( 205 LPWSTR, 206 ) -> BOOL} 207 FN!{stdcall CALINFO_ENUMPROCW( 208 LPWSTR, 209 ) -> BOOL} 210 FN!{stdcall CALINFO_ENUMPROCEXW( 211 LPWSTR, 212 CALID, 213 ) -> BOOL} 214 FN!{stdcall GEO_ENUMPROC( 215 GEOID, 216 ) -> BOOL} 217 STRUCT!{struct FILEMUIINFO { 218 dwSize: DWORD, 219 dwVersion: DWORD, 220 dwFileType: DWORD, 221 pChecksum: [BYTE; 16], 222 pServiceChecksum: [BYTE; 16], 223 dwLanguageNameOffset: DWORD, 224 dwTypeIDMainSize: DWORD, 225 dwTypeIDMainOffset: DWORD, 226 dwTypeNameMainOffset: DWORD, 227 dwTypeIDMUISize: DWORD, 228 dwTypeIDMUIOffset: DWORD, 229 dwTypeNameMUIOffset: DWORD, 230 abBuffer: [BYTE; 8], 231 }} 232 pub type PFILEMUIINFO = *mut FILEMUIINFO; 233 FN!{stdcall CALINFO_ENUMPROCEXEX( 234 LPWSTR, 235 CALID, 236 LPWSTR, 237 LPARAM, 238 ) -> BOOL} 239 FN!{stdcall DATEFMT_ENUMPROCEXEX( 240 LPWSTR, 241 CALID, 242 LPARAM, 243 ) -> BOOL} 244 FN!{stdcall TIMEFMT_ENUMPROCEX( 245 LPWSTR, 246 LPARAM, 247 ) -> BOOL} 248 FN!{stdcall LOCALE_ENUMPROCEX( 249 LPWSTR, 250 DWORD, 251 LPARAM, 252 ) -> BOOL} 253 extern "system" { CompareStringA( Locale: LCID, dwCmpFlags: DWORD, lpString1: PCNZCH, cchCount1: c_int, lpString2: PCNZCH, cchCount2: c_int, ) -> c_int254 pub fn CompareStringA( 255 Locale: LCID, 256 dwCmpFlags: DWORD, 257 lpString1: PCNZCH, 258 cchCount1: c_int, 259 lpString2: PCNZCH, 260 cchCount2: c_int, 261 ) -> c_int; CompareStringEx( lpLocaleName: LPCWSTR, dwCmpFlags: DWORD, lpString1: LPCWCH, cchCount1: c_int, lpString2: LPCWCH, cchCount2: c_int, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, lParam: LPARAM, ) -> c_int262 pub fn CompareStringEx( 263 lpLocaleName: LPCWSTR, 264 dwCmpFlags: DWORD, 265 lpString1: LPCWCH, 266 cchCount1: c_int, 267 lpString2: LPCWCH, 268 cchCount2: c_int, 269 lpVersionInformation: LPNLSVERSIONINFO, 270 lpReserved: LPVOID, 271 lParam: LPARAM, 272 ) -> c_int; CompareStringW( Locale: LCID, dwCmpFlags: DWORD, lpString1: PCNZWCH, cchCount1: c_int, lpString2: PCNZWCH, cchCount2: c_int, ) -> c_int273 pub fn CompareStringW( 274 Locale: LCID, 275 dwCmpFlags: DWORD, 276 lpString1: PCNZWCH, 277 cchCount1: c_int, 278 lpString2: PCNZWCH, 279 cchCount2: c_int, 280 ) -> c_int; ConvertDefaultLocale(Locale: LCID) -> LCID281 pub fn ConvertDefaultLocale(Locale: LCID) -> LCID; EnumCalendarInfoA( lpCalInfoEnumProc: CALINFO_ENUMPROCA, Locale: LCID, Calendar: CALID, CalType: CALTYPE, ) -> BOOL282 pub fn EnumCalendarInfoA( 283 lpCalInfoEnumProc: CALINFO_ENUMPROCA, 284 Locale: LCID, 285 Calendar: CALID, 286 CalType: CALTYPE, 287 ) -> BOOL; EnumCalendarInfoExA( lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA, Locale: LCID, Calendar: CALID, CalType: CALTYPE, ) -> BOOL288 pub fn EnumCalendarInfoExA( 289 lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA, 290 Locale: LCID, 291 Calendar: CALID, 292 CalType: CALTYPE, 293 ) -> BOOL; EnumCalendarInfoExEx( pCalInfoEnumProcExEx: CALINFO_ENUMPROCEXEX, lpLocaleName: LPCWSTR, Calendar: CALID, lpReserved: LPCWSTR, CalType: CALTYPE, lParam: LPARAM, ) -> BOOL294 pub fn EnumCalendarInfoExEx( 295 pCalInfoEnumProcExEx: CALINFO_ENUMPROCEXEX, 296 lpLocaleName: LPCWSTR, 297 Calendar: CALID, 298 lpReserved: LPCWSTR, 299 CalType: CALTYPE, 300 lParam: LPARAM, 301 ) -> BOOL; EnumCalendarInfoExW( lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW, Locale: LCID, Calendar: CALID, CalType: CALTYPE, ) -> BOOL302 pub fn EnumCalendarInfoExW( 303 lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW, 304 Locale: LCID, 305 Calendar: CALID, 306 CalType: CALTYPE, 307 ) -> BOOL; EnumCalendarInfoW( lpCalInfoEnumProc: CALINFO_ENUMPROCW, Locale: LCID, Calendar: CALID, CalType: CALTYPE, ) -> BOOL308 pub fn EnumCalendarInfoW( 309 lpCalInfoEnumProc: CALINFO_ENUMPROCW, 310 Locale: LCID, 311 Calendar: CALID, 312 CalType: CALTYPE, 313 ) -> BOOL; EnumDateFormatsA( lpDateFmtEnumProc: DATEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD, ) -> BOOL314 pub fn EnumDateFormatsA( 315 lpDateFmtEnumProc: DATEFMT_ENUMPROCA, 316 Locale: LCID, 317 dwFlags: DWORD, 318 ) -> BOOL; EnumDateFormatsExA( lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA, Locale: LCID, dwFlags: DWORD, ) -> BOOL319 pub fn EnumDateFormatsExA( 320 lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA, 321 Locale: LCID, 322 dwFlags: DWORD, 323 ) -> BOOL; EnumDateFormatsExEx( lpDateFmtEnumProcExEx: DATEFMT_ENUMPROCEXEX, lpLocaleName: LPCWSTR, dwFlags: DWORD, lParam: LPARAM, ) -> BOOL324 pub fn EnumDateFormatsExEx( 325 lpDateFmtEnumProcExEx: DATEFMT_ENUMPROCEXEX, 326 lpLocaleName: LPCWSTR, 327 dwFlags: DWORD, 328 lParam: LPARAM, 329 ) -> BOOL; EnumDateFormatsExW( lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW, Locale: LCID, dwFlags: DWORD, ) -> BOOL330 pub fn EnumDateFormatsExW( 331 lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW, 332 Locale: LCID, 333 dwFlags: DWORD, 334 ) -> BOOL; EnumDateFormatsW( lpDateFmtEnumProc: DATEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD, ) -> BOOL335 pub fn EnumDateFormatsW( 336 lpDateFmtEnumProc: DATEFMT_ENUMPROCW, 337 Locale: LCID, 338 dwFlags: DWORD, 339 ) -> BOOL; EnumLanguageGroupLocalesA( lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA, LanguageGroup: LGRPID, dwFlags: DWORD, lParam: LONG_PTR, ) -> BOOL340 pub fn EnumLanguageGroupLocalesA( 341 lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA, 342 LanguageGroup: LGRPID, 343 dwFlags: DWORD, 344 lParam: LONG_PTR, 345 ) -> BOOL; EnumLanguageGroupLocalesW( lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW, LanguageGroup: LGRPID, dwFlags: DWORD, lParam: LONG_PTR, ) -> BOOL346 pub fn EnumLanguageGroupLocalesW( 347 lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW, 348 LanguageGroup: LGRPID, 349 dwFlags: DWORD, 350 lParam: LONG_PTR, 351 ) -> BOOL; EnumSystemCodePagesA( lpCodePageEnumProc: CODEPAGE_ENUMPROCA, dwFlags: DWORD, ) -> BOOL352 pub fn EnumSystemCodePagesA( 353 lpCodePageEnumProc: CODEPAGE_ENUMPROCA, 354 dwFlags: DWORD, 355 ) -> BOOL; EnumSystemCodePagesW( lpCodePageEnumProc: CODEPAGE_ENUMPROCW, dwFlags: DWORD, ) -> BOOL356 pub fn EnumSystemCodePagesW( 357 lpCodePageEnumProc: CODEPAGE_ENUMPROCW, 358 dwFlags: DWORD, 359 ) -> BOOL; EnumSystemGeoID( GeoClass: GEOCLASS, ParentGeoId: GEOID, lpGeoEnumProc: GEO_ENUMPROC, ) -> BOOL360 pub fn EnumSystemGeoID( 361 GeoClass: GEOCLASS, 362 ParentGeoId: GEOID, 363 lpGeoEnumProc: GEO_ENUMPROC, 364 ) -> BOOL; EnumSystemLanguageGroupsA( lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR, ) -> BOOL365 pub fn EnumSystemLanguageGroupsA( 366 lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA, 367 dwFlags: DWORD, 368 lParam: LONG_PTR, 369 ) -> BOOL; EnumSystemLanguageGroupsW( lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR, ) -> BOOL370 pub fn EnumSystemLanguageGroupsW( 371 lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW, 372 dwFlags: DWORD, 373 lParam: LONG_PTR, 374 ) -> BOOL; EnumSystemLocalesA( lpLocaleEnumProc: LOCALE_ENUMPROCA, dwFlags: DWORD, ) -> BOOL375 pub fn EnumSystemLocalesA( 376 lpLocaleEnumProc: LOCALE_ENUMPROCA, 377 dwFlags: DWORD, 378 ) -> BOOL; EnumSystemLocalesEx( lpLocaleEnumProcEx: LOCALE_ENUMPROCEX, dwFlags: DWORD, lParam: LPARAM, lpReserved: LPVOID, ) -> BOOL379 pub fn EnumSystemLocalesEx( 380 lpLocaleEnumProcEx: LOCALE_ENUMPROCEX, 381 dwFlags: DWORD, 382 lParam: LPARAM, 383 lpReserved: LPVOID, 384 ) -> BOOL; EnumSystemLocalesW( lpLocaleEnumProc: LOCALE_ENUMPROCW, dwFlags: DWORD, ) -> BOOL385 pub fn EnumSystemLocalesW( 386 lpLocaleEnumProc: LOCALE_ENUMPROCW, 387 dwFlags: DWORD, 388 ) -> BOOL; EnumTimeFormatsA( lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD, ) -> BOOL389 pub fn EnumTimeFormatsA( 390 lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA, 391 Locale: LCID, 392 dwFlags: DWORD, 393 ) -> BOOL; EnumTimeFormatsEx( lpTimeFmtEnumProcEx: TIMEFMT_ENUMPROCEX, lpLocaleName: LPCWSTR, dwFlags: DWORD, lParam: LPARAM, ) -> BOOL394 pub fn EnumTimeFormatsEx( 395 lpTimeFmtEnumProcEx: TIMEFMT_ENUMPROCEX, 396 lpLocaleName: LPCWSTR, 397 dwFlags: DWORD, 398 lParam: LPARAM, 399 ) -> BOOL; EnumTimeFormatsW( lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD, ) -> BOOL400 pub fn EnumTimeFormatsW( 401 lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW, 402 Locale: LCID, 403 dwFlags: DWORD, 404 ) -> BOOL; EnumUILanguagesA( lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR, ) -> BOOL405 pub fn EnumUILanguagesA( 406 lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA, 407 dwFlags: DWORD, 408 lParam: LONG_PTR, 409 ) -> BOOL; EnumUILanguagesW( lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR, ) -> BOOL410 pub fn EnumUILanguagesW( 411 lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW, 412 dwFlags: DWORD, 413 lParam: LONG_PTR, 414 ) -> BOOL; FindNLSString( Locale: LCID, dwFindNLSStringFlags: DWORD, lpStringSource: LPCWSTR, cchSource: c_int, lpStringValue: LPCWSTR, cchValue: c_int, pcchFound: LPINT, ) -> c_int415 pub fn FindNLSString( 416 Locale: LCID, 417 dwFindNLSStringFlags: DWORD, 418 lpStringSource: LPCWSTR, 419 cchSource: c_int, 420 lpStringValue: LPCWSTR, 421 cchValue: c_int, 422 pcchFound: LPINT, 423 ) -> c_int; FindNLSStringEx( lpLocaleName: LPCWSTR, dwFindNLSStringFlags: DWORD, lpStringSource: LPCWSTR, cchSource: c_int, lpStringValue: LPCWSTR, cchValue: c_int, pcchFound: LPINT, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, sortHandle: LPARAM, ) -> c_int424 pub fn FindNLSStringEx( 425 lpLocaleName: LPCWSTR, 426 dwFindNLSStringFlags: DWORD, 427 lpStringSource: LPCWSTR, 428 cchSource: c_int, 429 lpStringValue: LPCWSTR, 430 cchValue: c_int, 431 pcchFound: LPINT, 432 lpVersionInformation: LPNLSVERSIONINFO, 433 lpReserved: LPVOID, 434 sortHandle: LPARAM, 435 ) -> c_int; FoldStringA( dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: c_int, lpDestStr: LPSTR, cchDest: c_int, ) -> c_int436 pub fn FoldStringA( 437 dwMapFlags: DWORD, 438 lpSrcStr: LPCSTR, 439 cchSrc: c_int, 440 lpDestStr: LPSTR, 441 cchDest: c_int, 442 ) -> c_int; GetACP() -> UINT443 pub fn GetACP() -> UINT; GetCPInfo( CodePage: UINT, lpCPInfo: LPCPINFO, ) -> BOOL444 pub fn GetCPInfo( 445 CodePage: UINT, 446 lpCPInfo: LPCPINFO, 447 ) -> BOOL; GetCPInfoExA( CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXA, ) -> BOOL448 pub fn GetCPInfoExA( 449 CodePage: UINT, 450 dwFlags: DWORD, 451 lpCPInfoEx: LPCPINFOEXA, 452 ) -> BOOL; GetCPInfoExW( CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXW, ) -> BOOL453 pub fn GetCPInfoExW( 454 CodePage: UINT, 455 dwFlags: DWORD, 456 lpCPInfoEx: LPCPINFOEXW, 457 ) -> BOOL; GetCalendarInfoA( Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPSTR, cchData: c_int, lpValue: LPDWORD, ) -> c_int458 pub fn GetCalendarInfoA( 459 Locale: LCID, 460 Calendar: CALID, 461 CalType: CALTYPE, 462 lpCalData: LPSTR, 463 cchData: c_int, 464 lpValue: LPDWORD, 465 ) -> c_int; GetCalendarInfoEx( lpLocaleName: LPCWSTR, Calendar: CALID, lpReserved: LPCWSTR, CalType: CALTYPE, lpCalData: LPWSTR, cchData: c_int, lpValue: LPDWORD, ) -> c_int466 pub fn GetCalendarInfoEx( 467 lpLocaleName: LPCWSTR, 468 Calendar: CALID, 469 lpReserved: LPCWSTR, 470 CalType: CALTYPE, 471 lpCalData: LPWSTR, 472 cchData: c_int, 473 lpValue: LPDWORD, 474 ) -> c_int; GetCalendarInfoW( Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPWSTR, cchData: c_int, lpValue: LPDWORD, ) -> c_int475 pub fn GetCalendarInfoW( 476 Locale: LCID, 477 Calendar: CALID, 478 CalType: CALTYPE, 479 lpCalData: LPWSTR, 480 cchData: c_int, 481 lpValue: LPDWORD, 482 ) -> c_int; GetCurrencyFormatA( Locale: LCID, dwFlags: DWORD, lpValue: LPCSTR, lpFormat: *const CURRENCYFMTA, lpCurrencyStr: LPSTR, cchCurrency: c_int, ) -> c_int483 pub fn GetCurrencyFormatA( 484 Locale: LCID, 485 dwFlags: DWORD, 486 lpValue: LPCSTR, 487 lpFormat: *const CURRENCYFMTA, 488 lpCurrencyStr: LPSTR, 489 cchCurrency: c_int, 490 ) -> c_int; GetCurrencyFormatEx( lpLocaleName: LPCWSTR, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: *const CURRENCYFMTW, lpCurrencyStr: LPWSTR, cchCurrency: c_int, ) -> c_int491 pub fn GetCurrencyFormatEx( 492 lpLocaleName: LPCWSTR, 493 dwFlags: DWORD, 494 lpValue: LPCWSTR, 495 lpFormat: *const CURRENCYFMTW, 496 lpCurrencyStr: LPWSTR, 497 cchCurrency: c_int, 498 ) -> c_int; GetCurrencyFormatW( Locale: LCID, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: *const CURRENCYFMTW, lpCurrencyStr: LPWSTR, cchCurrency: c_int, ) -> c_int499 pub fn GetCurrencyFormatW( 500 Locale: LCID, 501 dwFlags: DWORD, 502 lpValue: LPCWSTR, 503 lpFormat: *const CURRENCYFMTW, 504 lpCurrencyStr: LPWSTR, 505 cchCurrency: c_int, 506 ) -> c_int; GetDurationFormat( Locale: LCID, dwFlags: DWORD, lpDuration: *const SYSTEMTIME, ullDuration: ULONGLONG, lpFormat: LPCWSTR, lpDurationStr: LPWSTR, cchDuration: c_int, ) -> c_int507 pub fn GetDurationFormat( 508 Locale: LCID, 509 dwFlags: DWORD, 510 lpDuration: *const SYSTEMTIME, 511 ullDuration: ULONGLONG, 512 lpFormat: LPCWSTR, 513 lpDurationStr: LPWSTR, 514 cchDuration: c_int, 515 ) -> c_int; GetDurationFormatEx( lpLocaleName: LPCWSTR, dwFlags: DWORD, lpDuration: *const SYSTEMTIME, ullDuration: ULONGLONG, lpFormat: LPCWSTR, lpDurationStr: LPWSTR, cchDuration: c_int, ) -> c_int516 pub fn GetDurationFormatEx( 517 lpLocaleName: LPCWSTR, 518 dwFlags: DWORD, 519 lpDuration: *const SYSTEMTIME, 520 ullDuration: ULONGLONG, 521 lpFormat: LPCWSTR, 522 lpDurationStr: LPWSTR, 523 cchDuration: c_int, 524 ) -> c_int; GetFileMUIInfo( dwFlags: DWORD, pcwszFilePath: PCWSTR, pFileMUIInfo: PFILEMUIINFO, pcbFileMUIInfo: *mut DWORD, ) -> BOOL525 pub fn GetFileMUIInfo( 526 dwFlags: DWORD, 527 pcwszFilePath: PCWSTR, 528 pFileMUIInfo: PFILEMUIINFO, 529 pcbFileMUIInfo: *mut DWORD, 530 ) -> BOOL; GetFileMUIPath( dwFlags: DWORD, pcwszFilePath: PCWSTR, pwszLanguage: PWSTR, pcchLanguage: PULONG, pwszFileMUIPath: PWSTR, pcchFileMUIPath: PULONG, pululEnumerator: PULONGLONG, ) -> BOOL531 pub fn GetFileMUIPath( 532 dwFlags: DWORD, 533 pcwszFilePath: PCWSTR, 534 pwszLanguage: PWSTR, 535 pcchLanguage: PULONG, 536 pwszFileMUIPath: PWSTR, 537 pcchFileMUIPath: PULONG, 538 pululEnumerator: PULONGLONG, 539 ) -> BOOL; GetGeoInfoA( Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPSTR, cchData: c_int, LangId: LANGID, ) -> c_int540 pub fn GetGeoInfoA( 541 Location: GEOID, 542 GeoType: GEOTYPE, 543 lpGeoData: LPSTR, 544 cchData: c_int, 545 LangId: LANGID, 546 ) -> c_int; GetGeoInfoW( Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPWSTR, cchData: c_int, LangId: LANGID, ) -> c_int547 pub fn GetGeoInfoW( 548 Location: GEOID, 549 GeoType: GEOTYPE, 550 lpGeoData: LPWSTR, 551 cchData: c_int, 552 LangId: LANGID, 553 ) -> c_int; GetLocaleInfoA( Locale: LCID, LCType: LCTYPE, lpLCData: LPSTR, cchData: c_int, ) -> c_int554 pub fn GetLocaleInfoA( 555 Locale: LCID, 556 LCType: LCTYPE, 557 lpLCData: LPSTR, 558 cchData: c_int, 559 ) -> c_int; GetLocaleInfoEx( lpLocaleName: LPCWSTR, LCType: LCTYPE, lpLCData: LPWSTR, cchData: c_int, ) -> c_int560 pub fn GetLocaleInfoEx( 561 lpLocaleName: LPCWSTR, 562 LCType: LCTYPE, 563 lpLCData: LPWSTR, 564 cchData: c_int, 565 ) -> c_int; GetLocaleInfoW( Locale: LCID, LCType: LCTYPE, lpLCData: LPWSTR, cchData: c_int, ) -> c_int566 pub fn GetLocaleInfoW( 567 Locale: LCID, 568 LCType: LCTYPE, 569 lpLCData: LPWSTR, 570 cchData: c_int, 571 ) -> c_int; GetNLSVersion( Function: NLS_FUNCTION, Locale: LCID, lpVersionInformation: LPNLSVERSIONINFO, ) -> BOOL572 pub fn GetNLSVersion( 573 Function: NLS_FUNCTION, 574 Locale: LCID, 575 lpVersionInformation: LPNLSVERSIONINFO, 576 ) -> BOOL; GetNLSVersionEx( function: NLS_FUNCTION, lpLocaleName: LPCWSTR, lpVersionInformation: LPNLSVERSIONINFOEX, ) -> BOOL577 pub fn GetNLSVersionEx( 578 function: NLS_FUNCTION, 579 lpLocaleName: LPCWSTR, 580 lpVersionInformation: LPNLSVERSIONINFOEX, 581 ) -> BOOL; GetNumberFormatA( Locale: LCID, dwFlags: DWORD, lpValue: LPCSTR, lpFormat: *const NUMBERFMTA, lpNumberStr: LPSTR, cchNumber: c_int, ) -> c_int582 pub fn GetNumberFormatA( 583 Locale: LCID, 584 dwFlags: DWORD, 585 lpValue: LPCSTR, 586 lpFormat: *const NUMBERFMTA, 587 lpNumberStr: LPSTR, 588 cchNumber: c_int, 589 ) -> c_int; GetNumberFormatEx( lpLocaleName: LPCWSTR, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: *const NUMBERFMTW, lpNumberStr: LPWSTR, cchNumber: c_int, ) -> c_int590 pub fn GetNumberFormatEx( 591 lpLocaleName: LPCWSTR, 592 dwFlags: DWORD, 593 lpValue: LPCWSTR, 594 lpFormat: *const NUMBERFMTW, 595 lpNumberStr: LPWSTR, 596 cchNumber: c_int, 597 ) -> c_int; GetNumberFormatW( Locale: LCID, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: *const NUMBERFMTW, lpNumberStr: LPWSTR, cchNumber: c_int, ) -> c_int598 pub fn GetNumberFormatW( 599 Locale: LCID, 600 dwFlags: DWORD, 601 lpValue: LPCWSTR, 602 lpFormat: *const NUMBERFMTW, 603 lpNumberStr: LPWSTR, 604 cchNumber: c_int, 605 ) -> c_int; GetOEMCP() -> UINT606 pub fn GetOEMCP() -> UINT; GetProcessPreferredUILanguages( dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG, ) -> BOOL607 pub fn GetProcessPreferredUILanguages( 608 dwFlags: DWORD, 609 pulNumLanguages: PULONG, 610 pwszLanguagesBuffer: PZZWSTR, 611 pcchLanguagesBuffer: PULONG, 612 ) -> BOOL; GetStringScripts( dwFlags: DWORD, lpString: LPCWSTR, cchString: c_int, lpScripts: LPWSTR, cchScripts: c_int, ) -> c_int613 pub fn GetStringScripts( 614 dwFlags: DWORD, 615 lpString: LPCWSTR, 616 cchString: c_int, 617 lpScripts: LPWSTR, 618 cchScripts: c_int, 619 ) -> c_int; GetStringTypeA( Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: c_int, lpCharType: LPWORD, ) -> BOOL620 pub fn GetStringTypeA( 621 Locale: LCID, 622 dwInfoType: DWORD, 623 lpSrcStr: LPCSTR, 624 cchSrc: c_int, 625 lpCharType: LPWORD, 626 ) -> BOOL; GetStringTypeExA( Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: c_int, lpCharType: LPWORD, ) -> BOOL627 pub fn GetStringTypeExA( 628 Locale: LCID, 629 dwInfoType: DWORD, 630 lpSrcStr: LPCSTR, 631 cchSrc: c_int, 632 lpCharType: LPWORD, 633 ) -> BOOL; GetStringTypeW( dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: c_int, lpCharType: LPWORD, ) -> BOOL634 pub fn GetStringTypeW( 635 dwInfoType: DWORD, 636 lpSrcStr: LPCWCH, 637 cchSrc: c_int, 638 lpCharType: LPWORD, 639 ) -> BOOL; GetSystemDefaultLCID() -> LCID640 pub fn GetSystemDefaultLCID() -> LCID; GetSystemDefaultLangID() -> LANGID641 pub fn GetSystemDefaultLangID() -> LANGID; GetSystemDefaultLocaleName( lpLocaleName: LPWSTR, cchLocaleName: c_int, ) -> c_int642 pub fn GetSystemDefaultLocaleName( 643 lpLocaleName: LPWSTR, 644 cchLocaleName: c_int, 645 ) -> c_int; GetSystemDefaultUILanguage() -> LANGID646 pub fn GetSystemDefaultUILanguage() -> LANGID; GetSystemPreferredUILanguages( dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG, ) -> BOOL647 pub fn GetSystemPreferredUILanguages( 648 dwFlags: DWORD, 649 pulNumLanguages: PULONG, 650 pwszLanguagesBuffer: PZZWSTR, 651 pcchLanguagesBuffer: PULONG, 652 ) -> BOOL; GetThreadLocale() -> LCID653 pub fn GetThreadLocale() -> LCID; GetThreadPreferredUILanguages( dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG, ) -> BOOL654 pub fn GetThreadPreferredUILanguages( 655 dwFlags: DWORD, 656 pulNumLanguages: PULONG, 657 pwszLanguagesBuffer: PZZWSTR, 658 pcchLanguagesBuffer: PULONG, 659 ) -> BOOL; GetThreadUILanguage() -> LANGID660 pub fn GetThreadUILanguage() -> LANGID; GetUILanguageInfo( dwFlags: DWORD, pwmszLanguage: PCZZWSTR, pwszFallbackLanguages: PZZWSTR, pcchFallbackLanguages: PDWORD, pAttributes: PDWORD, ) -> BOOL661 pub fn GetUILanguageInfo( 662 dwFlags: DWORD, 663 pwmszLanguage: PCZZWSTR, 664 pwszFallbackLanguages: PZZWSTR, 665 pcchFallbackLanguages: PDWORD, 666 pAttributes: PDWORD, 667 ) -> BOOL; GetUserDefaultLCID() -> LCID668 pub fn GetUserDefaultLCID() -> LCID; GetUserDefaultLangID() -> LANGID669 pub fn GetUserDefaultLangID() -> LANGID; GetUserDefaultLocaleName( lpLocaleName: LPWSTR, cchLocaleName: c_int, ) -> c_int670 pub fn GetUserDefaultLocaleName( 671 lpLocaleName: LPWSTR, 672 cchLocaleName: c_int, 673 ) -> c_int; GetUserDefaultUILanguage() -> LANGID674 pub fn GetUserDefaultUILanguage() -> LANGID; GetUserGeoID(GeoClass: GEOCLASS) -> GEOID675 pub fn GetUserGeoID(GeoClass: GEOCLASS) -> GEOID; GetUserPreferredUILanguages( dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG, ) -> BOOL676 pub fn GetUserPreferredUILanguages( 677 dwFlags: DWORD, 678 pulNumLanguages: PULONG, 679 pwszLanguagesBuffer: PZZWSTR, 680 pcchLanguagesBuffer: PULONG, 681 ) -> BOOL; IsDBCSLeadByte( TestChar: BYTE, ) -> BOOL682 pub fn IsDBCSLeadByte( 683 TestChar: BYTE, 684 ) -> BOOL; IsDBCSLeadByteEx( CodePage: UINT, TestChar: BYTE, ) -> BOOL685 pub fn IsDBCSLeadByteEx( 686 CodePage: UINT, 687 TestChar: BYTE, 688 ) -> BOOL; IsNLSDefinedString( Function: NLS_FUNCTION, dwFlags: DWORD, lpVersionInformation: LPNLSVERSIONINFO, lpString: LPCWSTR, cchStr: INT, ) -> BOOL689 pub fn IsNLSDefinedString( 690 Function: NLS_FUNCTION, 691 dwFlags: DWORD, 692 lpVersionInformation: LPNLSVERSIONINFO, 693 lpString: LPCWSTR, 694 cchStr: INT, 695 ) -> BOOL; IsNormalizedString( NormForm: NORM_FORM, lpString: LPCWSTR, cwLength: c_int, ) -> BOOL696 pub fn IsNormalizedString( 697 NormForm: NORM_FORM, 698 lpString: LPCWSTR, 699 cwLength: c_int, 700 ) -> BOOL; IsValidCodePage( CodePage: UINT, ) -> BOOL701 pub fn IsValidCodePage( 702 CodePage: UINT, 703 ) -> BOOL; IsValidLanguageGroup( LanguageGroup: LGRPID, dwFlags: DWORD, ) -> BOOL704 pub fn IsValidLanguageGroup( 705 LanguageGroup: LGRPID, 706 dwFlags: DWORD, 707 ) -> BOOL; IsValidLocale( Locale: LCID, dwFlags: DWORD, ) -> BOOL708 pub fn IsValidLocale( 709 Locale: LCID, 710 dwFlags: DWORD, 711 ) -> BOOL; IsValidLocaleName( lpLocaleName: LPCWSTR, ) -> BOOL712 pub fn IsValidLocaleName( 713 lpLocaleName: LPCWSTR, 714 ) -> BOOL; IsValidNLSVersion( function: NLS_FUNCTION, lpLocaleName: LPCWSTR, lpVersionInformation: LPNLSVERSIONINFOEX, ) -> BOOL715 pub fn IsValidNLSVersion( 716 function: NLS_FUNCTION, 717 lpLocaleName: LPCWSTR, 718 lpVersionInformation: LPNLSVERSIONINFOEX, 719 ) -> BOOL; LCIDToLocaleName( Locale: LCID, lpName: LPWSTR, cchName: c_int, dwFlags: DWORD, ) -> c_int720 pub fn LCIDToLocaleName( 721 Locale: LCID, 722 lpName: LPWSTR, 723 cchName: c_int, 724 dwFlags: DWORD, 725 ) -> c_int; LCMapStringA( Locale: LCID, dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: c_int, lpDestStr: LPSTR, cchDest: c_int, ) -> c_int726 pub fn LCMapStringA( 727 Locale: LCID, 728 dwMapFlags: DWORD, 729 lpSrcStr: LPCSTR, 730 cchSrc: c_int, 731 lpDestStr: LPSTR, 732 cchDest: c_int, 733 ) -> c_int; LCMapStringEx( lpLocaleName: LPCWSTR, dwMapFlags: DWORD, lpSrcStr: LPCWSTR, cchSrc: c_int, lpDestStr: LPWSTR, cchDest: c_int, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, sortHandle: LPARAM, ) -> c_int734 pub fn LCMapStringEx( 735 lpLocaleName: LPCWSTR, 736 dwMapFlags: DWORD, 737 lpSrcStr: LPCWSTR, 738 cchSrc: c_int, 739 lpDestStr: LPWSTR, 740 cchDest: c_int, 741 lpVersionInformation: LPNLSVERSIONINFO, 742 lpReserved: LPVOID, 743 sortHandle: LPARAM, 744 ) -> c_int; LCMapStringW( Locale: LCID, dwMapFlags: DWORD, lpSrcStr: LPCWSTR, cchSrc: c_int, lpDestStr: LPWSTR, cchDest: c_int, ) -> c_int745 pub fn LCMapStringW( 746 Locale: LCID, 747 dwMapFlags: DWORD, 748 lpSrcStr: LPCWSTR, 749 cchSrc: c_int, 750 lpDestStr: LPWSTR, 751 cchDest: c_int, 752 ) -> c_int; LocaleNameToLCID( lpName: LPCWSTR, dwFlags: DWORD, ) -> LCID753 pub fn LocaleNameToLCID( 754 lpName: LPCWSTR, 755 dwFlags: DWORD, 756 ) -> LCID; NormalizeString( NormForm: NORM_FORM, lpSrcString: LPCWSTR, cwSrcLength: c_int, lpDstString: LPWSTR, cwDstLength: c_int, ) -> c_int757 pub fn NormalizeString( 758 NormForm: NORM_FORM, 759 lpSrcString: LPCWSTR, 760 cwSrcLength: c_int, 761 lpDstString: LPWSTR, 762 cwDstLength: c_int, 763 ) -> c_int; NotifyUILanguageChange( dwFlags: DWORD, pcwstrNewLanguage: PCWSTR, pcwstrPreviousLanguage: PCWSTR, dwReserved: DWORD, pdwStatusRtrn: PDWORD, ) -> BOOL764 pub fn NotifyUILanguageChange( 765 dwFlags: DWORD, 766 pcwstrNewLanguage: PCWSTR, 767 pcwstrPreviousLanguage: PCWSTR, 768 dwReserved: DWORD, 769 pdwStatusRtrn: PDWORD, 770 ) -> BOOL; ResolveLocaleName( lpNameToResolve: LPCWSTR, lpLocaleName: LPWSTR, cchLocaleName: c_int, ) -> c_int771 pub fn ResolveLocaleName( 772 lpNameToResolve: LPCWSTR, 773 lpLocaleName: LPWSTR, 774 cchLocaleName: c_int, 775 ) -> c_int; SetCalendarInfoA( Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCSTR, ) -> BOOL776 pub fn SetCalendarInfoA( 777 Locale: LCID, 778 Calendar: CALID, 779 CalType: CALTYPE, 780 lpCalData: LPCSTR, 781 ) -> BOOL; SetCalendarInfoW( Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCWSTR, ) -> BOOL782 pub fn SetCalendarInfoW( 783 Locale: LCID, 784 Calendar: CALID, 785 CalType: CALTYPE, 786 lpCalData: LPCWSTR, 787 ) -> BOOL; SetLocaleInfoA( Locale: LCID, LCType: LCTYPE, lpLCData: LPCSTR, ) -> BOOL788 pub fn SetLocaleInfoA( 789 Locale: LCID, 790 LCType: LCTYPE, 791 lpLCData: LPCSTR, 792 ) -> BOOL; SetLocaleInfoW( Locale: LCID, LCType: LCTYPE, lpLCData: LPCWSTR, ) -> BOOL793 pub fn SetLocaleInfoW( 794 Locale: LCID, 795 LCType: LCTYPE, 796 lpLCData: LPCWSTR, 797 ) -> BOOL; SetProcessPreferredUILanguages( dwFlags: DWORD, pwszLanguagesBuffer: PCZZWSTR, pulNumLanguages: PULONG, ) -> BOOL798 pub fn SetProcessPreferredUILanguages( 799 dwFlags: DWORD, 800 pwszLanguagesBuffer: PCZZWSTR, 801 pulNumLanguages: PULONG, 802 ) -> BOOL; SetThreadLocale(Locale: LCID) -> BOOL803 pub fn SetThreadLocale(Locale: LCID) -> BOOL; SetThreadPreferredUILanguages( dwFlags: DWORD, pwszLanguagesBuffer: PCZZWSTR, pulNumLanguages: PULONG, ) -> BOOL804 pub fn SetThreadPreferredUILanguages( 805 dwFlags: DWORD, 806 pwszLanguagesBuffer: PCZZWSTR, 807 pulNumLanguages: PULONG, 808 ) -> BOOL; SetThreadUILanguage(LangId: LANGID) -> LANGID809 pub fn SetThreadUILanguage(LangId: LANGID) -> LANGID; SetUserGeoID(GeoId: GEOID) -> BOOL810 pub fn SetUserGeoID(GeoId: GEOID) -> BOOL; VerifyScripts( dwFlags: DWORD, lpLocaleScripts: LPCWSTR, cchLocaleScripts: c_int, lpTestScripts: LPCWSTR, cchTestScripts: c_int, ) -> BOOL811 pub fn VerifyScripts( 812 dwFlags: DWORD, 813 lpLocaleScripts: LPCWSTR, 814 cchLocaleScripts: c_int, 815 lpTestScripts: LPCWSTR, 816 cchTestScripts: c_int, 817 ) -> BOOL; 818 } 819