1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the w64 mingw-runtime package. 4 * No warranty is given; refer to the file DISCLAIMER within this package. 5 */ 6 #ifndef _INC_WCHAR 7 #define _INC_WCHAR 8 9 #include <corecrt.h> 10 11 #define __need___va_list 12 #include <stdarg.h> 13 14 #define __CORRECT_ISO_CPP_WCHAR_H_PROTO // For stl 15 16 #pragma pack(push,_CRT_PACKING) 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 #ifdef _MSC_VER 23 #pragma warning(push) 24 #pragma warning(disable:4820) 25 #endif 26 27 #ifndef WCHAR_MIN 28 #define WCHAR_MIN 0x0000 29 #endif 30 #ifndef WCHAR_MAX 31 #define WCHAR_MAX 0xffff /* UINT16_MAX */ 32 #endif 33 34 #ifndef WEOF 35 #define WEOF (wint_t)(0xFFFF) 36 #endif 37 38 #ifndef _FILE_DEFINED 39 struct _iobuf { 40 char *_ptr; 41 int _cnt; 42 char *_base; 43 int _flag; 44 int _file; 45 int _charbuf; 46 int _bufsiz; 47 char *_tmpfname; 48 }; 49 typedef struct _iobuf FILE; 50 #define _FILE_DEFINED 51 #endif 52 53 #ifndef _STDIO_DEFINED 54 _CRTIMP FILE *__cdecl __iob_func(void); 55 _CRTDATA(extern FILE _iob[];) 56 #ifdef _M_CEE_PURE 57 #define _iob __iob_func() 58 #endif 59 #endif 60 61 #ifndef _STDSTREAM_DEFINED 62 #define _STDSTREAM_DEFINED 63 #define stdin (&_iob[0]) 64 #define stdout (&_iob[1]) 65 #define stderr (&_iob[2]) 66 #endif /* !_STDSTREAM_DEFINED */ 67 68 #ifndef _FSIZE_T_DEFINED 69 typedef unsigned long _fsize_t; 70 #define _FSIZE_T_DEFINED 71 #endif 72 73 #ifndef _WFINDDATA_T_DEFINED 74 struct _wfinddata_t { 75 unsigned attrib; 76 time_t time_create; 77 time_t time_access; 78 time_t time_write; 79 _fsize_t size; 80 wchar_t name[260]; 81 }; 82 83 struct _wfinddata32_t { 84 unsigned attrib; 85 __time32_t time_create; 86 __time32_t time_access; 87 __time32_t time_write; 88 _fsize_t size; 89 wchar_t name[260]; 90 }; 91 92 #if _INTEGRAL_MAX_BITS >= 64 93 struct _wfinddatai64_t { 94 unsigned attrib; 95 time_t time_create; 96 time_t time_access; 97 time_t time_write; 98 __MINGW_EXTENSION __int64 size; 99 wchar_t name[260]; 100 }; 101 102 struct _wfinddata32i64_t { 103 unsigned attrib; 104 __time32_t time_create; 105 __time32_t time_access; 106 __time32_t time_write; 107 __MINGW_EXTENSION __int64 size; 108 wchar_t name[260]; 109 }; 110 111 struct _wfinddata64i32_t { 112 unsigned attrib; 113 __time64_t time_create; 114 __time64_t time_access; 115 __time64_t time_write; 116 _fsize_t size; 117 wchar_t name[260]; 118 }; 119 120 struct _wfinddata64_t { 121 unsigned attrib; 122 __time64_t time_create; 123 __time64_t time_access; 124 __time64_t time_write; 125 __MINGW_EXTENSION __int64 size; 126 wchar_t name[260]; 127 }; 128 #endif 129 130 #define _WFINDDATA_T_DEFINED 131 #endif /* !_WFINDDATA_T_DEFINED */ 132 133 #ifndef _CRT_CTYPEDATA_DEFINED 134 # define _CRT_CTYPEDATA_DEFINED 135 # ifndef _CTYPE_DISABLE_MACROS 136 # ifndef __PCTYPE_FUNC 137 # ifdef _DLL 138 # define __PCTYPE_FUNC __pctype_func() 139 # else 140 # define __PCTYPE_FUNC _pctype 141 # endif 142 # endif /* !__PCTYPE_FUNC */ 143 _CRTIMP const unsigned short * __cdecl __pctype_func(void); 144 # ifndef _M_CEE_PURE 145 _CRTDATA(extern unsigned short *_pctype); 146 # else 147 # define _pctype (__pctype_func()) 148 # endif /* !_M_CEE_PURE */ 149 # endif /* !_CTYPE_DISABLE_MACROS */ 150 #endif /* !_CRT_CTYPEDATA_DEFINED */ 151 152 #ifndef _CRT_WCTYPEDATA_DEFINED 153 #define _CRT_WCTYPEDATA_DEFINED 154 # ifndef _CTYPE_DISABLE_MACROS 155 _CRTDATA(extern unsigned short *_wctype); 156 _CRTIMP const wctype_t * __cdecl __pwctype_func(void); 157 # ifndef _M_CEE_PURE 158 _CRTDATA(extern const wctype_t *_pwctype); 159 # else 160 # define _pwctype (__pwctype_func()) 161 # endif /* !_M_CEE_PURE */ 162 # endif /* !_CTYPE_DISABLE_MACROS */ 163 #endif /* !_CRT_WCTYPEDATA_DEFINED */ 164 165 #define _UPPER 0x1 166 #define _LOWER 0x2 167 #define _DIGIT 0x4 168 #define _SPACE 0x8 169 170 #define _PUNCT 0x10 171 #define _CONTROL 0x20 172 #define _BLANK 0x40 173 #define _HEX 0x80 174 175 #define _LEADBYTE 0x8000 176 #define _ALPHA (0x0100|_UPPER|_LOWER) 177 178 #ifndef _WCTYPE_DEFINED 179 #define _WCTYPE_DEFINED 180 _Check_return_ _CRTIMP int __cdecl iswalpha(_In_ wint_t _C); 181 _Check_return_ _CRTIMP int __cdecl _iswalpha_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 182 _Check_return_ _CRTIMP int __cdecl iswupper(_In_ wint_t _C); 183 _Check_return_ _CRTIMP int __cdecl _iswupper_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 184 _Check_return_ _CRTIMP int __cdecl iswlower(_In_ wint_t _C); 185 _Check_return_ _CRTIMP int __cdecl _iswlower_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 186 _Check_return_ _CRTIMP int __cdecl iswdigit(_In_ wint_t _C); 187 _Check_return_ _CRTIMP int __cdecl _iswdigit_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 188 _Check_return_ _CRTIMP int __cdecl iswxdigit(_In_ wint_t _C); 189 _Check_return_ _CRTIMP int __cdecl _iswxdigit_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 190 _Check_return_ _CRTIMP int __cdecl iswspace(_In_ wint_t _C); 191 _Check_return_ _CRTIMP int __cdecl _iswspace_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 192 _Check_return_ _CRTIMP int __cdecl iswpunct(_In_ wint_t _C); 193 _Check_return_ _CRTIMP int __cdecl _iswpunct_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 194 _Check_return_ _CRTIMP int __cdecl iswalnum(_In_ wint_t _C); 195 _Check_return_ _CRTIMP int __cdecl _iswalnum_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 196 _Check_return_ _CRTIMP int __cdecl iswprint(_In_ wint_t _C); 197 _Check_return_ _CRTIMP int __cdecl _iswprint_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 198 _Check_return_ _CRTIMP int __cdecl iswgraph(_In_ wint_t _C); 199 _Check_return_ _CRTIMP int __cdecl _iswgraph_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 200 _Check_return_ _CRTIMP int __cdecl iswcntrl(_In_ wint_t _C); 201 _Check_return_ _CRTIMP int __cdecl _iswcntrl_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 202 _Check_return_ _CRTIMP int __cdecl iswascii(_In_ wint_t _C); 203 _Check_return_ _CRTIMP int __cdecl isleadbyte(_In_ int _C); 204 _Check_return_ _CRTIMP int __cdecl _isleadbyte_l(_In_ int _C, _In_opt_ _locale_t _Locale); 205 _Check_return_ _CRTIMP wint_t __cdecl towupper(_In_ wint_t _C); 206 _Check_return_ _CRTIMP wint_t __cdecl _towupper_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 207 _Check_return_ _CRTIMP wint_t __cdecl towlower(_In_ wint_t _C); 208 _Check_return_ _CRTIMP wint_t __cdecl _towlower_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 209 _Check_return_ _CRTIMP int __cdecl iswctype(_In_ wint_t _C, _In_ wctype_t _Type); 210 _Check_return_ _CRTIMP int __cdecl _iswctype_l(_In_ wint_t _C, _In_ wctype_t _Type, _In_opt_ _locale_t _Locale); 211 _Check_return_ _CRTIMP int __cdecl __iswcsymf(_In_ wint_t _C); 212 _Check_return_ _CRTIMP int __cdecl _iswcsymf_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 213 _Check_return_ _CRTIMP int __cdecl __iswcsym(_In_ wint_t _C); 214 _Check_return_ _CRTIMP int __cdecl _iswcsym_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale); 215 _CRTIMP int __cdecl is_wctype(_In_ wint_t _C, _In_ wctype_t _Type); 216 217 #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) 218 _CRTIMP int __cdecl iswblank(wint_t _C); 219 #endif 220 #endif 221 222 #ifndef _WDIRECT_DEFINED 223 #define _WDIRECT_DEFINED 224 225 _Check_return_ 226 _Ret_opt_z_ 227 _CRTIMP 228 wchar_t* 229 __cdecl 230 _wgetcwd( 231 _Out_writes_opt_(_SizeInWords) wchar_t *_DstBuf, 232 _In_ int _SizeInWords); 233 234 _Check_return_ 235 _Ret_opt_z_ 236 _CRTIMP 237 wchar_t* 238 __cdecl 239 _wgetdcwd( 240 _In_ int _Drive, 241 _Out_writes_opt_(_SizeInWords) wchar_t *_DstBuf, 242 _In_ int _SizeInWords); 243 244 _Check_return_ 245 _Ret_opt_z_ 246 wchar_t* 247 __cdecl 248 _wgetdcwd_nolock( 249 _In_ int _Drive, 250 _Out_writes_opt_(_SizeInWords) wchar_t *_DstBuf, 251 _In_ int _SizeInWords); 252 253 _Check_return_ 254 _CRTIMP 255 int 256 __cdecl 257 _wchdir( 258 _In_z_ const wchar_t *_Path); 259 260 _Check_return_ 261 _CRTIMP 262 int 263 __cdecl 264 _wmkdir( 265 _In_z_ const wchar_t *_Path); 266 267 _Check_return_ 268 _CRTIMP 269 int 270 __cdecl 271 _wrmdir( 272 _In_z_ const wchar_t *_Path); 273 274 #endif /* _WDIRECT_DEFINED */ 275 276 #ifndef _WIO_DEFINED 277 #define _WIO_DEFINED 278 279 _Check_return_ 280 _CRTIMP 281 int 282 __cdecl 283 _waccess( 284 _In_z_ const wchar_t *_Filename, 285 _In_ int _AccessMode); 286 287 _Check_return_ 288 _CRTIMP 289 int 290 __cdecl 291 _wchmod( 292 _In_z_ const wchar_t *_Filename, 293 _In_ int _Mode); 294 295 _Check_return_ 296 _CRTIMP 297 int 298 __cdecl 299 _wcreat( 300 _In_z_ const wchar_t *_Filename, 301 _In_ int _PermissionMode); 302 303 _Check_return_ 304 _CRTIMP 305 intptr_t 306 __cdecl 307 _wfindfirst32( 308 _In_z_ const wchar_t *_Filename, 309 _Out_ struct _wfinddata32_t *_FindData); 310 311 _Check_return_ 312 _CRTIMP 313 int 314 __cdecl 315 _wfindnext32( 316 _In_ intptr_t _FindHandle, 317 _Out_ struct _wfinddata32_t *_FindData); 318 319 _Check_return_ 320 _CRTIMP 321 int 322 __cdecl 323 _wunlink( 324 _In_z_ const wchar_t *_Filename); 325 326 _Check_return_ 327 _CRTIMP 328 int 329 __cdecl 330 _wrename( 331 _In_z_ const wchar_t *_OldFilename, 332 _In_z_ const wchar_t *_NewFilename); 333 334 _CRTIMP 335 wchar_t* 336 __cdecl 337 _wmktemp( 338 _Inout_z_ wchar_t *_TemplateName); 339 340 #if _INTEGRAL_MAX_BITS >= 64 341 342 _Check_return_ 343 _CRTIMP 344 intptr_t 345 __cdecl 346 _wfindfirst32i64( 347 _In_z_ const wchar_t *_Filename, 348 _Out_ struct _wfinddata32i64_t *_FindData); 349 350 _Check_return_ 351 _CRTIMP 352 intptr_t 353 __cdecl 354 _wfindfirst64i32( 355 _In_z_ const wchar_t *_Filename, 356 _Out_ struct _wfinddata64i32_t *_FindData); 357 358 _Check_return_ 359 _CRTIMP 360 intptr_t 361 __cdecl 362 _wfindfirst64( 363 _In_z_ const wchar_t *_Filename, 364 _Out_ struct _wfinddata64_t *_FindData); 365 366 _Check_return_ 367 _CRTIMP 368 int 369 __cdecl 370 _wfindnext32i64( 371 _In_ intptr_t _FindHandle, 372 _Out_ struct _wfinddata32i64_t *_FindData); 373 374 _Check_return_ 375 _CRTIMP 376 int 377 __cdecl 378 _wfindnext64i32( 379 _In_ intptr_t _FindHandle, 380 _Out_ struct _wfinddata64i32_t *_FindData); 381 382 _Check_return_ 383 _CRTIMP 384 int 385 __cdecl 386 _wfindnext64( 387 _In_ intptr_t _FindHandle, 388 _Out_ struct _wfinddata64_t *_FindData); 389 390 #endif /* _INTEGRAL_MAX_BITS >= 64 */ 391 392 _Check_return_wat_ 393 _CRTIMP 394 errno_t 395 __cdecl 396 _wsopen_s( 397 _Out_ int *_FileHandle, 398 _In_z_ const wchar_t *_Filename, 399 _In_ int _OpenFlag, 400 _In_ int _ShareFlag, 401 _In_ int _PermissionFlag); 402 403 #if !defined(__cplusplus) || !(defined(_X86_) && !defined(__x86_64)) 404 _CRTIMP int __cdecl _wopen(const wchar_t *_Filename,int _OpenFlag,...); 405 _CRTIMP int __cdecl _wsopen(const wchar_t *_Filename,int _OpenFlag,int _ShareFlag,...); 406 #else 407 extern "C++" _CRTIMP int __cdecl _wopen(const wchar_t *_Filename,int _OpenFlag,int _PermissionMode = 0); 408 extern "C++" _CRTIMP int __cdecl _wsopen(const wchar_t *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode = 0); 409 #endif 410 411 #endif /* !_WIO_DEFINED */ 412 413 #ifndef _WLOCALE_DEFINED 414 #define _WLOCALE_DEFINED 415 _Check_return_opt_ 416 _CRTIMP 417 wchar_t* 418 __cdecl 419 _wsetlocale( 420 _In_ int _Category, 421 _In_opt_z_ const wchar_t *_Locale); 422 #endif 423 424 #ifndef _WPROCESS_DEFINED 425 #define _WPROCESS_DEFINED 426 427 _CRTIMP 428 intptr_t 429 __cdecl 430 _wexecl( 431 _In_z_ const wchar_t *_Filename, 432 _In_z_ const wchar_t *_ArgList, 433 ...); 434 435 _CRTIMP 436 intptr_t 437 __cdecl 438 _wexecle( 439 _In_z_ const wchar_t *_Filename, 440 _In_z_ const wchar_t *_ArgList, 441 ...); 442 443 _CRTIMP 444 intptr_t 445 __cdecl 446 _wexeclp( 447 _In_z_ const wchar_t *_Filename, 448 _In_z_ const wchar_t *_ArgList, 449 ...); 450 451 _CRTIMP 452 intptr_t 453 __cdecl 454 _wexeclpe( 455 _In_z_ const wchar_t *_Filename, 456 _In_z_ const wchar_t *_ArgList, 457 ...); 458 459 _CRTIMP 460 intptr_t 461 __cdecl 462 _wexecv( 463 _In_z_ const wchar_t *_Filename, 464 _In_z_ const wchar_t *const *_ArgList); 465 466 _CRTIMP 467 intptr_t 468 __cdecl 469 _wexecve( 470 _In_z_ const wchar_t *_Filename, 471 _In_z_ const wchar_t *const *_ArgList, 472 _In_opt_z_ const wchar_t *const *_Env); 473 474 _CRTIMP 475 intptr_t 476 __cdecl 477 _wexecvp( 478 _In_z_ const wchar_t *_Filename, 479 _In_z_ const wchar_t *const *_ArgList); 480 481 _CRTIMP 482 intptr_t 483 __cdecl 484 _wexecvpe( 485 _In_z_ const wchar_t *_Filename, 486 _In_z_ const wchar_t *const *_ArgList, 487 _In_opt_z_ const wchar_t *const *_Env); 488 489 _CRTIMP 490 intptr_t 491 __cdecl 492 _wspawnl( 493 _In_ int _Mode, 494 _In_z_ const wchar_t *_Filename, 495 _In_z_ const wchar_t *_ArgList, 496 ...); 497 498 _CRTIMP 499 intptr_t 500 __cdecl 501 _wspawnle( 502 _In_ int _Mode, 503 _In_z_ const wchar_t *_Filename, 504 _In_z_ const wchar_t *_ArgList, 505 ...); 506 507 _CRTIMP 508 intptr_t 509 __cdecl 510 _wspawnlp( 511 _In_ int _Mode, 512 _In_z_ const wchar_t *_Filename, 513 _In_z_ const wchar_t *_ArgList, 514 ...); 515 516 _CRTIMP 517 intptr_t 518 __cdecl 519 _wspawnlpe( 520 _In_ int _Mode, 521 _In_z_ const wchar_t *_Filename, 522 _In_z_ const wchar_t *_ArgList, 523 ...); 524 525 _CRTIMP 526 intptr_t 527 __cdecl 528 _wspawnv( 529 _In_ int _Mode, 530 _In_z_ const wchar_t *_Filename, 531 _In_z_ const wchar_t *const *_ArgList); 532 533 _CRTIMP 534 intptr_t 535 __cdecl 536 _wspawnve( 537 _In_ int _Mode, 538 _In_z_ const wchar_t *_Filename, 539 _In_z_ const wchar_t *const *_ArgList, 540 _In_opt_z_ const wchar_t *const *_Env); 541 542 _CRTIMP 543 intptr_t 544 __cdecl 545 _wspawnvp( 546 _In_ int _Mode, 547 _In_z_ const wchar_t *_Filename, 548 _In_z_ const wchar_t *const *_ArgList); 549 550 _CRTIMP 551 intptr_t 552 __cdecl 553 _wspawnvpe( 554 _In_ int _Mode, 555 _In_z_ const wchar_t *_Filename, 556 _In_z_ const wchar_t *const *_ArgList, 557 _In_opt_z_ const wchar_t *const *_Env); 558 559 #ifndef _CRT_WSYSTEM_DEFINED 560 #define _CRT_WSYSTEM_DEFINED 561 _CRTIMP 562 int 563 __cdecl 564 _wsystem( 565 _In_opt_z_ const wchar_t *_Command); 566 #endif /* !_CRT_WSYSTEM_DEFINED */ 567 568 #endif /* !_WPROCESS_DEFINED */ 569 570 #ifndef _WCTYPE_INLINE_DEFINED 571 #undef _CRT_WCTYPE_NOINLINE 572 #if !defined(__cplusplus) || defined(_CRT_WCTYPE_NOINLINE) 573 #define iswalpha(_c) (iswctype(_c,_ALPHA)) 574 #define iswupper(_c) (iswctype(_c,_UPPER)) 575 #define iswlower(_c) (iswctype(_c,_LOWER)) 576 #define iswdigit(_c) (iswctype(_c,_DIGIT)) 577 #define iswxdigit(_c) (iswctype(_c,_HEX)) 578 #define iswspace(_c) (iswctype(_c,_SPACE)) 579 #define iswpunct(_c) (iswctype(_c,_PUNCT)) 580 #define iswalnum(_c) (iswctype(_c,_ALPHA|_DIGIT)) 581 #define iswprint(_c) (iswctype(_c,_BLANK|_PUNCT|_ALPHA|_DIGIT)) 582 #define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT)) 583 #define iswcntrl(_c) (iswctype(_c,_CONTROL)) 584 #define iswascii(_c) ((unsigned)(_c) < 0x80) 585 586 #define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p)) 587 #define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p)) 588 #define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p)) 589 #define _iswdigit_l(_c,_p) (_iswctype_l(_c,_DIGIT,_p)) 590 #define _iswxdigit_l(_c,_p) (_iswctype_l(_c,_HEX,_p)) 591 #define _iswspace_l(_c,_p) (_iswctype_l(_c,_SPACE,_p)) 592 #define _iswpunct_l(_c,_p) (_iswctype_l(_c,_PUNCT,_p)) 593 #define _iswalnum_l(_c,_p) (_iswctype_l(_c,_ALPHA|_DIGIT,_p)) 594 #define _iswprint_l(_c,_p) (_iswctype_l(_c,_BLANK|_PUNCT|_ALPHA|_DIGIT,_p)) 595 #define _iswgraph_l(_c,_p) (_iswctype_l(_c,_PUNCT|_ALPHA|_DIGIT,_p)) 596 #define _iswcntrl_l(_c,_p) (_iswctype_l(_c,_CONTROL,_p)) 597 #ifndef _CTYPE_DISABLE_MACROS 598 #define isleadbyte(_c) (__PCTYPE_FUNC[(unsigned char)(_c)] & _LEADBYTE) 599 #endif 600 #endif 601 #define _WCTYPE_INLINE_DEFINED 602 #endif 603 604 #if !defined(_POSIX_) || defined(__GNUC__) 605 #ifndef _INO_T_DEFINED 606 #define _INO_T_DEFINED 607 typedef unsigned short _ino_t; 608 #ifndef NO_OLDNAMES 609 typedef unsigned short ino_t; 610 #endif 611 #endif 612 613 #ifndef _DEV_T_DEFINED 614 #define _DEV_T_DEFINED 615 typedef unsigned int _dev_t; 616 #ifndef NO_OLDNAMES 617 typedef unsigned int dev_t; 618 #endif 619 #endif 620 621 #ifndef _OFF_T_DEFINED 622 #define _OFF_T_DEFINED 623 typedef long _off_t; 624 #ifndef NO_OLDNAMES 625 typedef long off_t; 626 #endif 627 #endif 628 629 #ifndef _OFF64_T_DEFINED 630 #define _OFF64_T_DEFINED 631 __MINGW_EXTENSION typedef long long _off64_t; 632 #ifndef NO_OLDNAMES 633 __MINGW_EXTENSION typedef long long off64_t; 634 #endif 635 #endif 636 637 #ifndef _STAT_DEFINED 638 #define _STAT_DEFINED 639 640 struct _stat32 { 641 _dev_t st_dev; 642 _ino_t st_ino; 643 unsigned short st_mode; 644 short st_nlink; 645 short st_uid; 646 short st_gid; 647 _dev_t st_rdev; 648 _off_t st_size; 649 __time32_t st_atime; 650 __time32_t st_mtime; 651 __time32_t st_ctime; 652 }; 653 654 struct _stat { 655 _dev_t st_dev; 656 _ino_t st_ino; 657 unsigned short st_mode; 658 short st_nlink; 659 short st_uid; 660 short st_gid; 661 _dev_t st_rdev; 662 _off_t st_size; 663 time_t st_atime; 664 time_t st_mtime; 665 time_t st_ctime; 666 }; 667 668 #ifndef NO_OLDNAMES 669 struct stat { 670 _dev_t st_dev; 671 _ino_t st_ino; 672 unsigned short st_mode; 673 short st_nlink; 674 short st_uid; 675 short st_gid; 676 _dev_t st_rdev; 677 _off_t st_size; 678 time_t st_atime; 679 time_t st_mtime; 680 time_t st_ctime; 681 }; 682 #endif 683 684 #if _INTEGRAL_MAX_BITS >= 64 685 686 struct _stat32i64 { 687 _dev_t st_dev; 688 _ino_t st_ino; 689 unsigned short st_mode; 690 short st_nlink; 691 short st_uid; 692 short st_gid; 693 _dev_t st_rdev; 694 __MINGW_EXTENSION __int64 st_size; 695 __time32_t st_atime; 696 __time32_t st_mtime; 697 __time32_t st_ctime; 698 }; 699 700 struct _stat64i32 { 701 _dev_t st_dev; 702 _ino_t st_ino; 703 unsigned short st_mode; 704 short st_nlink; 705 short st_uid; 706 short st_gid; 707 _dev_t st_rdev; 708 _off_t st_size; 709 __time64_t st_atime; 710 __time64_t st_mtime; 711 __time64_t st_ctime; 712 }; 713 714 struct _stat64 { 715 _dev_t st_dev; 716 _ino_t st_ino; 717 unsigned short st_mode; 718 short st_nlink; 719 short st_uid; 720 short st_gid; 721 _dev_t st_rdev; 722 __MINGW_EXTENSION __int64 st_size; 723 __time64_t st_atime; 724 __time64_t st_mtime; 725 __time64_t st_ctime; 726 }; 727 #endif 728 729 #define __stat64 _stat64 730 731 #endif 732 733 #ifndef _WSTAT_DEFINED 734 #define _WSTAT_DEFINED 735 736 _CRTIMP 737 int 738 __cdecl 739 _wstat( 740 _In_z_ const wchar_t *_Name, 741 _Out_ struct _stat *_Stat); 742 743 _CRTIMP 744 int 745 __cdecl 746 _wstat32( 747 _In_z_ const wchar_t *_Name, 748 _Out_ struct _stat32 *_Stat); 749 750 #if _INTEGRAL_MAX_BITS >= 64 751 752 _CRTIMP 753 int 754 __cdecl 755 _wstat32i64( 756 _In_z_ const wchar_t *_Name, 757 _Out_ struct _stat32i64 *_Stat); 758 759 _CRTIMP 760 int 761 __cdecl 762 _wstat64i32( 763 _In_z_ const wchar_t *_Name, 764 _Out_ struct _stat64i32 *_Stat); 765 766 _CRTIMP 767 int 768 __cdecl 769 _wstat64( 770 _In_z_ const wchar_t *_Name, 771 _Out_ struct _stat64 *_Stat); 772 773 #endif /* _INTEGRAL_MAX_BITS >= 64 */ 774 775 #endif /* _WSTAT_DEFINED */ 776 777 #endif /* !defined(_POSIX_) || defined(__GNUC__) */ 778 779 #ifndef _WCONIO_DEFINED 780 #define _WCONIO_DEFINED 781 782 _CRTIMP 783 wchar_t* 784 _cgetws( 785 _Inout_z_ wchar_t *_Buffer); 786 787 _Check_return_ 788 _CRTIMP 789 wint_t 790 __cdecl 791 _getwch(void); 792 793 _Check_return_ 794 _CRTIMP 795 wint_t 796 __cdecl 797 _getwche(void); 798 799 _Check_return_ 800 _CRTIMP 801 wint_t 802 __cdecl 803 _putwch( 804 wchar_t _WCh); 805 806 _Check_return_ 807 _CRTIMP 808 wint_t 809 __cdecl 810 _ungetwch( 811 wint_t _WCh); 812 813 _Check_return_opt_ 814 _CRTIMP 815 int 816 __cdecl 817 _cputws( 818 _In_z_ const wchar_t *_String); 819 820 _Check_return_opt_ 821 _CRTIMP 822 int 823 __cdecl 824 _cwprintf( 825 _In_z_ _Printf_format_string_ const wchar_t *_Format, 826 ...); 827 828 _Check_return_opt_ 829 _CRTIMP 830 int 831 __cdecl 832 _cwscanf( 833 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 834 ...); 835 836 _Check_return_opt_ 837 _CRTIMP 838 int 839 __cdecl 840 _cwscanf_l( 841 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 842 _In_opt_ _locale_t _Locale, 843 ...); 844 845 _Check_return_opt_ 846 _CRTIMP 847 int 848 __cdecl 849 _vcwprintf( 850 _In_z_ _Printf_format_string_ const wchar_t *_Format, 851 va_list _ArgList); 852 853 _Check_return_opt_ 854 _CRTIMP 855 int 856 __cdecl 857 _cwprintf_p( 858 _In_z_ _Printf_format_string_ const wchar_t *_Format, 859 ...); 860 861 _Check_return_opt_ 862 _CRTIMP 863 int 864 __cdecl 865 _vcwprintf_p( 866 _In_z_ _Printf_format_string_ const wchar_t *_Format, 867 va_list _ArgList); 868 869 _CRTIMP 870 int 871 __cdecl 872 _cwprintf_l( 873 _In_z_ _Printf_format_string_ const wchar_t *_Format, 874 _In_opt_ _locale_t _Locale, 875 ...); 876 877 _CRTIMP 878 int 879 __cdecl 880 _vcwprintf_l( 881 _In_z_ _Printf_format_string_ const wchar_t *_Format, 882 _In_opt_ _locale_t _Locale, 883 va_list _ArgList); 884 885 _CRTIMP 886 int 887 __cdecl 888 _cwprintf_p_l( 889 _In_z_ _Printf_format_string_ const wchar_t *_Format, 890 _In_opt_ _locale_t _Locale, 891 ...); 892 893 _CRTIMP 894 int 895 __cdecl 896 _vcwprintf_p_l( 897 _In_z_ _Printf_format_string_ const wchar_t *_Format, 898 _In_opt_ _locale_t _Locale, 899 va_list _ArgList); 900 901 _Check_return_opt_ 902 wint_t 903 __cdecl 904 _putwch_nolock( 905 wchar_t _WCh); 906 907 _Check_return_ 908 wint_t 909 __cdecl 910 _getwch_nolock(void); 911 912 _Check_return_ 913 wint_t 914 __cdecl 915 _getwche_nolock(void); 916 917 _Check_return_opt_ 918 wint_t 919 __cdecl 920 _ungetwch_nolock( 921 wint_t _WCh); 922 923 #endif /* _WCONIO_DEFINED */ 924 925 #ifndef _WSTDIO_DEFINED 926 #define _WSTDIO_DEFINED 927 928 #ifdef _POSIX_ 929 _CRTIMP FILE *__cdecl _wfsopen(const wchar_t *_Filename,const wchar_t *_Mode); 930 #else 931 _Check_return_ 932 _CRTIMP 933 FILE* 934 __cdecl 935 _wfsopen( 936 _In_z_ const wchar_t *_Filename, 937 _In_z_ const wchar_t *_Mode, 938 _In_ int _ShFlag); 939 #endif 940 941 _Check_return_opt_ 942 _CRTIMP_ALT 943 wint_t 944 __cdecl 945 fgetwc( 946 _Inout_ FILE *_File); 947 948 _Check_return_opt_ 949 _CRTIMP 950 wint_t 951 __cdecl 952 _fgetwchar(void); 953 954 _Check_return_opt_ 955 _CRTIMP 956 wint_t 957 __cdecl 958 fputwc( 959 _In_ wchar_t _Ch, 960 _Inout_ FILE *_File); 961 962 _Check_return_opt_ 963 _CRTIMP 964 wint_t 965 __cdecl 966 _fputwchar( 967 _In_ wchar_t _Ch); 968 969 _Check_return_ 970 _CRTIMP 971 wint_t 972 __cdecl 973 getwc( 974 _Inout_ FILE *_File); 975 976 _Check_return_ 977 _CRTIMP 978 wint_t 979 __cdecl 980 getwchar(void); 981 982 _Check_return_opt_ 983 _CRTIMP 984 wint_t 985 __cdecl 986 putwc( 987 _In_ wchar_t _Ch, 988 _Inout_ FILE *_File); 989 990 _Check_return_opt_ 991 _CRTIMP 992 wint_t 993 __cdecl 994 putwchar( 995 _In_ wchar_t _Ch); 996 997 _Check_return_opt_ 998 _CRTIMP_ALT 999 wint_t 1000 __cdecl 1001 ungetwc( 1002 _In_ wint_t _Ch, 1003 _Inout_ FILE *_File); 1004 1005 _Check_return_opt_ 1006 _CRTIMP 1007 wchar_t* 1008 __cdecl 1009 fgetws( 1010 _Out_writes_z_(_SizeInWords) wchar_t *_Dst, 1011 _In_ int _SizeInWords, 1012 _Inout_ FILE *_File); 1013 1014 _Check_return_opt_ 1015 _CRTIMP 1016 int 1017 __cdecl 1018 fputws( 1019 _In_z_ const wchar_t *_Str, 1020 _Inout_ FILE *_File); 1021 1022 _CRTIMP 1023 wchar_t* 1024 __cdecl 1025 _getws( 1026 _Pre_notnull_ _Post_z_ wchar_t *_String); 1027 1028 _Check_return_opt_ 1029 _CRTIMP 1030 int 1031 __cdecl 1032 _putws( 1033 _In_z_ const wchar_t *_Str); 1034 1035 _Check_return_opt_ 1036 _CRTIMP 1037 int 1038 __cdecl 1039 fwprintf( 1040 _Inout_ FILE *_File, 1041 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1042 ...); 1043 1044 _Check_return_opt_ 1045 _CRTIMP 1046 int 1047 __cdecl 1048 wprintf( 1049 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1050 ...); 1051 1052 _Check_return_ 1053 _CRTIMP 1054 int 1055 __cdecl 1056 _scwprintf( 1057 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1058 ...); 1059 1060 _Check_return_opt_ 1061 _CRTIMP 1062 int 1063 __cdecl 1064 vfwprintf( 1065 _Inout_ FILE *_File, 1066 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1067 va_list _ArgList); 1068 1069 _Check_return_opt_ 1070 _CRTIMP 1071 int 1072 __cdecl 1073 vwprintf( 1074 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1075 va_list _ArgList); 1076 1077 #if defined __cplusplus || defined _CRT_NON_CONFORMING_SWPRINTFS 1078 _CRTIMP 1079 int 1080 __cdecl 1081 swprintf( 1082 _Out_ wchar_t*, 1083 const wchar_t*, 1084 ...); 1085 1086 _CRTIMP 1087 int 1088 __cdecl 1089 vswprintf( 1090 _Out_ wchar_t*, 1091 const wchar_t*, 1092 va_list); 1093 #endif 1094 1095 _Check_return_opt_ 1096 _CRTIMP 1097 int 1098 __cdecl 1099 _swprintf_c( 1100 _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf, 1101 _In_ size_t _SizeInWords, 1102 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1103 ...); 1104 1105 _Check_return_opt_ 1106 _CRTIMP 1107 int 1108 __cdecl 1109 _vswprintf_c( 1110 _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf, 1111 _In_ size_t _SizeInWords, 1112 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1113 va_list _ArgList); 1114 1115 _CRTIMP int __cdecl _snwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,...); 1116 _CRTIMP int __cdecl _vsnwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,va_list _Args); 1117 1118 #ifndef __NO_ISOCEXT /* externs in libmingwex.a */ 1119 _CRTIMP int __cdecl snwprintf (wchar_t *s, size_t n, const wchar_t * format, ...); 1120 __CRT_INLINE int __cdecl vsnwprintf (wchar_t *s, size_t n, const wchar_t *format, va_list arg) { return _vsnwprintf(s,n,format,arg); } 1121 _CRTIMP int __cdecl vwscanf (const wchar_t *, va_list); 1122 _CRTIMP int __cdecl vfwscanf (FILE *,const wchar_t *,va_list); 1123 _CRTIMP int __cdecl vswscanf (const wchar_t *,const wchar_t *,va_list); 1124 #endif 1125 1126 _Check_return_opt_ 1127 _CRTIMP 1128 int 1129 __cdecl 1130 _fwprintf_p( 1131 _Inout_ FILE *_File, 1132 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1133 ...); 1134 1135 _Check_return_opt_ 1136 _CRTIMP 1137 int 1138 __cdecl 1139 _wprintf_p( 1140 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1141 ...); 1142 1143 _Check_return_opt_ 1144 _CRTIMP 1145 int 1146 __cdecl 1147 _vfwprintf_p( 1148 _Inout_ FILE *_File, 1149 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1150 va_list _ArgList); 1151 1152 _Check_return_opt_ 1153 _CRTIMP 1154 int 1155 __cdecl 1156 _vwprintf_p( 1157 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1158 va_list _ArgList); 1159 1160 _Check_return_opt_ 1161 _CRTIMP 1162 int 1163 __cdecl 1164 _swprintf_p( 1165 _Out_writes_z_(_MaxCount) wchar_t *_DstBuf, 1166 _In_ size_t _MaxCount, 1167 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1168 ...); 1169 1170 _Check_return_opt_ 1171 _CRTIMP 1172 int 1173 __cdecl 1174 _vswprintf_p( 1175 _Out_writes_z_(_MaxCount) wchar_t *_DstBuf, 1176 _In_ size_t _MaxCount, 1177 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1178 va_list _ArgList); 1179 1180 _Check_return_ 1181 _CRTIMP 1182 int 1183 __cdecl 1184 _scwprintf_p( 1185 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1186 ...); 1187 1188 _Check_return_ 1189 _CRTIMP 1190 int 1191 __cdecl 1192 _vscwprintf_p( 1193 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1194 va_list _ArgList); 1195 1196 _Check_return_opt_ 1197 _CRTIMP 1198 int 1199 __cdecl 1200 _wprintf_l( 1201 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1202 _In_opt_ _locale_t _Locale, 1203 ...); 1204 1205 _Check_return_opt_ 1206 _CRTIMP 1207 int 1208 __cdecl 1209 _wprintf_p_l( 1210 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1211 _In_opt_ _locale_t _Locale, 1212 ...); 1213 1214 _Check_return_opt_ 1215 _CRTIMP 1216 int 1217 __cdecl 1218 _vwprintf_l( 1219 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1220 _In_opt_ _locale_t _Locale, 1221 va_list _ArgList); 1222 1223 _Check_return_opt_ 1224 _CRTIMP 1225 int 1226 __cdecl 1227 _vwprintf_p_l( 1228 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1229 _In_opt_ _locale_t _Locale, 1230 va_list _ArgList); 1231 1232 _Check_return_opt_ 1233 _CRTIMP 1234 int 1235 __cdecl 1236 _fwprintf_l( 1237 _Inout_ FILE *_File, 1238 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1239 _In_opt_ _locale_t _Locale, 1240 ...); 1241 1242 _Check_return_opt_ 1243 _CRTIMP 1244 int 1245 __cdecl 1246 _fwprintf_p_l( 1247 _Inout_ FILE *_File, 1248 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1249 _In_opt_ _locale_t _Locale, 1250 ...); 1251 1252 _Check_return_opt_ 1253 _CRTIMP 1254 int 1255 __cdecl 1256 _vfwprintf_l( 1257 _Inout_ FILE *_File, 1258 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1259 _In_opt_ _locale_t _Locale, 1260 va_list _ArgList); 1261 1262 _Check_return_opt_ 1263 _CRTIMP 1264 int 1265 __cdecl 1266 _vfwprintf_p_l( 1267 _Inout_ FILE *_File, 1268 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1269 _In_opt_ _locale_t _Locale, 1270 va_list _ArgList); 1271 1272 _Check_return_opt_ 1273 _CRTIMP 1274 int 1275 __cdecl 1276 _swprintf_c_l( 1277 _Out_writes_z_(_MaxCount) wchar_t *_DstBuf, 1278 _In_ size_t _MaxCount, 1279 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1280 _In_opt_ _locale_t _Locale, 1281 ...); 1282 1283 _Check_return_opt_ 1284 _CRTIMP 1285 int 1286 __cdecl 1287 _swprintf_p_l( 1288 _Out_writes_z_(_MaxCount) wchar_t *_DstBuf, 1289 _In_ size_t _MaxCount, 1290 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1291 _In_opt_ _locale_t _Locale, 1292 ...); 1293 1294 _Check_return_opt_ 1295 _CRTIMP 1296 int 1297 __cdecl 1298 _vswprintf_c_l( 1299 _Out_writes_z_(_MaxCount) wchar_t *_DstBuf, 1300 _In_ size_t _MaxCount, 1301 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1302 _In_opt_ _locale_t _Locale, 1303 va_list _ArgList); 1304 1305 _Check_return_opt_ 1306 _CRTIMP 1307 int 1308 __cdecl 1309 _vswprintf_p_l( 1310 _Out_writes_z_(_MaxCount) wchar_t *_DstBuf, 1311 _In_ size_t _MaxCount, 1312 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1313 _In_opt_ _locale_t _Locale, 1314 va_list _ArgList); 1315 1316 _Check_return_ 1317 _CRTIMP 1318 int 1319 __cdecl 1320 _scwprintf_l( 1321 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1322 _In_opt_ _locale_t _Locale, 1323 ...); 1324 1325 _Check_return_ 1326 _CRTIMP 1327 int 1328 __cdecl 1329 _scwprintf_p_l( 1330 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1331 _In_opt_ _locale_t _Locale, 1332 ...); 1333 1334 _Check_return_ 1335 _CRTIMP 1336 int 1337 __cdecl 1338 _vscwprintf_p_l( 1339 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1340 _In_opt_ _locale_t _Locale, 1341 va_list _ArgList); 1342 1343 _Check_return_opt_ 1344 _CRTIMP 1345 int 1346 __cdecl 1347 _snwprintf_l( 1348 _Out_writes_(_MaxCount) wchar_t *_DstBuf, 1349 _In_ size_t _MaxCount, 1350 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1351 _In_opt_ _locale_t _Locale, 1352 ...); 1353 1354 _Check_return_opt_ 1355 _CRTIMP 1356 int 1357 __cdecl 1358 _vsnwprintf_l( 1359 _Out_writes_(_MaxCount) wchar_t *_DstBuf, 1360 _In_ size_t _MaxCount, 1361 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1362 _In_opt_ _locale_t _Locale, 1363 va_list _ArgList); 1364 1365 _CRTIMP 1366 int 1367 __cdecl 1368 _swprintf( 1369 _Pre_notnull_ _Post_z_ wchar_t *_Dest, 1370 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1371 ...); 1372 1373 _CRTIMP 1374 int 1375 __cdecl 1376 _vswprintf( 1377 _Pre_notnull_ _Post_z_ wchar_t *_Dest, 1378 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1379 va_list _Args); 1380 1381 1382 _CRTIMP int __cdecl __swprintf_l(wchar_t *_Dest,const wchar_t *_Format,_locale_t _Plocinfo,...); 1383 _CRTIMP int __cdecl __vswprintf_l(wchar_t *_Dest,const wchar_t *_Format,_locale_t _Plocinfo,va_list _Args); 1384 1385 #ifndef _CRT_NON_CONFORMING_SWPRINTFS 1386 _Check_return_opt_ 1387 static inline 1388 int 1389 __cdecl 1390 swprintf( 1391 _Out_writes_z_(_SizeInWords) wchar_t* _DstBuf, 1392 _In_ size_t _SizeInWords, 1393 _In_z_ _Printf_format_string_ const wchar_t* _Format, 1394 ...) 1395 { 1396 int ret; 1397 va_list args; 1398 1399 va_start(args, _Format); 1400 ret = _vsnwprintf(_DstBuf, _SizeInWords, _Format, args); 1401 va_end(args); 1402 return ret; 1403 } 1404 1405 _Check_return_opt_ 1406 static inline 1407 int 1408 __cdecl 1409 vswprintf( 1410 _Out_writes_z_(_SizeInWords) wchar_t* _DstBuf, 1411 _In_ size_t _SizeInWords, 1412 _In_z_ _Printf_format_string_ const wchar_t* _Format, 1413 va_list _ArgList) 1414 { 1415 return _vsnwprintf(_DstBuf, _SizeInWords, _Format, _ArgList); 1416 } 1417 #endif 1418 1419 _Check_return_ 1420 _CRTIMP 1421 wchar_t* 1422 __cdecl 1423 _wtempnam( 1424 _In_opt_z_ const wchar_t *_Directory, 1425 _In_opt_z_ const wchar_t *_FilePrefix); 1426 1427 _Check_return_ 1428 _CRTIMP 1429 int 1430 __cdecl 1431 _vscwprintf( 1432 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1433 va_list _ArgList); 1434 1435 _Check_return_ 1436 _CRTIMP 1437 int 1438 __cdecl 1439 _vscwprintf_l( 1440 _In_z_ _Printf_format_string_ const wchar_t *_Format, 1441 _In_opt_ _locale_t _Locale, 1442 va_list _ArgList); 1443 1444 _Check_return_ 1445 int 1446 __cdecl 1447 fwscanf( 1448 _Inout_ FILE *_File, 1449 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 1450 ...); 1451 1452 _Check_return_opt_ 1453 _CRTIMP 1454 int 1455 __cdecl 1456 _fwscanf_l( 1457 _Inout_ FILE *_File, 1458 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 1459 _In_opt_ _locale_t _Locale, 1460 ...); 1461 1462 _Check_return_ 1463 int 1464 __cdecl 1465 swscanf( 1466 _In_z_ const wchar_t *_Src, 1467 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 1468 ...); 1469 1470 _Check_return_opt_ 1471 _CRTIMP 1472 int 1473 __cdecl 1474 _swscanf_l( 1475 _In_z_ const wchar_t *_Src, 1476 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 1477 _In_opt_ _locale_t _Locale, 1478 ...); 1479 1480 _Check_return_opt_ 1481 _CRTIMP 1482 int 1483 __cdecl 1484 _snwscanf( 1485 _In_reads_(_MaxCount) _Pre_z_ const wchar_t *_Src, 1486 _In_ size_t _MaxCount, 1487 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 1488 ...); 1489 1490 _Check_return_opt_ 1491 _CRTIMP 1492 int 1493 __cdecl 1494 _snwscanf_l( 1495 _In_reads_(_MaxCount) _Pre_z_ const wchar_t *_Src, 1496 _In_ size_t _MaxCount, 1497 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 1498 _In_opt_ _locale_t _Locale, 1499 ...); 1500 1501 _Check_return_ 1502 int 1503 __cdecl 1504 wscanf( 1505 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 1506 ...); 1507 1508 _Check_return_opt_ 1509 _CRTIMP 1510 int 1511 __cdecl 1512 _wscanf_l( 1513 _In_z_ _Scanf_format_string_ const wchar_t *_Format, 1514 _In_opt_ _locale_t _Locale, 1515 ...); 1516 1517 _Check_return_ 1518 _CRTIMP 1519 FILE* 1520 __cdecl 1521 _wfdopen( 1522 _In_ int _FileHandle, 1523 _In_z_ const wchar_t *_Mode); 1524 1525 _Check_return_ 1526 _CRTIMP 1527 FILE* 1528 __cdecl 1529 _wfopen( 1530 _In_z_ const wchar_t *_Filename, 1531 _In_z_ const wchar_t *_Mode); 1532 1533 _Check_return_ 1534 _CRTIMP 1535 FILE* 1536 __cdecl 1537 _wfreopen( 1538 _In_z_ const wchar_t *_Filename, 1539 _In_z_ const wchar_t *_Mode, 1540 _Inout_ FILE *_OldFile); 1541 1542 #ifndef _CRT_WPERROR_DEFINED 1543 #define _CRT_WPERROR_DEFINED 1544 _CRTIMP 1545 void 1546 __cdecl 1547 _wperror( 1548 _In_opt_z_ const wchar_t *_ErrMsg); 1549 #endif 1550 1551 _Check_return_ 1552 _CRTIMP 1553 FILE* 1554 __cdecl 1555 _wpopen( 1556 _In_z_ const wchar_t *_Command, 1557 _In_z_ const wchar_t *_Mode); 1558 1559 #if !defined(NO_OLDNAMES) && !defined(wpopen) 1560 #define wpopen _wpopen 1561 #endif 1562 1563 _Check_return_ 1564 _CRTIMP 1565 int 1566 __cdecl 1567 _wremove( 1568 _In_z_ const wchar_t *_Filename); 1569 1570 _CRTIMP 1571 wchar_t* 1572 __cdecl 1573 _wtmpnam( 1574 _Pre_maybenull_ _Post_z_ wchar_t *_Buffer); 1575 1576 _Check_return_opt_ 1577 _CRTIMP 1578 wint_t 1579 __cdecl 1580 _fgetwc_nolock( 1581 _Inout_ FILE *_File); 1582 1583 _Check_return_opt_ 1584 _CRTIMP 1585 wint_t 1586 __cdecl 1587 _fputwc_nolock( 1588 _In_ wchar_t _Ch, 1589 _Inout_ FILE *_File); 1590 1591 _Check_return_opt_ 1592 _CRTIMP 1593 wint_t 1594 __cdecl 1595 _ungetwc_nolock( 1596 _In_ wint_t _Ch, 1597 _Inout_ FILE *_File); 1598 1599 #undef _CRT_GETPUTWCHAR_NOINLINE 1600 1601 #if !defined(__cplusplus) || defined(_CRT_GETPUTWCHAR_NOINLINE) 1602 #define getwchar() fgetwc(stdin) 1603 #define putwchar(_c) fputwc((_c),stdout) 1604 #else 1605 _Check_return_ __CRT_INLINE wint_t __cdecl getwchar() {return (fgetwc(stdin)); } 1606 _Check_return_opt_ __CRT_INLINE wint_t __cdecl putwchar(_In_ wchar_t _C) {return (fputwc(_C,stdout)); } 1607 #endif 1608 1609 #define getwc(_stm) fgetwc(_stm) 1610 #define putwc(_c,_stm) fputwc(_c,_stm) 1611 #define _putwc_nolock(_c,_stm) _fputwc_nolock(_c,_stm) 1612 #define _getwc_nolock(_c) _fgetwc_nolock(_c) 1613 1614 #endif /* _WSTDIO_DEFINED */ 1615 1616 #ifndef _WSTDLIB_DEFINED 1617 #define _WSTDLIB_DEFINED 1618 1619 _CRTIMP 1620 wchar_t* 1621 __cdecl 1622 _itow( 1623 _In_ int _Value, 1624 _Pre_notnull_ _Post_z_ wchar_t *_Dest, 1625 _In_ int _Radix); 1626 1627 _CRTIMP 1628 wchar_t* 1629 __cdecl 1630 _ltow( 1631 _In_ long _Value, 1632 _Pre_notnull_ _Post_z_ wchar_t *_Dest, 1633 _In_ int _Radix); 1634 1635 _CRTIMP 1636 wchar_t* 1637 __cdecl 1638 _ultow( 1639 _In_ unsigned long _Value, 1640 _Pre_notnull_ _Post_z_ wchar_t *_Dest, 1641 _In_ int _Radix); 1642 1643 _Check_return_ 1644 double 1645 __cdecl 1646 wcstod( 1647 _In_z_ const wchar_t *_Str, 1648 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr); 1649 1650 _Check_return_ 1651 _CRTIMP 1652 double 1653 __cdecl 1654 _wcstod_l( 1655 _In_z_ const wchar_t *_Str, 1656 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, 1657 _In_opt_ _locale_t _Locale); 1658 1659 float __cdecl wcstof( const wchar_t *nptr, wchar_t **endptr); 1660 1661 #if !defined __NO_ISOCEXT /* in libmingwex.a */ 1662 float __cdecl wcstof (const wchar_t * __restrict__, wchar_t ** __restrict__); 1663 long double __cdecl wcstold (const wchar_t * __restrict__, wchar_t ** __restrict__); 1664 #endif /* __NO_ISOCEXT */ 1665 1666 _Check_return_ 1667 long 1668 __cdecl 1669 wcstol( 1670 _In_z_ const wchar_t *_Str, 1671 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, 1672 _In_ int _Radix); 1673 1674 _Check_return_ 1675 _CRTIMP 1676 long 1677 __cdecl 1678 _wcstol_l( 1679 _In_z_ const wchar_t *_Str, 1680 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, 1681 _In_ int _Radix, 1682 _In_opt_ _locale_t _Locale); 1683 1684 _Check_return_ 1685 unsigned long 1686 __cdecl 1687 wcstoul( 1688 _In_z_ const wchar_t *_Str, 1689 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, 1690 _In_ int _Radix); 1691 1692 _Check_return_ 1693 _CRTIMP 1694 unsigned long 1695 __cdecl 1696 _wcstoul_l( 1697 _In_z_ const wchar_t *_Str, 1698 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, 1699 _In_ int _Radix, 1700 _In_opt_ _locale_t _Locale); 1701 1702 _Check_return_ 1703 _CRTIMP 1704 wchar_t* 1705 __cdecl 1706 _wgetenv( 1707 _In_z_ const wchar_t *_VarName); 1708 1709 #ifndef _CRT_WSYSTEM_DEFINED 1710 #define _CRT_WSYSTEM_DEFINED 1711 _CRTIMP 1712 int 1713 __cdecl 1714 _wsystem( 1715 _In_opt_z_ const wchar_t *_Command); 1716 #endif 1717 1718 _Check_return_ 1719 _CRTIMP 1720 double 1721 __cdecl 1722 _wtof( 1723 _In_z_ const wchar_t *_Str); 1724 1725 _Check_return_ 1726 _CRTIMP 1727 double 1728 __cdecl 1729 _wtof_l( 1730 _In_z_ const wchar_t *_Str, 1731 _In_opt_ _locale_t _Locale); 1732 1733 _Check_return_ 1734 _CRTIMP 1735 int 1736 __cdecl 1737 _wtoi( 1738 _In_z_ const wchar_t *_Str); 1739 1740 _Check_return_ 1741 _CRTIMP 1742 int 1743 __cdecl 1744 _wtoi_l( 1745 _In_z_ const wchar_t *_Str, 1746 _In_opt_ _locale_t _Locale); 1747 1748 _Check_return_ 1749 _CRTIMP 1750 long 1751 __cdecl 1752 _wtol( 1753 _In_z_ const wchar_t *_Str); 1754 1755 _Check_return_ 1756 _CRTIMP 1757 long 1758 __cdecl 1759 _wtol_l( 1760 _In_z_ const wchar_t *_Str, 1761 _In_opt_ _locale_t _Locale); 1762 1763 #if _INTEGRAL_MAX_BITS >= 64 1764 1765 __MINGW_EXTENSION 1766 _CRTIMP 1767 wchar_t* 1768 __cdecl 1769 _i64tow( 1770 _In_ __int64 _Val, 1771 _Pre_notnull_ _Post_z_ wchar_t *_DstBuf, 1772 _In_ int _Radix); 1773 1774 __MINGW_EXTENSION 1775 _CRTIMP 1776 wchar_t* 1777 __cdecl 1778 _ui64tow( 1779 _In_ unsigned __int64 _Val, 1780 _Pre_notnull_ _Post_z_ wchar_t *_DstBuf, 1781 _In_ int _Radix); 1782 1783 __MINGW_EXTENSION 1784 _Check_return_ 1785 _CRTIMP 1786 __int64 1787 __cdecl 1788 _wtoi64( 1789 _In_z_ const wchar_t *_Str); 1790 1791 __MINGW_EXTENSION 1792 _Check_return_ 1793 _CRTIMP 1794 __int64 1795 __cdecl 1796 _wtoi64_l( 1797 _In_z_ const wchar_t *_Str, 1798 _In_opt_ _locale_t _Locale); 1799 1800 __MINGW_EXTENSION 1801 _Check_return_ 1802 _CRTIMP 1803 __int64 1804 __cdecl 1805 _wcstoi64( 1806 _In_z_ const wchar_t *_Str, 1807 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, 1808 _In_ int _Radix); 1809 1810 __MINGW_EXTENSION 1811 _Check_return_ 1812 _CRTIMP 1813 __int64 1814 __cdecl 1815 _wcstoi64_l( 1816 _In_z_ const wchar_t *_Str, 1817 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, 1818 _In_ int _Radix, 1819 _In_opt_ _locale_t _Locale); 1820 1821 __MINGW_EXTENSION 1822 _Check_return_ 1823 _CRTIMP 1824 unsigned __int64 1825 __cdecl 1826 _wcstoui64( 1827 _In_z_ const wchar_t *_Str, 1828 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, 1829 _In_ int _Radix); 1830 1831 __MINGW_EXTENSION 1832 _Check_return_ 1833 _CRTIMP 1834 unsigned __int64 1835 __cdecl 1836 _wcstoui64_l( 1837 _In_z_ const wchar_t *_Str, 1838 _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, 1839 _In_ int _Radix, 1840 _In_opt_ _locale_t _Locale); 1841 1842 #endif /* _INTEGRAL_MAX_BITS >= 64 */ 1843 1844 #endif /* _WSTDLIB_DEFINED */ 1845 1846 #ifndef _POSIX_ 1847 1848 #ifndef _WSTDLIBP_DEFINED 1849 #define _WSTDLIBP_DEFINED 1850 1851 _Check_return_ 1852 _CRTIMP 1853 wchar_t* 1854 __cdecl 1855 _wfullpath( 1856 _Out_writes_opt_z_(_SizeInWords) wchar_t *_FullPath, 1857 _In_z_ const wchar_t *_Path, 1858 _In_ size_t _SizeInWords); 1859 1860 _CRTIMP 1861 void 1862 __cdecl 1863 _wmakepath( 1864 _Pre_notnull_ _Post_z_ wchar_t *_ResultPath, 1865 _In_opt_z_ const wchar_t *_Drive, 1866 _In_opt_z_ const wchar_t *_Dir, 1867 _In_opt_z_ const wchar_t *_Filename, 1868 _In_opt_z_ const wchar_t *_Ext); 1869 1870 #ifndef _CRT_WPERROR_DEFINED 1871 #define _CRT_WPERROR_DEFINED 1872 _CRTIMP 1873 void 1874 __cdecl 1875 _wperror( 1876 _In_opt_z_ const wchar_t *_ErrMsg); 1877 #endif 1878 1879 _Check_return_ 1880 _CRTIMP 1881 int 1882 __cdecl 1883 _wputenv( 1884 _In_z_ const wchar_t *_EnvString); 1885 1886 _CRTIMP 1887 void 1888 __cdecl 1889 _wsearchenv( 1890 _In_z_ const wchar_t *_Filename, 1891 _In_z_ const wchar_t *_EnvVar, 1892 _Pre_notnull_ _Post_z_ wchar_t *_ResultPath); 1893 1894 _CRTIMP 1895 void 1896 __cdecl 1897 _wsplitpath( 1898 _In_z_ const wchar_t *_FullPath, 1899 _Pre_maybenull_ _Post_z_ wchar_t *_Drive, 1900 _Pre_maybenull_ _Post_z_ wchar_t *_Dir, 1901 _Pre_maybenull_ _Post_z_ wchar_t *_Filename, 1902 _Pre_maybenull_ _Post_z_ wchar_t *_Ext); 1903 1904 #endif /* _WSTDLIBP_DEFINED */ 1905 1906 #endif /* _POSIX_ */ 1907 1908 #ifndef _WSTRING_DEFINED 1909 #define _WSTRING_DEFINED 1910 1911 _Check_return_ 1912 _CRTIMP 1913 wchar_t* 1914 __cdecl 1915 _wcsdup( 1916 _In_z_ const wchar_t *_Str); 1917 1918 wchar_t* 1919 __cdecl 1920 wcscat( 1921 _Inout_updates_z_(_String_length_(_Dest) + _String_length_(_Source) + 1) wchar_t *_Dest, 1922 _In_z_ const wchar_t *_Source); 1923 1924 _CONST_RETURN 1925 wchar_t* 1926 __cdecl 1927 wcschr( 1928 _In_z_ const wchar_t *_Str, 1929 wchar_t _Ch); 1930 1931 #ifdef __cplusplus 1932 extern "C++" 1933 _Check_return_ 1934 _When_(return != NULL, _Ret_range_(_String, _String + _String_length_(_String) - 1)) 1935 inline wchar_t* __cdecl wcschr(_In_z_ wchar_t *_String, wchar_t _C) 1936 { 1937 return const_cast<wchar_t*>(wcschr(static_cast<const wchar_t*>(_String), _C)); 1938 } 1939 #endif // __cplusplus 1940 1941 _Check_return_ 1942 int 1943 __cdecl 1944 wcscmp( 1945 _In_z_ const wchar_t *_Str1, 1946 _In_z_ const wchar_t *_Str2); 1947 1948 wchar_t* 1949 __cdecl 1950 wcscpy( 1951 _Out_writes_z_(_String_length_(_Source) + 1) wchar_t *_Dest, 1952 _In_z_ const wchar_t *_Source); 1953 1954 _Check_return_ 1955 size_t 1956 __cdecl 1957 wcscspn( 1958 _In_z_ const wchar_t *_Str, 1959 _In_z_ const wchar_t *_Control); 1960 1961 _CRTIMP 1962 size_t 1963 __cdecl 1964 wcslen( 1965 _In_z_ const wchar_t *_Str); 1966 1967 _When_(_MaxCount > _String_length_(_Src), 1968 _Post_satisfies_(return == _String_length_(_Src))) 1969 _When_(_MaxCount <= _String_length_(_Src), 1970 _Post_satisfies_(return == _MaxCount)) 1971 size_t 1972 __cdecl 1973 wcsnlen( 1974 _In_reads_or_z_(_MaxCount) const wchar_t *_Src, 1975 _In_ size_t _MaxCount); 1976 1977 wchar_t* 1978 __cdecl 1979 wcsncat( 1980 wchar_t *_Dest, 1981 const wchar_t *_Source, 1982 size_t _Count); 1983 1984 _Check_return_ 1985 int 1986 __cdecl 1987 wcsncmp( 1988 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 1989 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 1990 _In_ size_t _MaxCount); 1991 1992 wchar_t* 1993 __cdecl 1994 wcsncpy( 1995 wchar_t *_Dest, 1996 const wchar_t *_Source, 1997 size_t _Count); 1998 1999 _Check_return_ 2000 _CONST_RETURN 2001 wchar_t* 2002 __cdecl 2003 wcspbrk( 2004 _In_z_ const wchar_t *_Str, 2005 _In_z_ const wchar_t *_Control); 2006 2007 #ifdef __cplusplus 2008 extern "C++" 2009 _Check_return_ 2010 inline wchar_t* __cdecl wcspbrk(_In_z_ wchar_t *_Str, _In_z_ const wchar_t *_Control) 2011 { 2012 return const_cast<wchar_t*>(wcspbrk(static_cast<const wchar_t*>(_Str), _Control)); 2013 } 2014 #endif // __cplusplus 2015 2016 _Check_return_ 2017 _CONST_RETURN 2018 wchar_t* 2019 __cdecl 2020 wcsrchr( 2021 _In_z_ const wchar_t *_Str, 2022 _In_ wchar_t _Ch); 2023 2024 #ifdef __cplusplus 2025 extern "C++" 2026 _Check_return_ 2027 inline wchar_t* __cdecl wcsrchr(_In_z_ wchar_t *_Str, _In_ wchar_t _Ch) 2028 { 2029 return const_cast<wchar_t*>(wcsrchr(static_cast<const wchar_t*>(_Str), _Ch)); 2030 } 2031 #endif // __cplusplus 2032 2033 _Check_return_ 2034 size_t 2035 __cdecl 2036 wcsspn( 2037 _In_z_ const wchar_t *_Str, 2038 _In_z_ const wchar_t *_Control); 2039 2040 _CONST_RETURN 2041 wchar_t* 2042 __cdecl 2043 wcsstr( 2044 _In_z_ const wchar_t *_Str, 2045 _In_z_ const wchar_t *_SubStr); 2046 2047 #ifdef __cplusplus 2048 extern "C++" 2049 _Check_return_ _Ret_maybenull_ 2050 _When_(return != NULL, _Ret_range_(_String, _String + _String_length_(_String) - 1)) 2051 inline wchar_t* __cdecl wcsstr(_In_z_ wchar_t *_String, _In_z_ const wchar_t *_SubStr) 2052 { 2053 return const_cast<wchar_t*>(wcsstr(static_cast<const wchar_t*>(_String), _SubStr)); 2054 } 2055 #endif // __cplusplus 2056 2057 _Check_return_ 2058 wchar_t* 2059 __cdecl 2060 wcstok( 2061 _Inout_opt_z_ wchar_t *_Str, 2062 _In_z_ const wchar_t *_Delim); 2063 2064 _Check_return_ 2065 _CRTIMP 2066 wchar_t* 2067 __cdecl 2068 _wcserror( 2069 _In_ int _ErrNum); 2070 2071 _Check_return_ 2072 _CRTIMP 2073 wchar_t* 2074 __cdecl 2075 __wcserror( 2076 _In_opt_z_ const wchar_t *_Str); 2077 2078 _Check_return_ 2079 _CRTIMP 2080 int 2081 __cdecl 2082 _wcsicmp( 2083 _In_z_ const wchar_t *_Str1, 2084 _In_z_ const wchar_t *_Str2); 2085 2086 _Check_return_ 2087 _CRTIMP 2088 int 2089 __cdecl 2090 _wcsicmp_l( 2091 _In_z_ const wchar_t *_Str1, 2092 _In_z_ const wchar_t *_Str2, 2093 _In_opt_ _locale_t _Locale); 2094 2095 _Check_return_ 2096 _CRTIMP 2097 int 2098 __cdecl 2099 _wcsnicmp( 2100 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 2101 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 2102 _In_ size_t _MaxCount); 2103 2104 _Check_return_ 2105 _CRTIMP 2106 int 2107 __cdecl 2108 _wcsnicmp_l( 2109 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 2110 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 2111 _In_ size_t _MaxCount, 2112 _In_opt_ _locale_t _Locale); 2113 2114 _CRTIMP 2115 wchar_t* 2116 __cdecl 2117 _wcsnset( 2118 wchar_t *_Str, 2119 wchar_t _Val, 2120 size_t _MaxCount); 2121 2122 _CRTIMP 2123 wchar_t* 2124 __cdecl 2125 _wcsrev( 2126 _Inout_z_ wchar_t *_Str); 2127 2128 _CRTIMP 2129 wchar_t* 2130 __cdecl 2131 _wcsset( 2132 wchar_t *_Str, 2133 wchar_t _Val); 2134 2135 _CRTIMP 2136 wchar_t* 2137 __cdecl 2138 _wcslwr( 2139 _Inout_z_ wchar_t *_String); 2140 2141 _CRTIMP 2142 wchar_t* 2143 _wcslwr_l( 2144 wchar_t *_String, 2145 _locale_t _Locale); 2146 2147 _CRTIMP 2148 wchar_t* 2149 __cdecl 2150 _wcsupr( 2151 _Inout_z_ wchar_t *_String); 2152 2153 _CRTIMP 2154 wchar_t* 2155 _wcsupr_l( 2156 wchar_t *_String, 2157 _locale_t _Locale); 2158 2159 _Check_return_opt_ 2160 size_t 2161 __cdecl 2162 wcsxfrm( 2163 _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t *_Dst, 2164 _In_z_ const wchar_t *_Src, 2165 _In_ size_t _MaxCount); 2166 2167 _Check_return_opt_ 2168 _CRTIMP 2169 size_t 2170 __cdecl 2171 _wcsxfrm_l( 2172 _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t *_Dst, 2173 _In_z_ const wchar_t *_Src, 2174 _In_ size_t _MaxCount, 2175 _In_opt_ _locale_t _Locale); 2176 2177 _Check_return_ 2178 int 2179 __cdecl 2180 wcscoll( 2181 _In_z_ const wchar_t *_Str1, 2182 _In_z_ const wchar_t *_Str2); 2183 2184 _Check_return_ 2185 _CRTIMP 2186 int 2187 __cdecl 2188 _wcscoll_l( 2189 _In_z_ const wchar_t *_Str1, 2190 _In_z_ const wchar_t *_Str2, 2191 _In_opt_ _locale_t _Locale); 2192 2193 _Check_return_ 2194 _CRTIMP 2195 int 2196 __cdecl 2197 _wcsicoll( 2198 _In_z_ const wchar_t *_Str1, 2199 _In_z_ const wchar_t *_Str2); 2200 2201 _Check_return_ 2202 _CRTIMP 2203 int 2204 __cdecl 2205 _wcsicoll_l( 2206 _In_z_ const wchar_t *_Str1, 2207 _In_z_ const wchar_t *_Str2, 2208 _In_opt_ _locale_t _Locale); 2209 2210 _Check_return_ 2211 _CRTIMP 2212 int 2213 __cdecl 2214 _wcsncoll( 2215 _In_z_ const wchar_t *_Str1, 2216 _In_z_ const wchar_t *_Str2, 2217 _In_ size_t _MaxCount); 2218 2219 _Check_return_ 2220 _CRTIMP 2221 int 2222 __cdecl 2223 _wcsncoll_l( 2224 _In_z_ const wchar_t *_Str1, 2225 _In_z_ const wchar_t *_Str2, 2226 _In_ size_t _MaxCount, 2227 _In_opt_ _locale_t _Locale); 2228 2229 _Check_return_ 2230 _CRTIMP 2231 int 2232 __cdecl 2233 _wcsnicoll( 2234 _In_z_ const wchar_t *_Str1, 2235 _In_z_ const wchar_t *_Str2, 2236 _In_ size_t _MaxCount); 2237 2238 _Check_return_ 2239 _CRTIMP 2240 int 2241 __cdecl 2242 _wcsnicoll_l( 2243 _In_z_ const wchar_t *_Str1, 2244 _In_z_ const wchar_t *_Str2, 2245 _In_ size_t _MaxCount, 2246 _In_opt_ _locale_t _Locale); 2247 2248 #ifndef NO_OLDNAMES 2249 2250 _Check_return_ 2251 _CRTIMP 2252 wchar_t* 2253 __cdecl 2254 wcsdup( 2255 _In_z_ const wchar_t *_Str); 2256 2257 #define wcswcs wcsstr 2258 2259 _Check_return_ 2260 _CRTIMP 2261 int 2262 __cdecl 2263 wcsicmp( 2264 _In_z_ const wchar_t *_Str1, 2265 _In_z_ const wchar_t *_Str2); 2266 2267 _Check_return_ 2268 _CRTIMP 2269 int 2270 __cdecl 2271 wcsnicmp( 2272 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 2273 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 2274 _In_ size_t _MaxCount); 2275 2276 _CRTIMP 2277 wchar_t* 2278 __cdecl 2279 wcsnset( 2280 _Inout_updates_z_(_MaxCount) wchar_t *_Str, 2281 _In_ wchar_t _Val, 2282 _In_ size_t _MaxCount); 2283 2284 _CRTIMP 2285 wchar_t* 2286 __cdecl 2287 wcsrev( 2288 _Inout_z_ wchar_t *_Str); 2289 2290 _CRTIMP 2291 wchar_t* 2292 __cdecl 2293 wcsset( 2294 _Inout_z_ wchar_t *_Str, 2295 wchar_t _Val); 2296 2297 _CRTIMP 2298 wchar_t* 2299 __cdecl 2300 wcslwr( 2301 _Inout_z_ wchar_t *_Str); 2302 2303 _CRTIMP 2304 wchar_t* 2305 __cdecl 2306 wcsupr( 2307 _Inout_z_ wchar_t *_Str); 2308 2309 _Check_return_ 2310 _CRTIMP 2311 int 2312 __cdecl 2313 wcsicoll( 2314 _In_z_ const wchar_t *_Str1, 2315 _In_z_ const wchar_t *_Str2); 2316 2317 #endif /* NO_OLDNAMES */ 2318 2319 #endif /* _WSTRING_DEFINED */ 2320 2321 #ifndef _TM_DEFINED 2322 #define _TM_DEFINED 2323 struct tm { 2324 int tm_sec; 2325 int tm_min; 2326 int tm_hour; 2327 int tm_mday; 2328 int tm_mon; 2329 int tm_year; 2330 int tm_wday; 2331 int tm_yday; 2332 int tm_isdst; 2333 }; 2334 #endif 2335 2336 #ifndef _WTIME_DEFINED 2337 #define _WTIME_DEFINED 2338 2339 _CRTIMP 2340 wchar_t* 2341 __cdecl 2342 _wasctime( 2343 _In_ const struct tm *_Tm); 2344 2345 _CRTIMP 2346 wchar_t* 2347 __cdecl 2348 _wctime32( 2349 _In_ const __time32_t *_Time); 2350 2351 _Success_(return > 0) 2352 size_t 2353 __cdecl 2354 wcsftime( 2355 _Out_writes_z_(_SizeInWords) wchar_t *_Buf, 2356 _In_ size_t _SizeInWords, 2357 _In_z_ _Printf_format_string_ const wchar_t *_Format, 2358 _In_ const struct tm *_Tm); 2359 2360 _Success_(return > 0) 2361 _CRTIMP 2362 size_t 2363 __cdecl 2364 _wcsftime_l( 2365 _Out_writes_z_(_SizeInWords) wchar_t *_Buf, 2366 _In_ size_t _SizeInWords, 2367 _In_z_ _Printf_format_string_ const wchar_t *_Format, 2368 _In_ const struct tm *_Tm, 2369 _In_opt_ _locale_t _Locale); 2370 2371 _CRTIMP 2372 wchar_t* 2373 __cdecl 2374 _wstrdate( 2375 _Out_writes_z_(9) wchar_t *_Buffer); 2376 2377 _CRTIMP 2378 wchar_t* 2379 __cdecl 2380 _wstrtime( 2381 _Out_writes_z_(9) wchar_t *_Buffer); 2382 2383 _CRTIMP 2384 errno_t 2385 __cdecl 2386 _wasctime_s( 2387 _Out_writes_(_SizeInWords) _Post_readable_size_(26) wchar_t *_Buf, 2388 _In_ size_t _SizeInWords, 2389 _In_ const struct tm *_Tm); 2390 2391 _CRTIMP 2392 errno_t 2393 __cdecl 2394 _wctime32_s( 2395 _Out_writes_(_SizeInWords) _Post_readable_size_(26) wchar_t *_Buf, 2396 _In_ size_t _SizeInWords, 2397 _In_ const __time32_t *_Time); 2398 2399 _CRTIMP 2400 errno_t 2401 __cdecl 2402 _wstrdate_s( 2403 _Out_writes_(_SizeInWords) _Post_readable_size_(9) wchar_t *_Buf, 2404 _In_range_(>=, 9) size_t _SizeInWords); 2405 2406 _CRTIMP 2407 errno_t 2408 __cdecl 2409 _wstrtime_s( 2410 _Out_writes_(_SizeInWords) _Post_readable_size_(9) wchar_t *_Buf, 2411 _In_ size_t _SizeInWords); 2412 2413 #if _INTEGRAL_MAX_BITS >= 64 2414 2415 _CRTIMP 2416 wchar_t* 2417 __cdecl 2418 _wctime64( 2419 _In_ const __time64_t *_Time); 2420 2421 _CRTIMP 2422 errno_t 2423 __cdecl 2424 _wctime64_s( 2425 _Out_writes_(_SizeInWords) _Post_readable_size_(26) wchar_t *_Buf, 2426 _In_ size_t _SizeInWords, 2427 _In_ const __time64_t *_Time); 2428 2429 #endif /* _INTEGRAL_MAX_BITS >= 64 */ 2430 2431 #if !defined (RC_INVOKED) && !defined (_INC_WTIME_INL) 2432 #define _INC_WTIME_INL 2433 #ifdef _USE_32BIT_TIME_T 2434 __CRT_INLINE wchar_t *__cdecl _wctime(const time_t *_Time) { return _wctime32(_Time); } 2435 #else /* !_USE_32BIT_TIME_T */ 2436 __CRT_INLINE wchar_t *__cdecl _wctime(const time_t *_Time) { return _wctime64(_Time); } 2437 #endif /* !_USE_32BIT_TIME_T */ 2438 #endif /* !defined (RC_INVOKED) && !defined (_INC_WTIME_INL) */ 2439 2440 #endif /* _WTIME_DEFINED */ 2441 2442 typedef int mbstate_t; 2443 typedef wchar_t _Wint_t; 2444 2445 wint_t 2446 __cdecl 2447 btowc( 2448 int); 2449 2450 size_t 2451 __cdecl 2452 mbrlen( 2453 _In_reads_bytes_opt_(_SizeInBytes) _Pre_opt_z_ const char *_Ch, 2454 _In_ size_t _SizeInBytes, 2455 _Out_opt_ mbstate_t *_State); 2456 2457 size_t 2458 __cdecl 2459 mbrtowc( 2460 _Pre_maybenull_ _Post_z_ wchar_t *_DstCh, 2461 _In_reads_bytes_opt_(_SizeInBytes) _Pre_opt_z_ const char *_SrcCh, 2462 _In_ size_t _SizeInBytes, 2463 _Out_opt_ mbstate_t *_State); 2464 2465 size_t 2466 __cdecl 2467 mbsrtowcs( 2468 _Pre_notnull_ _Post_z_ wchar_t *_Dest, 2469 _Inout_ _Deref_prepost_opt_valid_ const char **_PSrc, 2470 _In_ size_t _Count, 2471 _Inout_opt_ mbstate_t *_State); 2472 2473 size_t 2474 __cdecl 2475 wcrtomb( 2476 _Pre_maybenull_ _Post_z_ char *_Dest, 2477 _In_ wchar_t _Source, 2478 _Out_opt_ mbstate_t *_State); 2479 2480 size_t 2481 __cdecl 2482 wcsrtombs( 2483 _Pre_maybenull_ _Post_z_ char *_Dest, 2484 _Inout_ _Deref_prepost_z_ const wchar_t **_PSource, 2485 _In_ size_t _Count, 2486 _Out_opt_ mbstate_t *_State); 2487 2488 int 2489 __cdecl 2490 wctob( 2491 _In_ wint_t _WCh); 2492 2493 #ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */ 2494 2495 wchar_t* 2496 __cdecl 2497 wmemset( 2498 _Out_writes_all_(_N) wchar_t *_S, 2499 _In_ wchar_t _C, 2500 _In_ size_t _N); 2501 2502 _CONST_RETURN 2503 wchar_t* 2504 __cdecl 2505 wmemchr( 2506 _In_reads_(_N) const wchar_t *_S, 2507 _In_ wchar_t _C, 2508 _In_ size_t _N); 2509 2510 #ifdef __cplusplus 2511 extern "C++" 2512 inline wchar_t* __cdecl wmemchr( 2513 _In_reads_(_N) wchar_t *_S, 2514 _In_ wchar_t _C, 2515 _In_ size_t _N) 2516 { 2517 const wchar_t *_SC = _S; 2518 return const_cast<wchar_t*>(wmemchr(_SC, _C, _N)); 2519 } 2520 #endif // __cplusplus 2521 2522 int 2523 __cdecl 2524 wmemcmp( 2525 _In_reads_(_N) const wchar_t *_S1, 2526 _In_reads_(_N) const wchar_t *_S2, 2527 _In_ size_t _N); 2528 2529 _Post_equal_to_(_S1) 2530 _At_buffer_(_S1, _Iter_, _N, _Post_satisfies_(_S1[_Iter_] == _S2[_Iter_])) 2531 wchar_t* 2532 __cdecl 2533 wmemcpy( 2534 _Out_writes_all_(_N) wchar_t *_S1, 2535 _In_reads_(_N) const wchar_t *_S2, 2536 _In_ size_t _N); 2537 2538 wchar_t* 2539 __cdecl 2540 wmemmove( 2541 _Out_writes_all_opt_(_N) wchar_t *_S1, 2542 _In_reads_opt_(_N) const wchar_t *_S2, 2543 _In_ size_t _N); 2544 2545 __MINGW_EXTENSION 2546 long long 2547 __cdecl 2548 wcstoll( 2549 const wchar_t *nptr, 2550 wchar_t **endptr, 2551 int base); 2552 2553 __MINGW_EXTENSION 2554 unsigned long long 2555 __cdecl 2556 wcstoull( 2557 const wchar_t *nptr, 2558 wchar_t **endptr, 2559 int base); 2560 2561 #endif /* __NO_ISOCEXT */ 2562 2563 void* 2564 __cdecl 2565 memmove( 2566 _Out_writes_bytes_all_opt_(_MaxCount) void *_Dst, 2567 _In_reads_bytes_opt_(_MaxCount) const void *_Src, 2568 _In_ size_t _MaxCount); 2569 2570 _Post_equal_to_(_Dst) 2571 _At_buffer_((unsigned char*)_Dst, 2572 _Iter_, 2573 _MaxCount, 2574 _Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == ((unsigned char*)_Src)[_Iter_])) 2575 void* 2576 __cdecl 2577 memcpy( 2578 _Out_writes_bytes_all_(_MaxCount) void *_Dst, 2579 _In_reads_bytes_(_MaxCount) const void *_Src, 2580 _In_ size_t _MaxCount); 2581 2582 __CRT_INLINE 2583 int 2584 __cdecl 2585 fwide( 2586 _In_opt_ FILE *_F, 2587 int _M) 2588 { 2589 (void)_F; 2590 return (_M); 2591 } 2592 2593 __CRT_INLINE 2594 int 2595 __cdecl 2596 mbsinit( 2597 _In_opt_ const mbstate_t *_P) 2598 { 2599 return (!_P || *_P==0); 2600 } 2601 2602 __CRT_INLINE 2603 _CONST_RETURN 2604 wchar_t* 2605 __cdecl 2606 wmemchr( 2607 _In_reads_(_N) const wchar_t *_S, 2608 _In_ wchar_t _C, 2609 _In_ size_t _N) 2610 { 2611 for (;0<_N;++_S,--_N) 2612 { 2613 if (*_S==_C) return (_CONST_RETURN wchar_t *)(_S); 2614 } 2615 return (0); 2616 } 2617 2618 __CRT_INLINE 2619 int 2620 __cdecl 2621 wmemcmp( 2622 _In_reads_(_N) const wchar_t *_S1, 2623 _In_reads_(_N) const wchar_t *_S2, 2624 _In_ size_t _N) 2625 { 2626 for (; 0 < _N; ++_S1,++_S2,--_N) 2627 { 2628 if (*_S1!=*_S2) return (*_S1 < *_S2 ? -1 : +1); 2629 } 2630 return (0); 2631 } 2632 2633 _Post_equal_to_(_S1) 2634 _At_buffer_(_S1, 2635 _Iter_, 2636 _N, 2637 _Post_satisfies_(_S1[_Iter_] == _S2[_Iter_])) 2638 __CRT_INLINE 2639 wchar_t* 2640 __cdecl 2641 wmemcpy( 2642 _Out_writes_all_(_N) wchar_t *_S1, 2643 _In_reads_(_N) const wchar_t *_S2, 2644 _In_ size_t _N) 2645 { 2646 return (wchar_t *)memcpy(_S1,_S2,_N*sizeof(wchar_t)); 2647 } 2648 2649 __CRT_INLINE 2650 wchar_t* 2651 __cdecl 2652 wmemmove( 2653 _Out_writes_all_opt_(_N) wchar_t *_S1, 2654 _In_reads_opt_(_N) const wchar_t *_S2, 2655 _In_ size_t _N) 2656 { 2657 return (wchar_t *)memmove(_S1,_S2,_N*sizeof(wchar_t)); 2658 } 2659 2660 __CRT_INLINE 2661 wchar_t* 2662 __cdecl 2663 wmemset( 2664 _Out_writes_all_(_N) wchar_t *_S, 2665 _In_ wchar_t _C, 2666 _In_ size_t _N) 2667 { 2668 wchar_t *_Su = _S; 2669 for (;0<_N;++_Su,--_N) { 2670 *_Su = _C; 2671 } 2672 return (_S); 2673 } 2674 2675 #ifdef _MSC_VER 2676 #pragma warning(pop) 2677 #endif 2678 2679 #ifdef __cplusplus 2680 } 2681 #endif 2682 2683 #pragma pack(pop) 2684 2685 #include <sec_api/wchar_s.h> 2686 #endif 2687