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_STRING 7 #define _INC_STRING 8 9 #include <crtdefs.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 #ifndef _NLSCMP_DEFINED 16 #define _NLSCMP_DEFINED 17 #define _NLSCMPERROR 2147483647 18 #endif 19 20 #ifndef _CRT_MEMORY_DEFINED 21 #define _CRT_MEMORY_DEFINED 22 23 _CRTIMP 24 void* 25 __cdecl 26 _memccpy( 27 _Out_writes_bytes_opt_(_MaxCount) void *_Dst, 28 _In_ const void *_Src, 29 _In_ int _Val, 30 _In_ size_t _MaxCount); 31 32 _Must_inspect_result_ 33 _CRTIMP 34 _CONST_RETURN 35 void* 36 __cdecl 37 memchr( 38 _In_reads_bytes_opt_(_MaxCount) const void *_Buf, 39 _In_ int _Val, 40 _In_ size_t _MaxCount); 41 42 _Must_inspect_result_ 43 _CRTIMP 44 int 45 __cdecl 46 _memicmp( 47 _In_reads_bytes_opt_(_Size) const void *_Buf1, 48 _In_reads_bytes_opt_(_Size) const void *_Buf2, 49 _In_ size_t _Size); 50 51 _Must_inspect_result_ 52 _CRTIMP 53 int 54 __cdecl 55 _memicmp_l( 56 _In_reads_bytes_opt_(_Size) const void *_Buf1, 57 _In_reads_bytes_opt_(_Size) const void *_Buf2, 58 _In_ size_t _Size, 59 _In_opt_ _locale_t _Locale); 60 61 _Must_inspect_result_ 62 int 63 __cdecl 64 memcmp( 65 _In_reads_bytes_(_Size) const void *_Buf1, 66 _In_reads_bytes_(_Size) const void *_Buf2, 67 _In_ size_t _Size); 68 69 _Post_equal_to_(_Dst) 70 _At_buffer_((unsigned char*)_Dst, 71 _Iter_, 72 _MaxCount, 73 _Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == ((unsigned char*)_Src)[_Iter_])) 74 _CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s) 75 void* 76 __cdecl 77 memcpy( 78 _Out_writes_bytes_all_(_MaxCount) void *_Dst, 79 _In_reads_bytes_(_MaxCount) const void *_Src, 80 _In_ size_t _MaxCount); 81 82 _Post_equal_to_(_Dst) 83 _At_buffer_((unsigned char*)_Dst, 84 _Iter_, 85 _Size, 86 _Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == _Val)) 87 void* 88 __cdecl 89 memset( 90 _Out_writes_bytes_all_(_Size) void *_Dst, 91 _In_ int _Val, 92 _In_ size_t _Size); 93 94 #ifndef NO_OLDNAMES 95 96 _CRTIMP 97 _CRT_NONSTDC_DEPRECATE(_memccpy) 98 void* 99 __cdecl 100 memccpy( 101 _Out_writes_bytes_opt_(_Size) void *_Dst, 102 _In_reads_bytes_opt_(_Size) const void *_Src, 103 _In_ int _Val, 104 _In_ size_t _Size); 105 106 _Check_return_ 107 _CRTIMP 108 _CRT_NONSTDC_DEPRECATE(_memicmp) 109 int 110 __cdecl 111 memicmp( 112 _In_reads_bytes_opt_(_Size) const void *_Buf1, 113 _In_reads_bytes_opt_(_Size) const void *_Buf2, 114 _In_ size_t _Size); 115 116 #endif /* NO_OLDNAMES */ 117 118 #endif /* _CRT_MEMORY_DEFINED */ 119 120 char* 121 __cdecl 122 _strset( 123 _Inout_z_ char *_Str, 124 _In_ int _Val); 125 126 char* 127 __cdecl 128 strcpy( 129 _Out_writes_z_(_String_length_(_Source) + 1) char *_Dest, 130 _In_z_ const char *_Source); 131 132 char* 133 __cdecl 134 strcat( 135 _Inout_updates_z_(_String_length_(_Dest) + _String_length_(_Source) + 1) char *_Dest, 136 _In_z_ const char *_Source); 137 138 _Check_return_ 139 int 140 __cdecl 141 strcmp( 142 _In_z_ const char *_Str1, 143 _In_z_ const char *_Str2); 144 145 _CRTIMP 146 size_t 147 __cdecl 148 strlen( 149 _In_z_ const char *_Str); 150 151 _When_(_MaxCount > _String_length_(_Str), 152 _Post_satisfies_(return == _String_length_(_Str))) 153 _When_(_MaxCount <= _String_length_(_Str), 154 _Post_satisfies_(return == _MaxCount)) 155 _CRTIMP 156 size_t 157 __cdecl 158 strnlen( 159 _In_reads_or_z_(_MaxCount) const char *_Str, 160 _In_ size_t _MaxCount); 161 162 _CRT_INSECURE_DEPRECATE_MEMORY(memmove_s) 163 void* 164 __cdecl 165 memmove( 166 _Out_writes_bytes_all_opt_(_MaxCount) void *_Dst, 167 _In_reads_bytes_opt_(_MaxCount) const void *_Src, 168 _In_ size_t _MaxCount); 169 170 _Check_return_ 171 _CRTIMP 172 char* 173 __cdecl 174 _strdup( 175 _In_opt_z_ const char *_Src); 176 177 _Check_return_ 178 _CRTIMP 179 _CONST_RETURN 180 char* 181 __cdecl 182 strchr( 183 _In_z_ const char *_Str, 184 _In_ int _Val); 185 186 _Check_return_ 187 _CRTIMP 188 int 189 __cdecl 190 _stricmp( 191 _In_z_ const char *_Str1, 192 _In_z_ const char *_Str2); 193 194 _Check_return_ 195 _CRTIMP 196 int 197 __cdecl 198 _strcmpi( 199 _In_z_ const char *_Str1, 200 _In_z_ const char *_Str2); 201 202 _Check_return_ 203 _CRTIMP 204 int 205 __cdecl 206 _stricmp_l( 207 _In_z_ const char *_Str1, 208 _In_z_ const char *_Str2, 209 _In_opt_ _locale_t _Locale); 210 211 _Check_return_ 212 _CRTIMP 213 int 214 __cdecl 215 strcoll( 216 _In_z_ const char *_Str1, 217 _In_z_ const char *_Str2); 218 219 _Check_return_ 220 _CRTIMP 221 int 222 __cdecl 223 _strcoll_l( 224 _In_z_ const char *_Str1, 225 _In_z_ const char *_Str2, 226 _In_opt_ _locale_t _Locale); 227 228 _Check_return_ 229 _CRTIMP 230 int 231 __cdecl 232 _stricoll( 233 _In_z_ const char *_Str1, 234 _In_z_ const char *_Str2); 235 236 _Check_return_ 237 _CRTIMP 238 int 239 __cdecl 240 _stricoll_l( 241 _In_z_ const char *_Str1, 242 _In_z_ const char *_Str2, 243 _In_opt_ _locale_t _Locale); 244 245 _Check_return_ 246 _CRTIMP 247 int 248 __cdecl 249 _strncoll( 250 _In_z_ const char *_Str1, 251 _In_z_ const char *_Str2, 252 _In_ size_t _MaxCount); 253 254 _Check_return_ 255 _CRTIMP 256 int 257 __cdecl 258 _strncoll_l( 259 _In_z_ const char *_Str1, 260 _In_z_ const char *_Str2, 261 _In_ size_t _MaxCount, 262 _In_opt_ _locale_t _Locale); 263 264 _Check_return_ 265 _CRTIMP 266 int 267 __cdecl 268 _strnicoll( 269 _In_z_ const char *_Str1, 270 _In_z_ const char *_Str2, 271 _In_ size_t _MaxCount); 272 273 _Check_return_ 274 _CRTIMP 275 int 276 __cdecl 277 _strnicoll_l( 278 _In_z_ const char *_Str1, 279 _In_z_ const char *_Str2, 280 _In_ size_t _MaxCount, 281 _In_opt_ _locale_t _Locale); 282 283 _Check_return_ 284 _CRTIMP 285 size_t 286 __cdecl 287 strcspn( 288 _In_z_ const char *_Str, 289 _In_z_ const char *_Control); 290 291 _Check_return_ 292 _CRTIMP 293 _CRT_INSECURE_DEPRECATE(_strerror_s) 294 char* 295 __cdecl 296 _strerror( 297 _In_opt_z_ const char *_ErrMsg); 298 299 _Check_return_ 300 _CRTIMP 301 _CRT_INSECURE_DEPRECATE(strerror_s) 302 char* 303 __cdecl 304 strerror( 305 _In_ int); 306 307 _CRTIMP 308 char* 309 __cdecl 310 _strlwr( 311 _Inout_z_ char *_String); 312 313 char* 314 strlwr_l( 315 char *_String, 316 _locale_t _Locale); 317 318 char* 319 __cdecl 320 strncat( 321 char *_Dest, 322 const char *_Source, 323 size_t _Count); 324 325 _Check_return_ 326 int 327 __cdecl 328 strncmp( 329 _In_reads_or_z_(_MaxCount) const char *_Str1, 330 _In_reads_or_z_(_MaxCount) const char *_Str2, 331 _In_ size_t _MaxCount); 332 333 _Check_return_ 334 _CRTIMP 335 int 336 __cdecl 337 _strnicmp( 338 _In_reads_or_z_(_MaxCount) const char *_Str1, 339 _In_reads_or_z_(_MaxCount) const char *_Str2, 340 _In_ size_t _MaxCount); 341 342 _Check_return_ 343 _CRTIMP 344 int 345 __cdecl 346 _strnicmp_l( 347 _In_reads_or_z_(_MaxCount) const char *_Str1, 348 _In_reads_or_z_(_MaxCount) const char *_Str2, 349 _In_ size_t _MaxCount, 350 _In_opt_ _locale_t _Locale); 351 352 char* 353 __cdecl 354 strncpy( 355 char *_Dest, 356 const char *_Source, 357 size_t _Count); 358 359 _CRTIMP 360 _CRT_INSECURE_DEPRECATE_CORE(_strnset_s) 361 char* 362 __cdecl 363 _strnset( 364 char *_Str, 365 int _Val, 366 size_t _MaxCount); 367 368 _Check_return_ 369 _CRTIMP 370 _CONST_RETURN 371 char* 372 __cdecl 373 strpbrk( 374 _In_z_ const char *_Str, 375 _In_z_ const char *_Control); 376 377 _Check_return_ 378 _CRTIMP 379 _CONST_RETURN 380 char* 381 __cdecl 382 strrchr( 383 _In_z_ const char *_Str, 384 _In_ int _Ch); 385 386 _CRTIMP 387 char* 388 __cdecl 389 _strrev( 390 _Inout_z_ char *_Str); 391 392 _Check_return_ 393 _CRTIMP 394 size_t 395 __cdecl 396 strspn( 397 _In_z_ const char *_Str, 398 _In_z_ const char *_Control); 399 400 _Check_return_ 401 _CRTIMP 402 _CONST_RETURN 403 char* 404 __cdecl 405 strstr( 406 _In_z_ const char *_Str, 407 _In_z_ const char *_SubStr); 408 409 _Check_return_ 410 _CRTIMP 411 _CRT_INSECURE_DEPRECATE_CORE(strtok_s) 412 char* 413 __cdecl 414 strtok( 415 _Inout_opt_z_ char *_Str, 416 _In_z_ const char *_Delim); 417 418 _CRTIMP 419 char* 420 __cdecl 421 _strupr( 422 _Inout_z_ char *_String); 423 424 _CRTIMP 425 char* 426 _strupr_l( 427 char *_String, 428 _locale_t _Locale); 429 430 _Check_return_opt_ 431 _CRTIMP 432 size_t 433 __cdecl 434 strxfrm( 435 _Out_writes_opt_(_MaxCount) _Post_maybez_ char *_Dst, 436 _In_z_ const char *_Src, 437 _In_ size_t _MaxCount); 438 439 _Check_return_opt_ 440 _CRTIMP 441 size_t 442 __cdecl 443 _strxfrm_l( 444 _Out_writes_opt_(_MaxCount) _Post_maybez_ char *_Dst, 445 _In_z_ const char *_Src, 446 _In_ size_t _MaxCount, 447 _In_opt_ _locale_t _Locale); 448 449 #if __STDC_WANT_SECURE_LIB__ 450 451 _Check_return_wat_ 452 _CRTIMP 453 errno_t 454 __cdecl 455 _strset_s( 456 _Inout_updates_z_(_DstSize) char *_Dst, 457 _In_ size_t _DstSize, 458 _In_ int _Value); 459 460 _Check_return_wat_ 461 _CRTIMP 462 errno_t 463 __cdecl 464 _strerror_s( 465 _Out_writes_z_(_SizeInBytes) char *_Buf, 466 _In_ size_t _SizeInBytes, 467 _In_opt_z_ const char *_ErrMsg); 468 469 _Check_return_wat_ 470 _CRTIMP 471 errno_t 472 __cdecl 473 _strlwr_s( 474 _Inout_updates_z_(_Size) char *_Str, 475 _In_ size_t _Size); 476 477 _Check_return_wat_ 478 _CRTIMP 479 errno_t 480 __cdecl 481 _strlwr_s_l( 482 _Inout_updates_z_(_Size) char *_Str, 483 _In_ size_t _Size, 484 _In_opt_ _locale_t _Locale); 485 486 _Check_return_wat_ 487 _CRTIMP 488 errno_t 489 __cdecl 490 _strnset_s( 491 _Inout_updates_z_(_Size) char *_Str, 492 _In_ size_t _Size, 493 _In_ int _Val, 494 _In_ size_t _MaxCount); 495 496 _Check_return_wat_ 497 _CRTIMP 498 errno_t 499 __cdecl 500 _strupr_s( 501 _Inout_updates_z_(_Size) char *_Str, 502 _In_ size_t _Size); 503 504 _Check_return_wat_ 505 _CRTIMP 506 errno_t 507 __cdecl 508 _strupr_s_l( 509 _Inout_updates_z_(_Size) char *_Str, 510 _In_ size_t _Size, 511 _locale_t _Locale); 512 513 _Check_return_wat_ 514 _CRTIMP 515 errno_t 516 __cdecl 517 strcpy_s( 518 _Out_writes_z_(_Size) char *_Dst, 519 _In_ size_t _Size, 520 _In_z_ const char *_Src); 521 522 _Check_return_wat_ 523 _CRTIMP 524 errno_t 525 __cdecl 526 strcat_s( 527 _Inout_updates_z_(_Size) char *_Dst, 528 _In_ size_t _Size, 529 _In_z_ const char *_Src); 530 531 #endif /* __STDC_WANT_SECURE_LIB__ */ 532 533 #ifndef NO_OLDNAMES 534 535 _Check_return_ 536 _CRTIMP 537 _CRT_NONSTDC_DEPRECATE(_strdup) 538 char* 539 __cdecl 540 strdup( 541 _In_opt_z_ const char *_Src); 542 543 _Check_return_ 544 _CRTIMP 545 _CRT_NONSTDC_DEPRECATE(_strcmpi) 546 int 547 __cdecl 548 strcmpi( 549 _In_z_ const char *_Str1, 550 _In_z_ const char *_Str2); 551 552 _Check_return_ 553 _CRTIMP 554 _CRT_NONSTDC_DEPRECATE(_stricmp) 555 int 556 __cdecl 557 stricmp( 558 _In_z_ const char *_Str1, 559 _In_z_ const char *_Str2); 560 561 _CRTIMP 562 _CRT_NONSTDC_DEPRECATE(_strlwr) 563 char* 564 __cdecl 565 strlwr( 566 _Inout_z_ char *_Str); 567 568 _Check_return_ 569 _CRTIMP 570 _CRT_NONSTDC_DEPRECATE(_strnicmp) 571 int 572 __cdecl 573 strnicmp( 574 _In_z_ const char *_Str1, 575 _In_z_ const char *_Str, 576 _In_ size_t _MaxCount); 577 578 // __CRT_INLINE int __cdecl strncasecmp (const char *__sz1, const char *__sz2, size_t __sizeMaxCompare) { return _strnicmp (__sz1, __sz2, __sizeMaxCompare); } 579 // __CRT_INLINE int __cdecl strcasecmp (const char *__sz1, const char *__sz2) { return _stricmp (__sz1, __sz2); } 580 581 _CRTIMP 582 _CRT_NONSTDC_DEPRECATE(_strnset) 583 char* 584 __cdecl 585 strnset( 586 _Inout_updates_z_(_MaxCount) char *_Str, 587 _In_ int _Val, 588 _In_ size_t _MaxCount); 589 590 _CRTIMP 591 _CRT_NONSTDC_DEPRECATE(_strrev) 592 char* 593 __cdecl 594 strrev( 595 _Inout_z_ char *_Str); 596 597 _CRTIMP 598 _CRT_NONSTDC_DEPRECATE(_strset) 599 char* 600 __cdecl 601 strset( 602 _Inout_z_ char *_Str, 603 _In_ int _Val); 604 605 _CRTIMP 606 _CRT_NONSTDC_DEPRECATE(_strupr) 607 char* 608 __cdecl 609 strupr( 610 _Inout_z_ char *_Str); 611 612 #endif /* NO_OLDNAMES */ 613 614 #ifndef _WSTRING_DEFINED 615 #define _WSTRING_DEFINED 616 617 _Check_return_ 618 _CRTIMP 619 wchar_t* 620 __cdecl 621 _wcsdup( 622 _In_z_ const wchar_t *_Str); 623 624 _CRTIMP 625 _CRT_INSECURE_DEPRECATE(wcsat_s) 626 wchar_t* 627 __cdecl 628 wcscat( 629 _Inout_updates_z_(_String_length_(_Dest) + _String_length_(_Source) + 1) wchar_t *_Dest, 630 _In_z_ const wchar_t *_Source); 631 632 _Check_return_ 633 _When_(return != 0, _Ret_range_(_Str, _Str + _String_length_(_Str) - 1)) 634 _CRTIMP 635 _CONST_RETURN 636 wchar_t* 637 __cdecl 638 wcschr( 639 _In_z_ const wchar_t *_Str, 640 wchar_t _Ch); 641 642 _Check_return_ 643 _CRTIMP 644 int 645 __cdecl 646 wcscmp( 647 _In_z_ const wchar_t *_Str1, 648 _In_z_ const wchar_t *_Str2); 649 650 _CRTIMP 651 _CRT_INSECURE_DEPRECATE(wcscpy_s) 652 wchar_t* 653 __cdecl 654 wcscpy( 655 _Out_writes_z_(_String_length_(_Source) + 1) wchar_t *_Dest, 656 _In_z_ const wchar_t *_Source); 657 658 _Check_return_ 659 _CRTIMP 660 size_t 661 __cdecl 662 wcscspn( 663 _In_z_ const wchar_t *_Str, 664 _In_z_ const wchar_t *_Control); 665 666 _CRTIMP 667 wchar_t* 668 __cdecl 669 wcsncat( 670 wchar_t *_Dest, 671 const wchar_t *_Source, 672 size_t _Count); 673 674 _Ret_range_(==,_String_length_(_Str)) 675 _CRTIMP 676 size_t 677 __cdecl 678 wcslen( 679 _In_z_ const wchar_t *_Str); 680 681 _When_(_MaxCount > _String_length_(_Src), 682 _Post_satisfies_(return == _String_length_(_Src))) 683 _When_(_MaxCount <= _String_length_(_Src), 684 _Post_satisfies_(return == _MaxCount)) 685 _CRTIMP 686 _CRT_INSECURE_DEPRECATE(wcsnlen_s) 687 size_t 688 __cdecl 689 wcsnlen( 690 _In_reads_or_z_(_MaxCount) const wchar_t *_Src, 691 _In_ size_t _MaxCount); 692 693 _Check_return_ 694 _CRTIMP 695 int 696 __cdecl 697 wcsncmp( 698 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 699 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 700 _In_ size_t _MaxCount); 701 702 _CRTIMP 703 _CRT_INSECURE_DEPRECATE(wcsncpy_s) 704 wchar_t* 705 __cdecl 706 wcsncpy( 707 wchar_t *_Dest, 708 const wchar_t *_Source, 709 size_t _Count); 710 711 _Check_return_ 712 _CRTIMP 713 _CONST_RETURN 714 wchar_t* 715 __cdecl 716 wcspbrk( 717 _In_z_ const wchar_t *_Str, 718 _In_z_ const wchar_t *_Control); 719 720 _Check_return_ 721 _CRTIMP 722 _CONST_RETURN 723 wchar_t* 724 __cdecl 725 wcsrchr( 726 _In_z_ const wchar_t *_Str, 727 _In_ wchar_t _Ch); 728 729 _Check_return_ 730 _CRTIMP 731 size_t 732 __cdecl 733 wcsspn( 734 _In_z_ const wchar_t *_Str, 735 _In_z_ const wchar_t *_Control); 736 737 _When_(return != 0, 738 _Ret_range_(_Str, _Str + _String_length_(_Str) - 1)) 739 _CRTIMP 740 _CONST_RETURN 741 wchar_t* 742 __cdecl 743 wcsstr( 744 _In_z_ const wchar_t *_Str, 745 _In_z_ const wchar_t *_SubStr); 746 747 _Check_return_ 748 _CRTIMP 749 _CRT_INSECURE_DEPRECATE_CORE(wcstok_s) 750 wchar_t* 751 __cdecl 752 wcstok( 753 _Inout_opt_z_ wchar_t *_Str, 754 _In_z_ const wchar_t *_Delim); 755 756 _Check_return_ 757 _CRTIMP 758 _CRT_INSECURE_DEPRECATE(_wcserror_s) 759 wchar_t* 760 __cdecl 761 _wcserror( 762 _In_ int _ErrNum); 763 764 _Check_return_ 765 _CRTIMP 766 _CRT_INSECURE_DEPRECATE(__wcserror_s) 767 wchar_t* 768 __cdecl 769 __wcserror( 770 _In_opt_z_ const wchar_t *_Str); 771 772 _Check_return_ 773 _CRTIMP 774 int 775 __cdecl 776 _wcsicmp( 777 _In_z_ const wchar_t *_Str1, 778 _In_z_ const wchar_t *_Str2); 779 780 _Check_return_ 781 _CRTIMP 782 int 783 __cdecl 784 _wcsicmp_l( 785 _In_z_ const wchar_t *_Str1, 786 _In_z_ const wchar_t *_Str2, 787 _In_opt_ _locale_t _Locale); 788 789 _Check_return_ 790 _CRTIMP 791 int 792 __cdecl 793 _wcsnicmp( 794 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 795 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 796 _In_ size_t _MaxCount); 797 798 _Check_return_ 799 _CRTIMP 800 int 801 __cdecl 802 _wcsnicmp_l( 803 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 804 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 805 _In_ size_t _MaxCount, 806 _In_opt_ _locale_t _Locale); 807 808 _CRTIMP 809 _CRT_INSECURE_DEPRECATE_CORE(_wcsnset_s) 810 wchar_t* 811 __cdecl 812 _wcsnset( 813 wchar_t *_Str, 814 wchar_t _Val, 815 size_t _MaxCount); 816 817 _CRTIMP 818 wchar_t* 819 __cdecl 820 _wcsrev( 821 _Inout_z_ wchar_t *_Str); 822 823 _CRTIMP 824 _CRT_INSECURE_DEPRECATE_CORE(_wcsset_s) 825 wchar_t* 826 __cdecl 827 _wcsset( 828 wchar_t *_Str, 829 wchar_t _Val); 830 831 _CRTIMP 832 wchar_t* 833 __cdecl 834 _wcslwr( 835 _Inout_z_ wchar_t *_String); 836 837 _CRTIMP 838 wchar_t* 839 _wcslwr_l( 840 wchar_t *_String, 841 _locale_t _Locale); 842 843 _CRTIMP 844 wchar_t* 845 __cdecl 846 _wcsupr( 847 _Inout_z_ wchar_t *_String); 848 849 _CRTIMP 850 wchar_t* 851 _wcsupr_l( 852 wchar_t *_String, 853 _locale_t _Locale); 854 855 _Check_return_opt_ 856 _CRTIMP 857 size_t 858 __cdecl 859 wcsxfrm( 860 _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t *_Dst, 861 _In_z_ const wchar_t *_Src, 862 _In_ size_t _MaxCount); 863 864 _Check_return_opt_ 865 _CRTIMP 866 size_t 867 __cdecl 868 _wcsxfrm_l( 869 _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t *_Dst, 870 _In_z_ const wchar_t *_Src, 871 _In_ size_t _MaxCount, 872 _In_opt_ _locale_t _Locale); 873 874 _Check_return_ 875 _CRTIMP 876 int 877 __cdecl 878 wcscoll( 879 _In_z_ const wchar_t *_Str1, 880 _In_z_ const wchar_t *_Str2); 881 882 _Check_return_ 883 _CRTIMP 884 int 885 __cdecl 886 _wcscoll_l( 887 _In_z_ const wchar_t *_Str1, 888 _In_z_ const wchar_t *_Str2, 889 _In_opt_ _locale_t _Locale); 890 891 _Check_return_ 892 _CRTIMP 893 int 894 __cdecl 895 _wcsicoll( 896 _In_z_ const wchar_t *_Str1, 897 _In_z_ const wchar_t *_Str2); 898 899 _Check_return_ 900 _CRTIMP 901 int 902 __cdecl 903 _wcsicoll_l( 904 _In_z_ const wchar_t *_Str1, 905 _In_z_ const wchar_t *_Str2, 906 _In_opt_ _locale_t _Locale); 907 908 _Check_return_ 909 _CRTIMP 910 int 911 __cdecl 912 _wcsncoll( 913 _In_z_ const wchar_t *_Str1, 914 _In_z_ const wchar_t *_Str2, 915 _In_ size_t _MaxCount); 916 917 _Check_return_ 918 _CRTIMP 919 int 920 __cdecl 921 _wcsncoll_l( 922 _In_z_ const wchar_t *_Str1, 923 _In_z_ const wchar_t *_Str2, 924 _In_ size_t _MaxCount, 925 _In_opt_ _locale_t _Locale); 926 927 _Check_return_ 928 _CRTIMP 929 int 930 __cdecl 931 _wcsnicoll( 932 _In_z_ const wchar_t *_Str1, 933 _In_z_ const wchar_t *_Str2, 934 _In_ size_t _MaxCount); 935 936 _Check_return_ 937 _CRTIMP 938 int 939 __cdecl 940 _wcsnicoll_l( 941 _In_z_ const wchar_t *_Str1, 942 _In_z_ const wchar_t *_Str2, 943 _In_ size_t _MaxCount, 944 _In_opt_ _locale_t _Locale); 945 946 #if __STDC_WANT_SECURE_LIB__ 947 948 _CRTIMP 949 errno_t 950 __cdecl 951 wcsat_s( 952 wchar_t *Dest, 953 size_t SizeInWords, 954 const wchar_t *_Source); 955 956 _Check_return_wat_ 957 _CRTIMP 958 errno_t 959 __cdecl 960 wcscpy_s( 961 _Out_writes_z_(SizeInWords) wchar_t *Dest, 962 _In_ size_t SizeInWords, 963 _In_z_ const wchar_t *_Source); 964 965 _CRTIMP 966 errno_t 967 __cdecl 968 wcsnlen_s( 969 wchar_t **_Src, 970 size_t _MaxCount); 971 972 _Check_return_wat_ 973 _CRTIMP 974 errno_t 975 __cdecl 976 wcsncpy_s( 977 _Out_writes_z_(_DstSizeInChars) wchar_t *_Dst, 978 _In_ size_t _DstSizeInChars, 979 _In_z_ const wchar_t *_Src, 980 _In_ size_t _MaxCount); 981 982 _Check_return_wat_ 983 _CRTIMP 984 errno_t 985 __cdecl 986 _wcserror_s( 987 _Out_writes_opt_z_(_SizeInWords) wchar_t *_Buf, 988 _In_ size_t _SizeInWords, 989 _In_ int _ErrNum); 990 991 _Check_return_wat_ 992 _CRTIMP 993 errno_t 994 __cdecl 995 __wcserror_s( 996 _Out_writes_opt_z_(_SizeInWords) wchar_t *_Buffer, 997 _In_ size_t _SizeInWords, 998 _In_z_ const wchar_t *_ErrMsg); 999 1000 _Check_return_wat_ 1001 _CRTIMP 1002 errno_t 1003 __cdecl 1004 _wcsnset_s( 1005 _Inout_updates_z_(_DstSizeInWords) wchar_t *_Dst, 1006 _In_ size_t _DstSizeInWords, 1007 _In_ wchar_t _Val, 1008 _In_ size_t _MaxCount); 1009 1010 _Check_return_wat_ 1011 _CRTIMP 1012 errno_t 1013 __cdecl 1014 _wcsset_s( 1015 _Inout_updates_z_(_SizeInWords) wchar_t *_Str, 1016 _In_ size_t _SizeInWords, 1017 _In_ wchar_t _Val); 1018 1019 _Check_return_wat_ 1020 _CRTIMP 1021 errno_t 1022 __cdecl 1023 _wcslwr_s( 1024 _Inout_updates_z_(_SizeInWords) wchar_t *_Str, 1025 _In_ size_t _SizeInWords); 1026 1027 _Check_return_wat_ 1028 _CRTIMP 1029 errno_t 1030 __cdecl 1031 _wcslwr_s_l( 1032 _Inout_updates_z_(_SizeInWords) wchar_t *_Str, 1033 _In_ size_t _SizeInWords, 1034 _In_opt_ _locale_t _Locale); 1035 1036 _Check_return_wat_ 1037 _CRTIMP 1038 errno_t 1039 __cdecl 1040 _wcsupr_s( 1041 _Inout_updates_z_(_Size) wchar_t *_Str, 1042 _In_ size_t _Size); 1043 1044 _Check_return_wat_ 1045 _CRTIMP 1046 errno_t 1047 __cdecl 1048 _wcsupr_s_l( 1049 _Inout_updates_z_(_Size) wchar_t *_Str, 1050 _In_ size_t _Size, 1051 _In_opt_ _locale_t _Locale); 1052 1053 #endif /* __STDC_WANT_SECURE_LIB__ */ 1054 1055 #ifndef NO_OLDNAMES 1056 1057 _Check_return_ 1058 _CRTIMP 1059 _CRT_NONSTDC_DEPRECATE(_wcsdup) 1060 wchar_t* 1061 __cdecl 1062 wcsdup( 1063 _In_z_ const wchar_t *_Str); 1064 1065 #define wcswcs wcsstr 1066 1067 _Check_return_ 1068 _CRTIMP 1069 _CRT_NONSTDC_DEPRECATE(_wcsicmp) 1070 int 1071 __cdecl 1072 wcsicmp( 1073 _In_z_ const wchar_t *_Str1, 1074 _In_z_ const wchar_t *_Str2); 1075 1076 _Check_return_ 1077 _CRTIMP 1078 _CRT_NONSTDC_DEPRECATE(_wcsnicmp) 1079 int 1080 __cdecl 1081 wcsnicmp( 1082 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 1083 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 1084 _In_ size_t _MaxCount); 1085 1086 _CRTIMP 1087 _CRT_NONSTDC_DEPRECATE(_wcsnset) 1088 wchar_t* 1089 __cdecl 1090 wcsnset( 1091 _Inout_updates_z_(_MaxCount) wchar_t *_Str, 1092 _In_ wchar_t _Val, 1093 _In_ size_t _MaxCount); 1094 1095 _CRTIMP 1096 _CRT_NONSTDC_DEPRECATE(_wcsrev) 1097 wchar_t* 1098 __cdecl 1099 wcsrev( 1100 _Inout_z_ wchar_t *_Str); 1101 1102 _CRTIMP 1103 _CRT_NONSTDC_DEPRECATE(_wcsset) 1104 wchar_t* 1105 __cdecl 1106 wcsset( 1107 _Inout_z_ wchar_t *_Str, 1108 wchar_t _Val); 1109 1110 _CRTIMP 1111 _CRT_NONSTDC_DEPRECATE(_wcslwr) 1112 wchar_t* 1113 __cdecl 1114 wcslwr( 1115 _Inout_z_ wchar_t *_Str); 1116 1117 _CRTIMP 1118 _CRT_NONSTDC_DEPRECATE(_wcsupr) 1119 wchar_t* 1120 __cdecl 1121 wcsupr( 1122 _Inout_z_ wchar_t *_Str); 1123 1124 _Check_return_ 1125 _CRTIMP 1126 _CRT_NONSTDC_DEPRECATE(_wcsicoll) 1127 int 1128 __cdecl 1129 wcsicoll( 1130 _In_z_ const wchar_t *_Str1, 1131 _In_z_ const wchar_t *_Str2); 1132 1133 #endif /* NO_OLDNAMES */ 1134 1135 #endif /* !_WSTRING_DEFINED */ 1136 1137 #ifdef __cplusplus 1138 } 1139 #endif 1140 1141 // HACK 1142 #define strcasecmp _stricmp 1143 #define strncasecmp _strnicmp 1144 #define stricmp _stricmp 1145 #define wcsicmp _wcsicmp 1146 1147 #include <sec_api/string_s.h> 1148 #endif 1149