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