STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
tchar.h
Go to the documentation of this file.
1 /***
2 *tchar.h - definitions for generic international text functions
3 *
4 * Copyright (c) Microsoft Corporation. All rights reserved.
5 *
6 *Purpose:
7 * Definitions for generic international functions, mostly defines
8 * which map string/formatted-io/ctype functions to char, wchar_t, or
9 * MBCS versions. To be used for compatibility between single-byte,
10 * multi-byte and Unicode text models.
11 *
12 * [Public]
13 *
14 ****/
15 
16 #pragma once
17 
18 #include <crtdefs.h>
19 
20 #ifndef _INC_TCHAR
21 #define _INC_TCHAR
22 
23 #ifdef _STRSAFE_H_INCLUDED_
24 #error Need to include strsafe.h after tchar.h
25 #endif /* _STRSAFE_H_INCLUDED_ */
26 
27 #pragma warning(disable:4514) /* disable unwanted C++ /W4 warning */
28 /* #pragma warning(default:4514) */ /* use this to reenable, if necessary */
29 
30 /* Notes */
31 
32 /* There is no:
33  * _tcscat_l
34  * _tcscpy_l
35  * because mbscat and mbscpy just behave like strcat and strcpy,
36  * so no special locale-specific behavior is needed.
37  */
38 
39 /* Functions like:
40  * _strncat_l
41  * _strncat_s_l
42  * are only available if ANSI is defined (i.e. no _UNICODE nor _MBCS),
43  * because these functions are only accessible through the _tcs macros.
44  */
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif /* __cplusplus */
49 
50 #ifndef _CRT_FAR_MAPPINGS_NO_DEPRECATE
51 /*
52 Long ago, these f prefix text functions referred to handling of text in segmented architectures. Ever since the move
53 to Win32 they have been obsolete names, but we kept them around as aliases. Now that we have a deprecation
54 mechanism we can warn about them. You should switch to the identical function without the f prefix.
55 */
56 #pragma deprecated("_ftcscat")
57 #pragma deprecated("_ftcschr")
58 #pragma deprecated("_ftcscpy")
59 #pragma deprecated("_ftcscspn")
60 #pragma deprecated("_ftcslen")
61 #pragma deprecated("_ftcsncat")
62 #pragma deprecated("_ftcsncpy")
63 #pragma deprecated("_ftcspbrk")
64 #pragma deprecated("_ftcsrchr")
65 #pragma deprecated("_ftcsspn")
66 #pragma deprecated("_ftcsstr")
67 #pragma deprecated("_ftcstok")
68 #pragma deprecated("_ftcsdup")
69 #pragma deprecated("_ftcsnset")
70 #pragma deprecated("_ftcsrev")
71 #pragma deprecated("_ftcsset")
72 #pragma deprecated("_ftcscmp")
73 #pragma deprecated("_ftcsicmp")
74 #pragma deprecated("_ftcsnccmp")
75 #pragma deprecated("_ftcsncmp")
76 #pragma deprecated("_ftcsncicmp")
77 #pragma deprecated("_ftcsnicmp")
78 #pragma deprecated("_ftcscoll")
79 #pragma deprecated("_ftcsicoll")
80 #pragma deprecated("_ftcsnccoll")
81 #pragma deprecated("_ftcsncoll")
82 #pragma deprecated("_ftcsncicoll")
83 #pragma deprecated("_ftcsnicoll")
84 #pragma deprecated("_ftcsclen")
85 #pragma deprecated("_ftcsnccat")
86 #pragma deprecated("_ftcsnccpy")
87 #pragma deprecated("_ftcsncset")
88 #pragma deprecated("_ftcsdec")
89 #pragma deprecated("_ftcsinc")
90 #pragma deprecated("_ftcsnbcnt")
91 #pragma deprecated("_ftcsnccnt")
92 #pragma deprecated("_ftcsnextc")
93 #pragma deprecated("_ftcsninc")
94 #pragma deprecated("_ftcsspnp")
95 #pragma deprecated("_ftcslwr")
96 #pragma deprecated("_ftcsupr")
97 #pragma deprecated("_ftclen")
98 #pragma deprecated("_ftccpy")
99 #pragma deprecated("_ftccmp")
100 #endif /* _CRT_FAR_MAPPINGS_NO_DEPRECATE */
101 
102 #define _ftcscat _tcscat
103 #define _ftcschr _tcschr
104 #define _ftcscpy _tcscpy
105 #define _ftcscspn _tcscspn
106 #define _ftcslen _tcslen
107 #define _ftcsncat _tcsncat
108 #define _ftcsncpy _tcsncpy
109 #define _ftcspbrk _tcspbrk
110 #define _ftcsrchr _tcsrchr
111 #define _ftcsspn _tcsspn
112 #define _ftcsstr _tcsstr
113 #define _ftcstok _tcstok
114 
115 #define _ftcsdup _tcsdup
116 #define _ftcsnset _tcsnset
117 #define _ftcsrev _tcsrev
118 #define _ftcsset _tcsset
119 
120 #define _ftcscmp _tcscmp
121 #define _ftcsicmp _tcsicmp
122 #define _ftcsnccmp _tcsnccmp
123 #define _ftcsncmp _tcsncmp
124 #define _ftcsncicmp _tcsncicmp
125 #define _ftcsnicmp _tcsnicmp
126 
127 #define _ftcscoll _tcscoll
128 #define _ftcsicoll _tcsicoll
129 #define _ftcsnccoll _tcsnccoll
130 #define _ftcsncoll _tcsncoll
131 #define _ftcsncicoll _tcsncicoll
132 #define _ftcsnicoll _tcsnicoll
133 
134 /* Redundant "logical-character" mappings */
135 
136 #define _ftcsclen _tcsclen
137 #define _ftcsnccat _tcsnccat
138 #define _ftcsnccpy _tcsnccpy
139 #define _ftcsncset _tcsncset
140 
141 #define _ftcsdec _tcsdec
142 #define _ftcsinc _tcsinc
143 #define _ftcsnbcnt _tcsnbcnt
144 #define _ftcsnccnt _tcsnccnt
145 #define _ftcsnextc _tcsnextc
146 #define _ftcsninc _tcsninc
147 #define _ftcsspnp _tcsspnp
148 
149 #define _ftcslwr _tcslwr
150 #define _ftcsupr _tcsupr
151 
152 #define _ftclen _tclen
153 #define _ftccpy _tccpy
154 #define _ftccmp _tccmp
155 
156 #ifndef _CONST_RETURN
157 #ifdef __cplusplus
158 #define _CONST_RETURN const
159 #define _CRT_CONST_CORRECT_OVERLOADS
160 #else /* __cplusplus */
161 #define _CONST_RETURN
162 #endif /* __cplusplus */
163 #endif /* _CONST_RETURN */
164 
165 /* For backwards compatibility */
166 #define _WConst_return _CONST_RETURN
167 
168 #ifdef _UNICODE
169 
170 #ifdef __cplusplus
171 } /* ... extern "C" */
172 #endif /* __cplusplus */
173 
174 /* ++++++++++++++++++++ UNICODE ++++++++++++++++++++ */
175 
176 #include <wchar.h>
177 
178 #ifdef __cplusplus
179 extern "C" {
180 #endif /* __cplusplus */
181 
182 #ifndef _WCTYPE_T_DEFINED
183 typedef unsigned short wint_t;
184 typedef unsigned short wctype_t;
185 #define _WCTYPE_T_DEFINED
186 #endif /* _WCTYPE_T_DEFINED */
187 
188 #ifndef __TCHAR_DEFINED
189 typedef wchar_t _TCHAR;
190 typedef wchar_t _TSCHAR;
191 typedef wchar_t _TUCHAR;
192 typedef wchar_t _TXCHAR;
193 typedef wint_t _TINT;
194 #define __TCHAR_DEFINED
195 #endif /* __TCHAR_DEFINED */
196 
197 #ifndef _TCHAR_DEFINED
198 #if !__STDC__
199 typedef wchar_t TCHAR;
200 #endif /* !__STDC__ */
201 #define _TCHAR_DEFINED
202 #endif /* _TCHAR_DEFINED */
203 
204 #define _TEOF WEOF
205 
206 #define __T(x) L ## x
207 
208 
209 /* Program */
210 
211 #define _tmain wmain
212 #define _tWinMain wWinMain
213 #define _tenviron _wenviron
214 #define __targv __wargv
215 
216 /* Formatted i/o */
217 
218 #define _tprintf wprintf
219 #define _tprintf_l _wprintf_l
220 #define _tprintf_s wprintf_s
221 #define _tprintf_s_l _wprintf_s_l
222 #define _tprintf_p _wprintf_p
223 #define _tprintf_p_l _wprintf_p_l
224 #define _tcprintf _cwprintf
225 #define _tcprintf_l _cwprintf_l
226 #define _tcprintf_s _cwprintf_s
227 #define _tcprintf_s_l _cwprintf_s_l
228 #define _tcprintf_p _cwprintf_p
229 #define _tcprintf_p_l _cwprintf_p_l
230 #define _vtcprintf _vcwprintf
231 #define _vtcprintf_l _vcwprintf_l
232 #define _vtcprintf_s _vcwprintf_s
233 #define _vtcprintf_s_l _vcwprintf_s_l
234 #define _vtcprintf_p _vcwprintf_p
235 #define _vtcprintf_p_l _vcwprintf_p_l
236 #define _ftprintf fwprintf
237 #define _ftprintf_l _fwprintf_l
238 #define _ftprintf_s fwprintf_s
239 #define _ftprintf_s_l _fwprintf_s_l
240 #define _ftprintf_p _fwprintf_p
241 #define _ftprintf_p_l _fwprintf_p_l
242 #define _stprintf _swprintf
243 #define _stprintf_l __swprintf_l
244 #define _stprintf_s swprintf_s
245 #define _stprintf_s_l _swprintf_s_l
246 #define _stprintf_p _swprintf_p
247 #define _stprintf_p_l _swprintf_p_l
248 #define _sctprintf _scwprintf
249 #define _sctprintf_l _scwprintf_l
250 #define _sctprintf_p _scwprintf_p
251 #define _sctprintf_p_l _scwprintf_p_l
252 #define _sntprintf _snwprintf
253 #define _sntprintf_l _snwprintf_l
254 #define _sntprintf_s _snwprintf_s
255 #define _sntprintf_s_l _snwprintf_s_l
256 #define _vtprintf vwprintf
257 #define _vtprintf_l _vwprintf_l
258 #define _vtprintf_s vwprintf_s
259 #define _vtprintf_s_l _vwprintf_s_l
260 #define _vtprintf_p _vwprintf_p
261 #define _vtprintf_p_l _vwprintf_p_l
262 #define _vftprintf vfwprintf
263 #define _vftprintf_l _vfwprintf_l
264 #define _vftprintf_s vfwprintf_s
265 #define _vftprintf_s_l _vfwprintf_s_l
266 #define _vftprintf_p _vfwprintf_p
267 #define _vftprintf_p_l _vfwprintf_p_l
268 #define _vstprintf vswprintf
269 #define _vstprintf_l _vswprintf_l
270 #define _vstprintf_s vswprintf_s
271 #define _vstprintf_s_l _vswprintf_s_l
272 #define _vstprintf_p _vswprintf_p
273 #define _vstprintf_p_l _vswprintf_p_l
274 #define _vsctprintf _vscwprintf
275 #define _vsctprintf_l _vscwprintf_l
276 #define _vsctprintf_p _vscwprintf_p
277 #define _vsctprintf_p_l _vscwprintf_p_l
278 #define _vsntprintf _vsnwprintf
279 #define _vsntprintf_l _vsnwprintf_l
280 #define _vsntprintf_s _vsnwprintf_s
281 #define _vsntprintf_s_l _vsnwprintf_s_l
282 
283 #define _tscanf wscanf
284 #define _tscanf_l _wscanf_l
285 #define _tscanf_s wscanf_s
286 #define _tscanf_s_l _wscanf_s_l
287 #define _tcscanf _cwscanf
288 #define _tcscanf_l _cwscanf_l
289 #define _tcscanf_s _cwscanf_s
290 #define _tcscanf_s_l _cwscanf_s_l
291 #define _ftscanf fwscanf
292 #define _ftscanf_l _fwscanf_l
293 #define _ftscanf_s fwscanf_s
294 #define _ftscanf_s_l _fwscanf_s_l
295 #define _stscanf swscanf
296 #define _stscanf_l _swscanf_l
297 #define _stscanf_s swscanf_s
298 #define _stscanf_s_l _swscanf_s_l
299 #define _sntscanf _snwscanf
300 #define _sntscanf_l _snwscanf_l
301 #define _sntscanf_s _snwscanf_s
302 #define _sntscanf_s_l _snwscanf_s_l
303 #define _vtscanf vwscanf
304 #define _vtscanf_s vwscanf_s
305 #define _vftscanf vfwscanf
306 #define _vftscanf_s vfwscanf_s
307 #define _vstscanf vswscanf
308 #define _vstscanf_s vswscanf_s
309 
310 
311 /* Unformatted i/o */
312 
313 #define _fgettc fgetwc
314 #define _fgettc_nolock _fgetwc_nolock
315 #define _fgettchar _fgetwchar
316 #define _fgetts fgetws
317 #define _fputtc fputwc
318 #define _fputtc_nolock _fputwc_nolock
319 #define _fputtchar _fputwchar
320 #define _fputts fputws
321 #define _cputts _cputws
322 #define _cgetts _cgetws
323 #define _cgetts_s _cgetws_s
324 #define _gettc getwc
325 #define _gettc_nolock _getwc_nolock
326 #define _gettch _getwch
327 #define _gettch_nolock _getwch_nolock
328 #define _gettche _getwche
329 #define _gettche_nolock _getwche_nolock
330 #define _gettchar getwchar
331 #define _gettchar_nolock _getwchar_nolock
332 #define _getts _getws
333 #define _getts_s _getws_s
334 #define _puttc putwc
335 #define _puttc_nolock _putwc_nolock
336 #define _puttchar putwchar
337 #define _puttchar_nolock _putwchar_nolock
338 #define _puttch _putwch
339 #define _puttch_nolock _putwch_nolock
340 #define _putts _putws
341 #define _ungettc ungetwc
342 #define _ungettc_nolock _ungetwc_nolock
343 #define _ungettch _ungetwch
344 #define _ungettch_nolock _ungetwch_nolock
345 
346 
347 /* String conversion functions */
348 
349 #define _tcstod wcstod
350 #define _tcstof wcstof
351 #define _tcstol wcstol
352 #define _tcstold wcstold
353 #define _tcstoll wcstoll
354 #define _tcstoul wcstoul
355 #define _tcstoull wcstoull
356 #define _tcstoimax wcstoimax
357 #define _tcstoumax wcstoumax
358 #define _tcstoi64 _wcstoi64
359 #define _tcstoui64 _wcstoui64
360 #define _ttof _wtof
361 #define _tstof _wtof
362 #define _tstol _wtol
363 #define _tstoll _wtoll
364 #define _tstoi _wtoi
365 #define _tstoi64 _wtoi64
366 #define _tcstod_l _wcstod_l
367 #define _tcstof_l _wcstof_l
368 #define _tcstol_l _wcstol_l
369 #define _tcstold_l _wcstold_l
370 #define _tcstoll_l _wcstoll_l
371 #define _tcstoul_l _wcstoul_l
372 #define _tcstoull_l _wcstoull_l
373 #define _tcstoi64_l _wcstoi64_l
374 #define _tcstoui64_l _wcstoui64_l
375 #define _tcstoimax_l _wcstoimax_l
376 #define _tcstoumax_l _wcstoumax_l
377 #define _tstof_l _wtof_l
378 #define _tstol_l _wtol_l
379 #define _tstoll_l _wtoll_l
380 #define _tstoi_l _wtoi_l
381 #define _tstoi64_l _wtoi64_l
382 
383 #define _itot_s _itow_s
384 #define _ltot_s _ltow_s
385 #define _ultot_s _ultow_s
386 #define _itot _itow
387 #define _ltot _ltow
388 #define _ultot _ultow
389 #define _ttoi _wtoi
390 #define _ttol _wtol
391 #define _ttoll _wtoll
392 
393 #define _ttoi64 _wtoi64
394 #define _i64tot_s _i64tow_s
395 #define _ui64tot_s _ui64tow_s
396 #define _i64tot _i64tow
397 #define _ui64tot _ui64tow
398 
399 /* String functions */
400 
401 #define _tcscat wcscat
402 #define _tcscat_s wcscat_s
403 #define _tcschr wcschr
404 #define _tcscpy wcscpy
405 #define _tcscpy_s wcscpy_s
406 #define _tcscspn wcscspn
407 #define _tcslen wcslen
408 #define _tcsnlen wcsnlen
409 #define _tcsncat wcsncat
410 #define _tcsncat_s wcsncat_s
411 #define _tcsncat_l _wcsncat_l
412 #define _tcsncat_s_l _wcsncat_s_l
413 #define _tcsncpy wcsncpy
414 #define _tcsncpy_s wcsncpy_s
415 #define _tcsncpy_l _wcsncpy_l
416 #define _tcsncpy_s_l _wcsncpy_s_l
417 #define _tcspbrk wcspbrk
418 #define _tcsrchr wcsrchr
419 #define _tcsspn wcsspn
420 #define _tcsstr wcsstr
421 #define _tcstok wcstok
422 #define _tcstok_s wcstok_s
423 #define _tcstok_l _wcstok_l
424 #define _tcstok_s_l _wcstok_s_l
425 #define _tcserror _wcserror
426 #define _tcserror_s _wcserror_s
427 #define __tcserror __wcserror
428 #define __tcserror_s __wcserror_s
429 
430 #define _tcsdup _wcsdup
431 #define _tcsnset _wcsnset
432 #define _tcsnset_s _wcsnset_s
433 #define _tcsnset_l _wcsnset_l
434 #define _tcsnset_s_l _wcsnset_s_l
435 #define _tcsrev _wcsrev
436 #define _tcsset _wcsset
437 #define _tcsset_s _wcsset_s
438 #define _tcsset_l _wcsset_l
439 #define _tcsset_s_l _wcsset_s_l
440 
441 #define _tcscmp wcscmp
442 #define _tcsicmp _wcsicmp
443 #define _tcsicmp_l _wcsicmp_l
444 #define _tcsnccmp wcsncmp
445 #define _tcsncmp wcsncmp
446 #define _tcsncicmp _wcsnicmp
447 #define _tcsncicmp_l _wcsnicmp_l
448 #define _tcsnicmp _wcsnicmp
449 #define _tcsnicmp_l _wcsnicmp_l
450 
451 #define _tcscoll wcscoll
452 #define _tcscoll_l _wcscoll_l
453 #define _tcsicoll _wcsicoll
454 #define _tcsicoll_l _wcsicoll_l
455 #define _tcsnccoll _wcsncoll
456 #define _tcsnccoll_l _wcsncoll_l
457 #define _tcsncoll _wcsncoll
458 #define _tcsncoll_l _wcsncoll_l
459 #define _tcsncicoll _wcsnicoll
460 #define _tcsncicoll_l _wcsnicoll_l
461 #define _tcsnicoll _wcsnicoll
462 #define _tcsnicoll_l _wcsnicoll_l
463 
464 #ifdef _DEBUG
465 #define _tcsdup_dbg _wcsdup_dbg
466 #endif /* _DEBUG */
467 
468 /* Execute functions */
469 
470 #define _texecl _wexecl
471 #define _texecle _wexecle
472 #define _texeclp _wexeclp
473 #define _texeclpe _wexeclpe
474 #define _texecv _wexecv
475 #define _texecve _wexecve
476 #define _texecvp _wexecvp
477 #define _texecvpe _wexecvpe
478 
479 #define _tspawnl _wspawnl
480 #define _tspawnle _wspawnle
481 #define _tspawnlp _wspawnlp
482 #define _tspawnlpe _wspawnlpe
483 #define _tspawnv _wspawnv
484 #define _tspawnve _wspawnve
485 #define _tspawnvp _wspawnvp
486 #define _tspawnvp _wspawnvp
487 #define _tspawnvpe _wspawnvpe
488 
489 #define _tsystem _wsystem
490 
491 
492 /* Time functions */
493 
494 #define _tasctime _wasctime
495 #define _tctime _wctime
496 #define _tctime32 _wctime32
497 #define _tctime64 _wctime64
498 #define _tstrdate _wstrdate
499 #define _tstrtime _wstrtime
500 #define _tutime _wutime
501 #define _tutime32 _wutime32
502 #define _tutime64 _wutime64
503 #define _tcsftime wcsftime
504 #define _tcsftime_l _wcsftime_l
505 
506 #define _tasctime_s _wasctime_s
507 #define _tctime_s _wctime_s
508 #define _tctime32_s _wctime32_s
509 #define _tctime64_s _wctime64_s
510 #define _tstrdate_s _wstrdate_s
511 #define _tstrtime_s _wstrtime_s
512 
513 /* Directory functions */
514 
515 #define _tchdir _wchdir
516 #define _tgetcwd _wgetcwd
517 #define _tgetdcwd _wgetdcwd
518 #define _tgetdcwd_nolock _wgetdcwd_nolock
519 #define _tmkdir _wmkdir
520 #define _trmdir _wrmdir
521 
522 #ifdef _DEBUG
523 #define _tgetcwd_dbg _wgetcwd_dbg
524 #define _tgetdcwd_dbg _wgetdcwd_dbg
525 #define _tgetdcwd_lk_dbg _wgetdcwd_lk_dbg
526 #endif /* _DEBUG */
527 
528 /* Environment/Path functions */
529 
530 #define _tfullpath _wfullpath
531 #define _tgetenv _wgetenv
532 #define _tgetenv_s _wgetenv_s
533 #define _tdupenv_s _wdupenv_s
534 #define _tmakepath _wmakepath
535 #define _tmakepath_s _wmakepath_s
536 #define _tpgmptr _wpgmptr
537 #define _get_tpgmptr _get_wpgmptr
538 #define _tputenv _wputenv
539 #define _tputenv_s _wputenv_s
540 #define _tsearchenv _wsearchenv
541 #define _tsearchenv_s _wsearchenv_s
542 #define _tsplitpath _wsplitpath
543 #define _tsplitpath_s _wsplitpath_s
544 
545 #ifdef _DEBUG
546 #define _tfullpath_dbg _wfullpath_dbg
547 #define _tdupenv_s_dbg _wdupenv_s_dbg
548 #endif /* _DEBUG */
549 
550 /* Stdio functions */
551 
552 #define _tfdopen _wfdopen
553 #define _tfsopen _wfsopen
554 #define _tfopen _wfopen
555 #define _tfopen_s _wfopen_s
556 #define _tfreopen _wfreopen
557 #define _tfreopen_s _wfreopen_s
558 #define _tperror _wperror
559 #define _tpopen _wpopen
560 #define _ttempnam _wtempnam
561 #define _ttmpnam _wtmpnam
562 #define _ttmpnam_s _wtmpnam_s
563 
564 #ifdef _DEBUG
565 #define _ttempnam_dbg _wtempnam_dbg
566 #endif /* _DEBUG */
567 
568 
569 /* Io functions */
570 
571 #define _taccess _waccess
572 #define _taccess_s _waccess_s
573 #define _tchmod _wchmod
574 #define _tcreat _wcreat
575 #define _tfindfirst _wfindfirst
576 #define _tfindfirst32 _wfindfirst32
577 #define _tfindfirst64 _wfindfirst64
578 #define _tfindfirsti64 _wfindfirsti64
579 #define _tfindfirst32i64 _wfindfirst32i64
580 #define _tfindfirst64i32 _wfindfirst64i32
581 #define _tfindnext _wfindnext
582 #define _tfindnext32 _wfindnext32
583 #define _tfindnext64 _wfindnext64
584 #define _tfindnexti64 _wfindnexti64
585 #define _tfindnext32i64 _wfindnext32i64
586 #define _tfindnext64i32 _wfindnext64i32
587 #define _tmktemp _wmktemp
588 #define _tmktemp_s _wmktemp_s
589 #define _topen _wopen
590 #define _tremove _wremove
591 #define _trename _wrename
592 #define _tsopen _wsopen
593 #define _tsopen_s _wsopen_s
594 #define _tunlink _wunlink
595 
596 #define _tfinddata_t _wfinddata_t
597 #define _tfinddata32_t _wfinddata32_t
598 #define _tfinddata64_t _wfinddata64_t
599 #define _tfinddatai64_t _wfinddatai64_t
600 #define _tfinddata32i64_t _wfinddata32i64_t
601 #define _tfinddata64i32_t _wfinddata64i32_t
602 
603 
604 /* Stat functions */
605 
606 #define _tstat _wstat
607 #define _tstat32 _wstat32
608 #define _tstat32i64 _wstat32i64
609 #define _tstat64 _wstat64
610 #define _tstat64i32 _wstat64i32
611 #define _tstati64 _wstati64
612 
613 
614 /* Setlocale functions */
615 
616 #define _tsetlocale _wsetlocale
617 
618 
619 /* Redundant "logical-character" mappings */
620 
621 #define _tcsclen wcslen
622 #define _tcscnlen wcsnlen
623 #define _tcsclen_l(_String, _Locale) wcslen(_String)
624 #define _tcscnlen_l(_String, _Max_count, _Locale) wcsnlen((_String), (_Max_count))
625 #define _tcsnccat wcsncat
626 #define _tcsnccat_s wcsncat_s
627 #define _tcsnccat_l _wcsncat_l
628 #define _tcsnccat_s_l _wcsncat_s_l
629 #define _tcsnccpy wcsncpy
630 #define _tcsnccpy_s wcsncpy_s
631 #define _tcsnccpy_l _wcsncpy_l
632 #define _tcsnccpy_s_l _wcsncpy_s_l
633 #define _tcsncset _wcsnset
634 #define _tcsncset_s _wcsnset_s
635 #define _tcsncset_l _wcsnset_l
636 #define _tcsncset_s_l _wcsnset_s_l
637 
638 #define _tcsdec _wcsdec
639 #define _tcsinc _wcsinc
640 #define _tcsnbcnt _wcsncnt
641 #define _tcsnccnt _wcsncnt
642 #define _tcsnextc _wcsnextc
643 #define _tcsninc _wcsninc
644 #define _tcsspnp _wcsspnp
645 
646 #define _tcslwr _wcslwr
647 #define _tcslwr_l _wcslwr_l
648 #define _tcslwr_s _wcslwr_s
649 #define _tcslwr_s_l _wcslwr_s_l
650 #define _tcsupr _wcsupr
651 #define _tcsupr_l _wcsupr_l
652 #define _tcsupr_s _wcsupr_s
653 #define _tcsupr_s_l _wcsupr_s_l
654 #define _tcsxfrm wcsxfrm
655 #define _tcsxfrm_l _wcsxfrm_l
656 
657 
658 #if __STDC__ || defined (_NO_INLINING)
659 #define _tclen(_pc) (1)
660 #define _tccpy(_pc1,_cpc2) ((*(_pc1) = *(_cpc2)))
661 #define _tccpy_l(_pc1,_cpc2,_locale) _tccpy((_pc1),(_cpc2))
662 #define _tccmp(_cpc1,_cpc2) ((*(_cpc1))-(*(_cpc2)))
663 #else /* __STDC__ || defined (_NO_INLINING) */
664 _Check_return_ __inline size_t __CRTDECL _tclen(_In_z_ const wchar_t *_Cpc)
665 {
666  /* avoid compiler warning */
667  (void *)_Cpc;
668  return 1;
669 }
670 __inline void __CRTDECL _tccpy(_Out_ wchar_t *_Pc1, _In_z_ const wchar_t *_Cpc2) { *_Pc1 = (wchar_t)*_Cpc2; }
671 __inline void __CRTDECL _tccpy_l(_Out_ wchar_t *_Pc1, _In_z_ const wchar_t *_Cpc2, _In_opt_ _locale_t _Locale)
672 {
673  _CRT_UNUSED(_Locale);
674 #pragma warning( push )
675 #pragma warning( disable : 28719 )
676  _tccpy(_Pc1, _Cpc2);
677 #pragma warning( pop )
678 }
679 _Check_return_ __inline int __CRTDECL _tccmp(_In_z_ const wchar_t *_Cpc1, _In_z_ const wchar_t *_Cpc2) { return (int) ((*_Cpc1)-(*_Cpc2)); }
680 #endif /* __STDC__ || defined (_NO_INLINING) */
681 
682 /* ctype functions */
683 
684 #define _istalnum iswalnum
685 #define _istalnum_l _iswalnum_l
686 #define _istalpha iswalpha
687 #define _istalpha_l _iswalpha_l
688 #define _istascii iswascii
689 #define _istcntrl iswcntrl
690 #define _istcntrl_l _iswcntrl_l
691 #define _istdigit iswdigit
692 #define _istdigit_l _iswdigit_l
693 #define _istgraph iswgraph
694 #define _istgraph_l _iswgraph_l
695 #define _istlower iswlower
696 #define _istlower_l _iswlower_l
697 #define _istprint iswprint
698 #define _istprint_l _iswprint_l
699 #define _istpunct iswpunct
700 #define _istpunct_l _iswpunct_l
701 #define _istblank iswblank
702 #define _istblank_l _iswblank_l
703 #define _istspace iswspace
704 #define _istspace_l _iswspace_l
705 #define _istupper iswupper
706 #define _istupper_l _iswupper_l
707 #define _istxdigit iswxdigit
708 #define _istxdigit_l _iswxdigit_l
709 
710 #define _totupper towupper
711 #define _totupper_l _towupper_l
712 #define _totlower towlower
713 #define _totlower_l _towlower_l
714 
715 #define _istlegal(_Char) (1)
716 #define _istlead(_Char) (0)
717 #define _istleadbyte(_Char) (0)
718 #define _istleadbyte_l(_Char, _Locale) (0)
719 
720 
721 #if __STDC__ || defined (_NO_INLINING)
722 #define _wcsdec(_cpc1, _cpc2) ((_cpc1)>=(_cpc2) ? NULL : (_cpc2)-1)
723 #define _wcsinc(_pc) ((_pc)+1)
724 #define _wcsnextc(_cpc) ((unsigned int) *(_cpc))
725 #define _wcsninc(_pc, _sz) (((_pc)+(_sz)))
726 _Check_return_ _CRTIMP size_t __cdecl __wcsncnt(_In_reads_or_z_(_MaxCount) const wchar_t * _Str, _In_ size_t _MaxCount);
727 #define _wcsncnt(_cpc, _sz) (__wcsncnt(_cpc,_sz))
728 #define _wcsspnp(_cpc1, _cpc2) (_cpc1==NULL ? NULL : ((*((_cpc1)+wcsspn(_cpc1,_cpc2))) ? ((_cpc1)+wcsspn(_cpc1,_cpc2)) : NULL))
729 #define _wcsncpy_l(_Destination, _Source, _Count, _Locale) (wcsncpy(_Destination, _Source, _Count))
730 #if __STDC_WANT_SECURE_LIB__
731 #define _wcsncpy_s_l(_Destination, _Destination_size_chars, _Source, _Count, _Locale) (wcsncpy_s(_Destination, _Destination_size_chars, _Source, _Count))
732 #endif /* __STDC_WANT_SECURE_LIB__ */
733 #define _wcsncat_l(_Destination, _Source, _Count, _Locale) (wcsncat(_Destination, _Source, _Count))
734 #if __STDC_WANT_SECURE_LIB__
735 #define _wcsncat_s_l(_Destination, _Destination_size_chars, _Source, _Count, _Locale) (wcsncat_s(_Destination, _Destination_size_chars, _Source, _Count))
736 #endif /* __STDC_WANT_SECURE_LIB__ */
737 #define _wcstok_l(_String, _Delimiters, _Locale) (wcstok(_String, _Delimiters))
738 #define _wcstok_s_l(_String, _Delimiters, _Current_position, _Locale) (wcstok_s(_String, _Delimiters, _Current_position))
739 #define _wcsnset_l(_Destination, _Value, _Count, _Locale) (_wcsnset(_Destination, _Value, _Count))
740 #define _wcsnset_s_l(_Destination, _Destination_size_chars, _Value, _Count, _Locale) (_wcsnset_s(_Destination, _Destination_size_chars, _Value, _Count))
741 #define _wcsset_l(_Destination, _Value, _Locale) (_wcsset(_Destination, _Value))
742 #define _wcsset_s_l(_Destination, _Destination_size_chars, _Value, _Locale) (_wcsset_s(_Destination, _Destination_size_chars, _Value))
743 #else /* __STDC__ || defined (_NO_INLINING) */
744 _Check_return_ __inline wchar_t * __CRTDECL _wcsdec(_In_z_ const wchar_t * _Cpc1, _In_z_ const wchar_t * _Cpc2) { return (wchar_t *)((_Cpc1)>=(_Cpc2) ? NULL : ((_Cpc2)-1)); }
745 _Check_return_ __inline wchar_t * __CRTDECL _wcsinc(_In_z_ const wchar_t * _Pc) { return (wchar_t *)(_Pc+1); }
746 _Check_return_ __inline unsigned int __CRTDECL _wcsnextc(_In_z_ const wchar_t * _Cpc) { return (unsigned int)*_Cpc; }
747 _Check_return_ __inline wchar_t * __CRTDECL _wcsninc(_In_z_ const wchar_t * _Pc, _In_ size_t _Sz) { return (wchar_t *)(_Pc+_Sz); }
748 _Check_return_ __inline size_t __CRTDECL _wcsncnt( _In_reads_or_z_(_Cnt) const wchar_t * _String, _In_ size_t _Cnt)
749 {
750  size_t n = _Cnt;
751  wchar_t *cp = (wchar_t *)_String;
752  while (n-- && *cp)
753  cp++;
754  return _Cnt - n - 1;
755 }
756 _Check_return_ __inline wchar_t * __CRTDECL _wcsspnp
757 (
758  _In_z_ const wchar_t * _Cpc1,
759  _In_z_ const wchar_t * _Cpc2
760 )
761 {
762  return _Cpc1==NULL ? NULL : ((*(_Cpc1 += wcsspn(_Cpc1,_Cpc2))!='\0') ? (wchar_t*)_Cpc1 : NULL);
763 }
764 
765 #if __STDC_WANT_SECURE_LIB__
766 _Check_return_wat_ __inline errno_t __CRTDECL _wcsncpy_s_l(_Out_writes_z_(_Destination_size_chars) wchar_t *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const wchar_t *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
767 {
768  _CRT_UNUSED(_Locale);
769  return wcsncpy_s(_Destination, _Destination_size_chars, _Source, _Count);
770 }
771 #endif /* __STDC_WANT_SECURE_LIB__ */
772 
773 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _wcsncpy_s_l, wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
774 
775 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsncpy_l, _wcsncpy_s_l, _Out_writes_z_(_Size) wchar_t, _Out_writes_(_Count) wchar_t, _Dst, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
776 {
777  _CRT_UNUSED(_Locale);
778 #pragma warning( push )
779 #pragma warning( disable : 4996 6054 28719)
780  return wcsncpy(_Dst, _Source, _Count);
781 #pragma warning( pop )
782 }
783 
784 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsncpy_l, _wcsncpy_s_l, _Out_writes_z_(_Size) wchar_t, _Out_writes_(_Count), wchar_t, _Dst, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
785 
786 #if __STDC_WANT_SECURE_LIB__
787 _Check_return_wat_ __inline errno_t __CRTDECL _wcsncat_s_l(_Inout_updates_z_(_Destination_size_chars) wchar_t *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const wchar_t *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
788 {
789  _CRT_UNUSED(_Locale);
790  return wcsncat_s(_Destination, _Destination_size_chars, _Source, _Count);
791 }
792 #endif /* __STDC_WANT_SECURE_LIB__ */
793 
794 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _wcsncat_s_l, wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
795 
796 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsncat_l, _wcsncat_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_ wchar_t, _Dst, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
797 {
798  _CRT_UNUSED(_Locale);
799 #pragma warning( push )
800 #pragma warning( disable : 4996 6054 6059 28719 )
801 /* prefast noise VSW 489802 */
802  return wcsncat(_Dst, _Source, _Count);
803 #pragma warning( pop )
804 }
805 
806 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsncat_l, _wcsncat_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_, wchar_t, _Dst, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
807 
808 _CRT_INSECURE_DEPRECATE(_wcstok_s_l) __inline wchar_t * _wcstok_l(_Inout_opt_z_ wchar_t * _String, _In_z_ const wchar_t * _Delimiters, _In_opt_ _locale_t _Locale)
809 {
810  _CRT_UNUSED(_Locale);
811 #pragma warning(push)
812 #pragma warning(disable:4996 28727)
813  return wcstok(_String,_Delimiters);
814 #pragma warning(pop)
815 }
816 
817 __inline wchar_t * _wcstok_s_l(_Inout_opt_z_ wchar_t * _String, _In_z_ const wchar_t * _Delimiters, _Inout_ _Deref_prepost_opt_z_ wchar_t **_Current_position, _In_opt_ _locale_t _Locale)
818 {
819  _CRT_UNUSED(_Locale);
820  return wcstok_s(_String, _Delimiters, _Current_position);
821 }
822 
823 _Check_return_wat_ __inline errno_t _wcsnset_s_l(_Inout_updates_z_(_Destination_size_chars) wchar_t * _Destination, _In_ size_t _Destination_size_chars, _In_ wchar_t _Value, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
824 {
825  _CRT_UNUSED(_Locale);
826  return _wcsnset_s(_Destination, _Destination_size_chars, _Value, _Count);
827 }
828 
829 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _wcsnset_s_l, _Prepost_z_ wchar_t, _Dest, _In_ wchar_t, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
830 
831 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsnset_l, _wcsnset_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_updates_z_(_MaxCount) wchar_t, _Dst, _In_ wchar_t, _Value, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale)
832 {
833  _CRT_UNUSED(_Locale);
834 #pragma warning( push )
835 #pragma warning( disable : 4996 )
836  return _wcsnset(_Dst, _Value, _MaxCount);
837 #pragma warning( pop )
838 }
839 
840 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsnset_l, _wcsnset_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_updates_z_(_MaxCount), wchar_t, _Dst, _In_ wchar_t, _Value, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale)
841 
842 _Check_return_wat_ __inline errno_t _wcsset_s_l(_Inout_updates_z_(_Destination_size_chars) wchar_t * _Destination, _In_ size_t _Destination_size_chars, _In_ wchar_t _Value, _In_opt_ _locale_t _Locale)
843 {
844  _CRT_UNUSED(_Locale);
845  return _wcsset_s(_Destination, _Destination_size_chars, _Value);
846 }
847 
848 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _wcsset_s_l, _Prepost_z_ wchar_t, _Dest, _In_ wchar_t, _Value, _In_opt_ _locale_t, _Locale)
849 
850 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _wcsset_l, _wcsset_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_ wchar_t, _Dst, _In_ wchar_t, _Value, _In_opt_ _locale_t, _Locale)
851 {
852  _CRT_UNUSED(_Locale);
853 #pragma warning( push )
854 #pragma warning( disable : 4996 )
855  return _wcsset(_Dst, _Value);
856 #pragma warning( pop )
857 }
858 
859 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _wcsset_l, _wcsset_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_, wchar_t, _Dst, _In_ wchar_t, _Value, _In_opt_ _locale_t, _Locale)
860 
861 #endif /* __STDC__ || defined (_NO_INLINING) */
862 
863 #ifdef _CRTBLD
864 
865 /*
866  * macros for internal CRT stuff.
867  * This saves the mess that is created in the CRT.
868  */
869 #ifdef _SAFECRT_IMPL
870 #define __tinput _winput
871 #define __tinput_s _winput_s
872 #else /* _SAFECRT_IMPL */
873 #define _tinput_l _winput_l
874 #define _tinput_s_l _winput_s_l
875 #endif /* _SAFECRT_IMPL */
876 #define __topenfile _wopenfile
877 #define _tgetpath _wgetpath
878 #define __crtMessageBox __crtMessageBoxW
879 #define __crtMessageWindow __crtMessageWindowW
880 #define _VCrtDbgReportT _VCrtDbgReportW
881 #define _CrtDbgReportT _CrtDbgReportW
882 #define _CrtDbgReportTV _CrtDbgReportWV
883 #define ReportHookNodeT ReportHookNodeW
884 #define _pReportHookListT _pReportHookListW
885 #define _CrtSetReportHookT2 _CrtSetReportHookW2
886 #define _CRT_REPORT_HOOKT _CRT_REPORT_HOOKW
887 #define _ttmpnam_helper _wtmpnam_helper
888 #define _tfreopen_helper _wfreopen_helper
889 #define _getts_helper _getws_helper
890 #define _tfullpath_helper _wfullpath_helper
891 #define _tsopen_helper _wsopen_helper
892 #define _tsopen_nolock _wsopen_nolock
893 #define _tdupenv_s_crt _wdupenv_s_crt
894 
895 #endif /* _CRTBLD */
896 
897 #else /* _UNICODE */
898 
899 /* ++++++++++++++++++++ SBCS and MBCS ++++++++++++++++++++ */
900 
901 #ifdef __cplusplus
902 } /* ... extern "C" */
903 #endif /* __cplusplus */
904 
905 #include <string.h>
906 
907 #ifdef __cplusplus
908 extern "C" {
909 #endif /* __cplusplus */
910 
911 
912 #define _TEOF EOF
913 
914 #define __T(x) x
915 
916 
917 /* Program */
918 
919 #define _tmain main
920 #define _tWinMain WinMain
921 #define _tenviron _environ
922 #define __targv __argv
923 
924 
925 /* Formatted i/o */
926 
927 #define _tprintf printf
928 #define _tprintf_l _printf_l
929 #define _tprintf_s printf_s
930 #define _tprintf_s_l _printf_s_l
931 #define _tprintf_p _printf_p
932 #define _tprintf_p_l _printf_p_l
933 #define _tcprintf _cprintf
934 #define _tcprintf_l _cprintf_l
935 #define _tcprintf_s _cprintf_s
936 #define _tcprintf_s_l _cprintf_s_l
937 #define _tcprintf_p _cprintf_p
938 #define _tcprintf_p_l _cprintf_p_l
939 #define _vtcprintf _vcprintf
940 #define _vtcprintf_l _vcprintf_l
941 #define _vtcprintf_s _vcprintf_s
942 #define _vtcprintf_s_l _vcprintf_s_l
943 #define _vtcprintf_p _vcprintf_p
944 #define _vtcprintf_p_l _vcprintf_p_l
945 #define _ftprintf fprintf
946 #define _ftprintf_l _fprintf_l
947 #define _ftprintf_s fprintf_s
948 #define _ftprintf_s_l _fprintf_s_l
949 #define _ftprintf_p _fprintf_p
950 #define _ftprintf_p_l _fprintf_p_l
951 #define _stprintf sprintf
952 #define _stprintf_l _sprintf_l
953 #define _stprintf_s sprintf_s
954 #define _stprintf_s_l _sprintf_s_l
955 #define _stprintf_p _sprintf_p
956 #define _stprintf_p_l _sprintf_p_l
957 #define _sctprintf _scprintf
958 #define _sctprintf_l _scprintf_l
959 #define _sctprintf_p _scprintf_p
960 #define _sctprintf_p_l _scprintf_p_l
961 #define _sntprintf _snprintf
962 #define _sntprintf_l _snprintf_l
963 #define _sntprintf_s _snprintf_s
964 #define _sntprintf_s_l _snprintf_s_l
965 #define _vtprintf vprintf
966 #define _vtprintf_l _vprintf_l
967 #define _vtprintf_s vprintf_s
968 #define _vtprintf_s_l _vprintf_s_l
969 #define _vtprintf_p _vprintf_p
970 #define _vtprintf_p_l _vprintf_p_l
971 #define _vftprintf vfprintf
972 #define _vftprintf_l _vfprintf_l
973 #define _vftprintf_s vfprintf_s
974 #define _vftprintf_s_l _vfprintf_s_l
975 #define _vftprintf_p _vfprintf_p
976 #define _vftprintf_p_l _vfprintf_p_l
977 #define _vstprintf vsprintf
978 #define _vstprintf_l _vsprintf_l
979 #define _vstprintf_s vsprintf_s
980 #define _vstprintf_s_l _vsprintf_s_l
981 #define _vstprintf_p _vsprintf_p
982 #define _vstprintf_p_l _vsprintf_p_l
983 #define _vsctprintf _vscprintf
984 #define _vsctprintf_l _vscprintf_l
985 #define _vsctprintf_p _vscprintf_p
986 #define _vsctprintf_p_l _vscprintf_p_l
987 #define _vsntprintf _vsnprintf
988 #define _vsntprintf_l _vsnprintf_l
989 #define _vsntprintf_s _vsnprintf_s
990 #define _vsntprintf_s_l _vsnprintf_s_l
991 
992 #define _tscanf scanf
993 #define _tscanf_l _scanf_l
994 #define _tscanf_s scanf_s
995 #define _tscanf_s_l _scanf_s_l
996 #define _tcscanf _cscanf
997 #define _tcscanf_l _cscanf_l
998 #define _tcscanf_s _cscanf_s
999 #define _tcscanf_s_l _cscanf_s_l
1000 #define _ftscanf fscanf
1001 #define _ftscanf_l _fscanf_l
1002 #define _ftscanf_s fscanf_s
1003 #define _ftscanf_s_l _fscanf_s_l
1004 #define _stscanf sscanf
1005 #define _stscanf_l _sscanf_l
1006 #define _stscanf_s sscanf_s
1007 #define _stscanf_s_l _sscanf_s_l
1008 #define _sntscanf _snscanf
1009 #define _sntscanf_l _snscanf_l
1010 #define _sntscanf_s _snscanf_s
1011 #define _sntscanf_s_l _snscanf_s_l
1012 #define _vtscanf vscanf
1013 #define _vtscanf_s vscanf_s
1014 #define _vftscanf vfscanf
1015 #define _vftscanf_s vfscanf_s
1016 #define _vstscanf vsscanf
1017 #define _vstscanf_s vsscanf_s
1018 
1019 
1020 /* Unformatted i/o */
1021 
1022 #define _fgettc fgetc
1023 #define _fgettc_nolock _fgetc_nolock
1024 #define _fgettchar _fgetchar
1025 #define _fgetts fgets
1026 #define _fputtc fputc
1027 #define _fputtc_nolock _fputc_nolock
1028 #define _fputtchar _fputchar
1029 #define _fputts fputs
1030 #define _cputts _cputs
1031 #define _gettc getc
1032 #define _gettc_nolock _getc_nolock
1033 #define _gettch _getch
1034 #define _gettch_nolock _getch_nolock
1035 #define _gettche _getche
1036 #define _gettche_nolock _getche_nolock
1037 #define _gettchar getchar
1038 #define _gettchar_nolock _getchar_nolock
1039 #define _getts gets
1040 #define _getts_s gets_s
1041 #define _cgetts _cgets
1042 #define _cgetts_s _cgets_s
1043 #define _puttc putc
1044 #define _puttc_nolock _putc_nolock
1045 #define _puttchar putchar
1046 #define _puttchar_nolock _putchar_nolock
1047 #define _puttch _putch
1048 #define _puttch_nolock _putch_nolock
1049 #define _putts puts
1050 #define _ungettc ungetc
1051 #define _ungettc_nolock _ungetc_nolock
1052 #define _ungettch _ungetch
1053 #define _ungettch_nolock _ungetch_nolock
1054 
1055 /* String conversion functions */
1056 
1057 #define _tcstod strtod
1058 #define _tcstof strtof
1059 #define _tcstol strtol
1060 #define _tcstold strtold
1061 #define _tcstoll strtoll
1062 #define _tcstoul strtoul
1063 #define _tcstoull strtoull
1064 #define _tcstoimax strtoimax
1065 #define _tcstoumax strtoumax
1066 #define _ttof atof
1067 #define _tstof atof
1068 #define _tstol atol
1069 #define _tstoll atoll
1070 #define _tstoi atoi
1071 #define _tstoi64 _atoi64
1072 #define _tcstod_l _strtod_l
1073 #define _tcstof_l _strtof_l
1074 #define _tcstol_l _strtol_l
1075 #define _tcstold_l _strtold_l
1076 #define _tcstoll_l _strtoll_l
1077 #define _tcstoul_l _strtoul_l
1078 #define _tcstoull_l _strtoull_l
1079 #define _tcstoimax_l _strtoimax_l
1080 #define _tcstoumax_l _strtoumax_l
1081 #define _tstof_l _atof_l
1082 #define _tstol_l _atol_l
1083 #define _tstoll_l _atoll_l
1084 #define _tstoi_l _atoi_l
1085 #define _tstoi64_l _atoi64_l
1086 
1087 #define _itot_s _itoa_s
1088 #define _ltot_s _ltoa_s
1089 #define _ultot_s _ultoa_s
1090 #define _itot _itoa
1091 #define _ltot _ltoa
1092 #define _ultot _ultoa
1093 #define _ttoi atoi
1094 #define _ttol atol
1095 #define _ttoll atoll
1096 
1097 #define _ttoi64 _atoi64
1098 #define _tcstoi64 _strtoi64
1099 #define _tcstoi64_l _strtoi64_l
1100 #define _tcstoui64 _strtoui64
1101 #define _tcstoui64_l _strtoui64_l
1102 #define _i64tot_s _i64toa_s
1103 #define _ui64tot_s _ui64toa_s
1104 #define _i64tot _i64toa
1105 #define _ui64tot _ui64toa
1106 
1107 /* String functions */
1108 
1109 /* Note that _mbscat, _mbscpy and _mbsdup are functionally equivalent to
1110  strcat, strcpy and strdup, respectively. */
1111 
1112 #define _tcscat strcat
1113 #define _tcscat_s strcat_s
1114 #define _tcscpy strcpy
1115 #define _tcscpy_s strcpy_s
1116 #define _tcsdup _strdup
1117 #define _tcslen strlen
1118 #define _tcsnlen strnlen
1119 #define _tcsxfrm strxfrm
1120 #define _tcsxfrm_l _strxfrm_l
1121 #define _tcserror strerror
1122 #define _tcserror_s strerror_s
1123 #define __tcserror _strerror
1124 #define __tcserror_s _strerror_s
1125 
1126 #ifdef _DEBUG
1127 #define _tcsdup_dbg _strdup_dbg
1128 #endif /* _DEBUG */
1129 
1130 /* Execute functions */
1131 
1132 #define _texecl _execl
1133 #define _texecle _execle
1134 #define _texeclp _execlp
1135 #define _texeclpe _execlpe
1136 #define _texecv _execv
1137 #define _texecve _execve
1138 #define _texecvp _execvp
1139 #define _texecvpe _execvpe
1140 
1141 #define _tspawnl _spawnl
1142 #define _tspawnle _spawnle
1143 #define _tspawnlp _spawnlp
1144 #define _tspawnlpe _spawnlpe
1145 #define _tspawnv _spawnv
1146 #define _tspawnve _spawnve
1147 #define _tspawnvp _spawnvp
1148 #define _tspawnvpe _spawnvpe
1149 
1150 #define _tsystem system
1151 
1152 
1153 /* Time functions */
1154 
1155 #define _tasctime asctime
1156 #define _tctime ctime
1157 #define _tctime32 _ctime32
1158 #define _tctime64 _ctime64
1159 #define _tstrdate _strdate
1160 #define _tstrtime _strtime
1161 #define _tutime _utime
1162 #define _tutime32 _utime32
1163 #define _tutime64 _utime64
1164 #define _tcsftime strftime
1165 #define _tcsftime_l _strftime_l
1166 
1167 #define _tasctime_s asctime_s
1168 #define _tctime_s ctime_s
1169 #define _tctime32_s _ctime32_s
1170 #define _tctime64_s _ctime64_s
1171 #define _tstrdate_s _strdate_s
1172 #define _tstrtime_s _strtime_s
1173 
1174 /* Directory functions */
1175 
1176 #define _tchdir _chdir
1177 #define _tgetcwd _getcwd
1178 #define _tgetdcwd _getdcwd
1179 #define _tgetdcwd_nolock _getdcwd_nolock
1180 #define _tmkdir _mkdir
1181 #define _trmdir _rmdir
1182 
1183 #ifdef _DEBUG
1184 #define _tgetcwd_dbg _getcwd_dbg
1185 #define _tgetdcwd_dbg _getdcwd_dbg
1186 #define _tgetdcwd_lk_dbg _getdcwd_lk_dbg
1187 #endif /* _DEBUG */
1188 
1189 /* Environment/Path functions */
1190 
1191 #define _tfullpath _fullpath
1192 #define _tgetenv getenv
1193 #define _tgetenv_s getenv_s
1194 #define _tdupenv_s _dupenv_s
1195 #define _tmakepath _makepath
1196 #define _tmakepath_s _makepath_s
1197 #define _tpgmptr _pgmptr
1198 #define _get_tpgmptr _get_pgmptr
1199 #define _tputenv _putenv
1200 #define _tputenv_s _putenv_s
1201 #define _tsearchenv _searchenv
1202 #define _tsearchenv_s _searchenv_s
1203 #define _tsplitpath _splitpath
1204 #define _tsplitpath_s _splitpath_s
1205 
1206 #ifdef _DEBUG
1207 #define _tfullpath_dbg _fullpath_dbg
1208 #define _tdupenv_s_dbg _dupenv_s_dbg
1209 #endif /* _DEBUG */
1210 
1211 /* Stdio functions */
1212 
1213 #define _tfdopen _fdopen
1214 #define _tfsopen _fsopen
1215 #define _tfopen fopen
1216 #define _tfopen_s fopen_s
1217 #define _tfreopen freopen
1218 #define _tfreopen_s freopen_s
1219 #define _tperror perror
1220 #define _tpopen _popen
1221 #define _ttempnam _tempnam
1222 #define _ttmpnam tmpnam
1223 #define _ttmpnam_s tmpnam_s
1224 
1225 #ifdef _DEBUG
1226 #define _ttempnam_dbg _tempnam_dbg
1227 #endif /* _DEBUG */
1228 
1229 
1230 /* Io functions */
1231 
1232 #define _tchmod _chmod
1233 #define _tcreat _creat
1234 #define _tfindfirst _findfirst
1235 #define _tfindfirst32 _findfirst32
1236 #define _tfindfirst64 _findfirst64
1237 #define _tfindfirsti64 _findfirsti64
1238 #define _tfindfirst32i64 _findfirst32i64
1239 #define _tfindfirst64i32 _findfirst64i32
1240 #define _tfindnext _findnext
1241 #define _tfindnext32 _findnext32
1242 #define _tfindnext64 _findnext64
1243 #define _tfindnexti64 _findnexti64
1244 #define _tfindnext32i64 _findnext32i64
1245 #define _tfindnext64i32 _findnext64i32
1246 #define _tmktemp _mktemp
1247 #define _tmktemp_s _mktemp_s
1248 
1249 #define _topen _open
1250 #define _taccess _access
1251 #define _taccess_s _access_s
1252 
1253 #define _tremove remove
1254 #define _trename rename
1255 #define _tsopen _sopen
1256 #define _tsopen_s _sopen_s
1257 #define _tunlink _unlink
1258 
1259 #define _tfinddata_t _finddata_t
1260 #define _tfinddata32_t _finddata32_t
1261 #define _tfinddata64_t __finddata64_t
1262 #define _tfinddatai64_t _finddatai64_t
1263 #define _tfinddata32i64_t _finddata32i64_t
1264 #define _tfinddata64i32_t _finddata64i32_t
1265 
1266 /* ctype functions */
1267 #define _istascii __isascii
1268 #define _istcntrl iscntrl
1269 #define _istcntrl_l _iscntrl_l
1270 #define _istxdigit isxdigit
1271 #define _istxdigit_l _isxdigit_l
1272 
1273 /* Stat functions */
1274 #define _tstat _stat
1275 #define _tstat32 _stat32
1276 #define _tstat32i64 _stat32i64
1277 #define _tstat64 _stat64
1278 #define _tstat64i32 _stat64i32
1279 #define _tstati64 _stati64
1280 
1281 
1282 /* Setlocale functions */
1283 
1284 #define _tsetlocale setlocale
1285 
1286 
1287 #ifdef _MBCS
1288 
1289 #ifndef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
1290 #error Multibyte Character Set (MBCS) not supported for the current WINAPI_FAMILY.
1291 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
1292 
1293 /* ++++++++++++++++++++ MBCS ++++++++++++++++++++ */
1294 
1295 #ifdef __cplusplus
1296 } /* ... extern "C" */
1297 #endif /* __cplusplus */
1298 
1299 #include <mbstring.h>
1300 
1301 #ifdef __cplusplus
1302 extern "C" {
1303 #endif /* __cplusplus */
1304 
1305 
1306 #ifndef __TCHAR_DEFINED
1307 typedef char _TCHAR;
1308 typedef signed char _TSCHAR;
1309 typedef unsigned char _TUCHAR;
1310 typedef unsigned char _TXCHAR;
1311 typedef unsigned int _TINT;
1312 #define __TCHAR_DEFINED
1313 #endif /* __TCHAR_DEFINED */
1314 
1315 #ifndef _TCHAR_DEFINED
1316 #if !__STDC__
1317 typedef char TCHAR;
1318 #endif /* !__STDC__ */
1319 #define _TCHAR_DEFINED
1320 #endif /* _TCHAR_DEFINED */
1321 
1322 
1323 #ifdef _MB_MAP_DIRECT
1324 
1325 /* use mb functions directly - types must match */
1326 
1327 /* String functions */
1328 
1329 #define _tcschr _mbschr
1330 #define _tcscspn _mbscspn
1331 #define _tcsncat _mbsnbcat
1332 #define _tcsncat_s _mbsnbcat_s
1333 #define _tcsncat_l _mbsnbcat_l
1334 #define _tcsncat_s_l _mbsnbcat_s_l
1335 #define _tcsncpy _mbsnbcpy
1336 #define _tcsncpy_s _mbsnbcpy_s
1337 #define _tcsncpy_l _mbsnbcpy_l
1338 #define _tcsncpy_s_l _mbsnbcpy_s_l
1339 #define _tcspbrk _mbspbrk
1340 #define _tcsrchr _mbsrchr
1341 #define _tcsspn _mbsspn
1342 #define _tcsstr _mbsstr
1343 #define _tcstok _mbstok
1344 #define _tcstok_s _mbstok_s
1345 #define _tcstok_l _mbstok_l
1346 #define _tcstok_s_l _mbstok_s_l
1347 
1348 #define _tcsnset _mbsnbset
1349 #define _tcsnset_l _mbsnbset_l
1350 #define _tcsnset_s _mbsnbset_s
1351 #define _tcsnset_s_l _mbsnbset_s_l
1352 #define _tcsrev _mbsrev
1353 #define _tcsset _mbsset
1354 #define _tcsset_s _mbsset_s
1355 #define _tcsset_l _mbsset_l
1356 #define _tcsset_s_l _mbsset_s_l
1357 
1358 #define _tcscmp _mbscmp
1359 #define _tcsicmp _mbsicmp
1360 #define _tcsicmp_l _mbsicmp_l
1361 #define _tcsnccmp _mbsncmp
1362 #define _tcsncmp _mbsnbcmp
1363 #define _tcsncicmp _mbsnicmp
1364 #define _tcsncicmp_l _mbsnicmp_l
1365 #define _tcsnicmp _mbsnbicmp
1366 #define _tcsnicmp_l _mbsnbicmp_l
1367 
1368 #define _tcscoll _mbscoll
1369 #define _tcscoll_l _mbscoll_l
1370 #define _tcsicoll _mbsicoll
1371 #define _tcsicoll_l _mbsicoll_l
1372 #define _tcsnccoll _mbsncoll
1373 #define _tcsnccoll_l _mbsncoll_l
1374 #define _tcsncoll _mbsnbcoll
1375 #define _tcsncoll_l _mbsnbcoll_l
1376 #define _tcsncicoll _mbsnicoll
1377 #define _tcsncicoll_l _mbsnicoll_l
1378 #define _tcsnicoll _mbsnbicoll
1379 #define _tcsnicoll_l _mbsnbicoll_l
1380 
1381 /* "logical-character" mappings */
1382 
1383 #define _tcsclen _mbslen
1384 #define _tcscnlen _mbsnlen
1385 #define _tcsclen_l _mbslen_l
1386 #define _tcscnlen_l _mbsnlen_l
1387 #define _tcsnccat _mbsncat
1388 #define _tcsnccat_s _mbsncat_s
1389 #define _tcsnccat_l _mbsncat_l
1390 #define _tcsnccat_s_l _mbsncat_s_l
1391 #define _tcsnccpy _mbsncpy
1392 #define _tcsnccpy_s _mbsncpy_s
1393 #define _tcsnccpy_l _mbsncpy_l
1394 #define _tcsnccpy_s_l _mbsncpy_s_l
1395 #define _tcsncset _mbsnset
1396 #define _tcsncset_s _mbsnset_s
1397 #define _tcsncset_l _mbsnset_l
1398 #define _tcsncset_s_l _mbsnset_s_l
1399 
1400 /* MBCS-specific mappings */
1401 
1402 #define _tcsdec _mbsdec
1403 #define _tcsinc _mbsinc
1404 #define _tcsnbcnt _mbsnbcnt
1405 #define _tcsnccnt _mbsnccnt
1406 #define _tcsnextc _mbsnextc
1407 #define _tcsninc _mbsninc
1408 #define _tcsspnp _mbsspnp
1409 
1410 #define _tcslwr _mbslwr
1411 #define _tcslwr_l _mbslwr_l
1412 #define _tcslwr_s _mbslwr_s
1413 #define _tcslwr_s_l _mbslwr_s_l
1414 #define _tcsupr _mbsupr
1415 #define _tcsupr_l _mbsupr_l
1416 #define _tcsupr_s _mbsupr_s
1417 #define _tcsupr_s_l _mbsupr_s_l
1418 
1419 #define _tclen _mbclen
1420 #define _tccpy _mbccpy
1421 #define _tccpy_l _mbccpy_l
1422 #define _tccpy_s _mbccpy_s
1423 #define _tccpy_s_l _mbccpy_s_l
1424 
1425 #else /* _MB_MAP_DIRECT */
1426 
1427 #if __STDC__ || defined (_NO_INLINING)
1428 
1429 /* use type-safe linked-in function thunks */
1430 
1431 /* String functions */
1432 
1433 _Check_return_ _CRTIMP _CONST_RETURN char * __cdecl _tcschr(_In_z_ const char * _Str, _In_ unsigned int _Val);
1434 _Check_return_ _CRTIMP size_t __cdecl _tcscspn(_In_z_ const char * _Str, _In_z_ const char * _Control);
1435 _CRT_INSECURE_DEPRECATE(_tcsncat_s) _CRTIMP char * __cdecl _tcsncat(_Inout_updates_z_(_MaxCount) char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1436 _CRTIMP char * __cdecl _tcsncat_s(_Inout_updates_z_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, size_t _MaxCount);
1437 _CRT_INSECURE_DEPRECATE(_tcsncat_s_l) _CRTIMP char * __cdecl _tcsncat_l(_Inout_updates_z_(_MaxCount) char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1438 _CRTIMP char * __cdecl _tcsncat_s_l(_Inout_updates_z_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1439 _CRT_INSECURE_DEPRECATE(_tcsncpy_s) _CRTIMP char * __cdecl _tcsncpy(_Out_writes_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, size_t _MaxCount);
1440 _CRTIMP char * __cdecl _tcsncpy_s(_Out_writes_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, size_t _MaxCount);
1441 _CRT_INSECURE_DEPRECATE(_tcsncpy_s_l) _CRTIMP char * __cdecl _tcsncpy_l(_Out_writes_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1442 _CRTIMP char * __cdecl _tcsncpy_s_l(_Out_writes_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1443 _Check_return_ _CRTIMP _CONST_RETURN char * __cdecl _tcspbrk(_In_z_ const char * _Str, _In_z_ const char * _Control);
1444 _Check_return_ _CRTIMP _CONST_RETURN char * __cdecl _tcsrchr(_In_z_ const char * _Str, _In_ unsigned int _Ch);
1445 _Check_return_ _CRTIMP size_t __cdecl _tcsspn(_In_z_ const char * _Str, _In_z_ const char * _Control);
1446 _Check_return_ _CRTIMP _CONST_RETURN char * __cdecl _tcsstr(_In_z_ const char * _Str, _In_z_ const char * _Substr);
1447 _Check_return_ _CRT_INSECURE_DEPRECATE(_tcstok_s) _CRTIMP char * __cdecl _tcstok(_Inout_opt_ char *_Str, _In_z_ const char *_Delim);
1448 _Check_return_ _CRTIMP char * __cdecl _tcstok_s(_Inout_opt_ char *_Str, _In_z_ const char *_Delim, _Inout_ _Deref_prepost_opt_z_ char **_Context);
1449 _Check_return_ _CRT_INSECURE_DEPRECATE(_tcstok_s_l) _CRTIMP char * __cdecl _tcstok_l(_Inout_opt_ char *_Str, _In_z_ const char *_Delim, _In_opt_ _locale_t _Locale);
1450 _Check_return_ _CRTIMP char * __cdecl _tcstok_s_l(_Inout_opt_ char *_Str, _In_z_ const char *_Delim, _Inout_ _Deref_prepost_opt_z_ char **_Context, _In_opt_ _locale_t _Locale);
1451 
1452 _CRT_INSECURE_DEPRECATE(_tcsnset_s) _CRTIMP char * __cdecl _tcsnset(_Inout_z_ char * _Str, _In_ unsigned int _Val, _In_ size_t _MaxCount);
1453 _Check_return_wat_ _CRTIMP errno_t __cdecl _tcsnset_s(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val , _In_ size_t _MaxCount);
1454 _CRT_INSECURE_DEPRECATE(_tcsnset_s_l) _CRTIMP char * __cdecl _tcsnset_l(_Inout_z_ char * _Str, _In_ unsigned int _Val, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1455 _Check_return_wat_ _CRTIMP errno_t __cdecl _tcsnset_s_l(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val , _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1456 _CRTIMP char * __cdecl _tcsrev(_Inout_z_ char * _Str);
1457 _CRT_INSECURE_DEPRECATE(_tcsset_s) _CRTIMP char * __cdecl _tcsset(_Inout_z_ char * _Str, _In_ unsigned int _Val);
1458 _CRT_INSECURE_DEPRECATE(_tcsset_s_l) _CRTIMP char * __cdecl _tcsset_l(_Inout_z_ char * _Str, _In_ unsigned int _Val, _In_opt_ _locale_t _Locale);
1459 _Check_return_wat_ _CRTIMP errno_t __cdecl _tcsset_s(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val);
1460 _Check_return_wat_ _CRTIMP errno_t __cdecl _tcsset_s_l(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int, _In_opt_ _locale_t _Locale);
1461 
1462 _Check_return_ _CRTIMP int __cdecl _tcscmp(_In_z_ const char *_Str1, _In_z_ const char * _Str);
1463 _Check_return_ _CRTIMP int __cdecl _tcsicmp(_In_z_ const char *_Str1, _In_z_ const char *_Str2);
1464 _Check_return_ _CRTIMP int __cdecl _tcsicmp_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_opt_ _locale_t _Locale);
1465 _Check_return_ _CRTIMP int __cdecl _tcsnccmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1466 _Check_return_ _CRTIMP int __cdecl _tcsncmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1467 _Check_return_ _CRTIMP int __cdecl _tcsncicmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1468 _Check_return_ _CRTIMP int __cdecl _tcsncicmp_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1469 _Check_return_ _CRTIMP int __cdecl _tcsnicmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1470 _Check_return_ _CRTIMP int __cdecl _tcsnicmp_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, size_t _MaxCount, _In_opt_ _locale_t _Locale);
1471 
1472 _Check_return_ _CRTIMP int __cdecl _tcscoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2);
1473 _Check_return_ _CRTIMP int __cdecl _tcscoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_opt_ _locale_t _Locale);
1474 _Check_return_ _CRTIMP int __cdecl _tcsicoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2);
1475 _Check_return_ _CRTIMP int __cdecl _tcsicoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_opt_ _locale_t _Locale);
1476 _Check_return_ _CRTIMP int __cdecl _tcsnccoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1477 _Check_return_ _CRTIMP int __cdecl _tcsnccoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1478 _Check_return_ _CRTIMP int __cdecl _tcsncoll(_In_z_ const char *_Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1479 _Check_return_ _CRTIMP int __cdecl _tcsncoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, size_t _MaxCount, _In_opt_ _locale_t _Locale);
1480 _Check_return_ _CRTIMP int __cdecl _tcsncicoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1481 _Check_return_ _CRTIMP int __cdecl _tcsncicoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1482 _Check_return_ _CRTIMP int __cdecl _tcsnicoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1483 _Check_return_ _CRTIMP int __cdecl _tcsnicoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1484 
1485 /* "logical-character" mappings */
1486 
1487 _Check_return_ _CRTIMP size_t __cdecl _tcsclen(_In_z_ const char *_Str);
1488 _Check_return_ _CRTIMP size_t __cdecl _tcscnlen(_In_z_ const char *_Str, _In_ size_t _MaxCount);
1489 _Check_return_ _CRTIMP size_t __cdecl _tcsclen_l(_In_z_ const char *_Str, _In_opt_ _locale_t _Locale);
1490 _Check_return_ _CRTIMP size_t __cdecl _tcscnlen_l(_In_z_ const char *_Str, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1491 _CRT_INSECURE_DEPRECATE(_tcsnccat_s) _CRTIMP char * __cdecl _tcsnccat(_Inout_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1492 _CRTIMP char * __cdecl _tcsnccat_s(_Inout_updates_z_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1493 _CRT_INSECURE_DEPRECATE(_tcsnccat_s_l) _CRTIMP char * __cdecl _tcsnccat_l(_Inout_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1494 _CRTIMP char * __cdecl _tcsnccat_s_l(_Inout_updates_z_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1495 _CRT_INSECURE_DEPRECATE(_tcsnccpy_s) _CRTIMP char * __cdecl _tcsnccpy(_Out_writes_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1496 _CRTIMP char * __cdecl _tcsnccpy_s(_Out_writes_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1497 _CRT_INSECURE_DEPRECATE(_tcsnccpy_s_l) _CRTIMP char * __cdecl _tcsnccpy_l(_Out_writes_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1498 _CRTIMP char * __cdecl _tcsnccpy_s_l(_Out_writes_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1499 _CRT_INSECURE_DEPRECATE(_tcsncset_s) _CRTIMP char * __cdecl _tcsncset(_Inout_updates_z_(_MaxCount) char * _Str, _In_ unsigned int _Val, _In_ size_t _MaxCount);
1500 _CRTIMP char * __cdecl _tcsncset_s(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val, _In_ size_t _MaxCount);
1501 _CRT_INSECURE_DEPRECATE(_tcsncset_s_l) _CRTIMP char * __cdecl _tcsncset_l(_Inout_updates_z_(_MaxCount) char * _Str, _In_ unsigned int _Val, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1502 _CRTIMP char * __cdecl _tcsncset_s_l(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1503 
1504 /* MBCS-specific mappings */
1505 
1506 _CRTIMP char * __cdecl _tcsdec(_In_reads_z_(_Pos-_Start+1) const char * _Start, _In_z_ const char * _Pos);
1507 _CRTIMP char * __cdecl _tcsinc(_In_z_ const char * _Ptr);
1508 _CRTIMP size_t __cdecl _tcsnbcnt(_In_reads_or_z_(_MaxCount) const char * _Str, _In_ size_t _MaxCount);
1509 _CRTIMP size_t __cdecl _tcsnccnt(_In_reads_or_z_(_MaxCount) const char * _Str, _In_ size_t _MaxCount);
1510 _CRTIMP unsigned int __cdecl _tcsnextc (_In_z_ const char * _Str);
1511 _CRTIMP char * __cdecl _tcsninc(_In_reads_or_z_(_Count) const char * _Ptr, _In_ size_t _Count);
1512 _CRTIMP char * __cdecl _tcsspnp(_In_z_ const char * _Str1, _In_z_ const char * _Str2);
1513 
1514 _CRT_INSECURE_DEPRECATE(_tcslwr_s) _CRTIMP char * __cdecl _tcslwr(_Inout_ char *_Str);
1515 _CRT_INSECURE_DEPRECATE(_tcslwr_s_l) _CRTIMP char * __cdecl _tcslwr_l(_Inout_ char *_Str, _In_opt_ _locale_t _Locale);
1516 _CRTIMP char * __cdecl _tcslwr_s(_Inout_updates_z_(_SizeInChars) char *_Str, _In_ size_t _SizeInChars);
1517 _CRTIMP char * __cdecl _tcslwr_s_l(_Inout_updates_z_(_SizeInChars) char *_Str, _In_ size_t _SizeInChars, _In_opt_ _locale_t _Locale);
1518 _CRT_INSECURE_DEPRECATE(_tcsupr_s) _CRTIMP char * __cdecl _tcsupr(_Inout_ char *_Str);
1519 _CRT_INSECURE_DEPRECATE(_tcsupr_s_l) _CRTIMP char * __cdecl _tcsupr_l(_Inout_ char *_Str, _In_opt_ _locale_t _Locale);
1520 _CRTIMP char * __cdecl _tcsupr_s(_Inout_updates_z_(_SizeInChars) char *_Str, _In_ size_t _SizeInChars);
1521 _CRTIMP char * __cdecl _tcsupr_s_l(_Inout_updates_z_(_SizeInChars) char *_Str, _In_ size_t _SizeInChars, _In_opt_ _locale_t _Locale);
1522 
1523 _Check_return_ _CRTIMP size_t __cdecl _tclen(_In_z_ const char * _Str);
1524 _CRT_INSECURE_DEPRECATE(_tccpy_s) _CRTIMP void __cdecl _tccpy(_Pre_notnull_ _Post_z_ char * _DstCh, _In_z_ const char * _SrcCh);
1525 _CRT_INSECURE_DEPRECATE(_tccpy_s_l) _CRTIMP void __cdecl _tccpy_l(_Pre_notnull_ _Post_z_ char * _DstCh, _In_z_ const char * _SrcCh, _In_opt_ _locale_t _Locale);
1526 _Check_return_wat_ _CRTIMP errno_t __cdecl _tccpy_s(_Out_writes_z_(_SizeInBytes) char * _DstCh, size_t _SizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const char * _SrcCh);
1527 _Check_return_wat_ _CRTIMP errno_t __cdecl _tccpy_s_l(_Out_writes_z_(_SizeInBytes) char * _DstCh, size_t _SizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const char * _SrcCh, _In_opt_ _locale_t _Locale);
1528 
1529 #else /* __STDC__ || defined (_NO_INLINING) */
1530 
1531 /* the default: use type-safe inline function thunks */
1532 
1533 #define _PUC unsigned char *
1534 #define _CPUC const unsigned char *
1535 #define _PC char *
1536 #define _CRPC _CONST_RETURN char *
1537 #define _CPC const char *
1538 #define _UI unsigned int
1539 
1540 
1541 /* String functions */
1542 
1543 __inline _CRPC _tcschr(_In_ _CPC _s1,_In_ _UI _c) {return (_CRPC)_mbschr((_CPUC)_s1,_c);}
1544 __inline size_t _tcscspn(_In_ _CPC _s1,_In_ _CPC _s2) {return _mbscspn((_CPUC)_s1,(_CPUC)_s2);}
1545 
1546 _Check_return_wat_ __inline errno_t _tcsncat_s(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const char *_Source, _In_ size_t _Count)
1547 {
1548  return _mbsnbcat_s((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source,_Count);
1549 }
1550 
1551 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsncat_s, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count)
1552 
1553 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncat, _tcsncat_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1554 {
1555 #pragma warning(push)
1556 #pragma warning(disable:4996)
1557  return (char *)_mbsnbcat((unsigned char *)_Dst,(const unsigned char *)_Source,_Count);
1558 #pragma warning(pop)
1559 }
1560 
1561 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncat, _tcsncat_s, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1562 
1563 _Check_return_wat_ __inline errno_t _tcsncat_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const char *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1564 {
1565  return _mbsnbcat_s_l((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source,_Count, _Locale);
1566 }
1567 
1568 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsncat_s_l, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1569 
1570 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncat_l, _tcsncat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1571 {
1572 #pragma warning(push)
1573 #pragma warning(disable:4996)
1574  return (char *)_mbsnbcat_l((unsigned char *)_Dst,(const unsigned char *)_Source,_Count, _Locale);
1575 #pragma warning(pop)
1576 }
1577 
1578 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncat_l, _tcsncat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1579 
1580 _Check_return_wat_ __inline errno_t _tcsncpy_s(_Out_writes_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source,_In_ size_t _Count)
1581 {
1582  return _mbsnbcpy_s((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source,_Count);
1583 }
1584 
1585 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsncpy_s, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count)
1586 
1587 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncpy, _tcsncpy_s, _Out_writes_bytes_(_Size) _Post_maybez_ char, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1588 {
1589 #pragma warning(push)
1590 #pragma warning(disable:4996)
1591  return (char *)_mbsnbcpy((unsigned char *)_Dst,(const unsigned char *)_Source,_Count);
1592 #pragma warning(pop)
1593 }
1594 
1595 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncpy, _tcsncpy_s, _Out_writes_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1596 
1597 _Check_return_wat_ __inline errno_t _tcsncpy_s_l(_Out_writes_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source,_In_ size_t _Count, _In_opt_ _locale_t _Locale)
1598 {
1599  return _mbsnbcpy_s_l((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source,_Count, _Locale);
1600 }
1601 
1602 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsncpy_s_l, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1603 
1604 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncpy_l, _tcsncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_bytes_(_Count) _Post_maybez_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1605 {
1606 #pragma warning(push)
1607 #pragma warning(disable:4996)
1608  return (char *)_mbsnbcpy_l((unsigned char *)_Dst,(const unsigned char *)_Source,_Count, _Locale);
1609 #pragma warning(pop)
1610 }
1611 
1612 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncpy_l, _tcsncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_z_(_Count), char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1613 
1614 _Check_return_ __inline _CRPC _tcspbrk(_In_ _CPC _s1,_In_ _CPC _s2) {return (_CRPC)_mbspbrk((_CPUC)_s1,(_CPUC)_s2);}
1615 _Check_return_ __inline _CRPC _tcsrchr(_In_ _CPC _s1,_In_ _UI _c) {return (_CRPC)_mbsrchr((_CPUC)_s1,_c);}
1616 _Check_return_ __inline size_t _tcsspn(_In_ _CPC _s1,_In_ _CPC _s2) {return _mbsspn((_CPUC)_s1,(_CPUC)_s2);}
1617 _Check_return_ __inline _CRPC _tcsstr(_In_ _CPC _s1,_In_ _CPC _s2) {return (_CRPC)_mbsstr((_CPUC)_s1,(_CPUC)_s2);}
1618 
1619 _Check_return_ _CRT_INSECURE_DEPRECATE(_tcstok_s) __inline char * _tcstok(_Inout_opt_z_ char * _String,_In_z_ const char * _Delimiters)
1620 {
1621 #pragma warning(push)
1622 #pragma warning(disable:4996)
1623  return (char * )_mbstok((unsigned char *)_String,(const unsigned char *)_Delimiters);
1624 #pragma warning(pop)
1625 }
1626 
1627 _Check_return_ __inline char * _tcstok_s(_Inout_opt_z_ char * _String,_In_z_ const char * _Delimiters, _Inout_ _Deref_prepost_opt_z_ char **_Current_position)
1628 {
1629  return (char * )_mbstok_s((unsigned char *)_String,(const unsigned char *)_Delimiters, (unsigned char **)_Current_position);
1630 }
1631 
1632 _Check_return_ _CRT_INSECURE_DEPRECATE(_tcstok_s_l) __inline char * _tcstok_l(_Inout_opt_z_ char * _String,_In_z_ const char * _Delimiters, _In_opt_ _locale_t _Locale)
1633 {
1634 #pragma warning(push)
1635 #pragma warning(disable:4996)
1636  return (char * )_mbstok_l((unsigned char *)_String,(const unsigned char *)_Delimiters, _Locale);
1637 #pragma warning(pop)
1638 }
1639 
1640 _Check_return_ __inline char * _tcstok_s_l(_Inout_opt_z_ char * _String,_In_z_ const char * _Delimiters, _Inout_ _Deref_prepost_opt_z_ char **_Current_position, _In_opt_ _locale_t _Locale)
1641 {
1642  return (char * )_mbstok_s_l((unsigned char *)_String,(const unsigned char *)_Delimiters, (unsigned char **)_Current_position, _Locale);
1643 }
1644 
1645 _Check_return_wat_ __inline errno_t _tcsnset_s(_Inout_updates_z_(_SizeInBytes) char * _Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Value , _In_ size_t _Count)
1646 {
1647  return _mbsnbset_s((unsigned char *)_Dst, _SizeInBytes, _Value, _Count);
1648 }
1649 
1650 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsnset_s, _Prepost_z_ char, _Dest, _In_ unsigned int, _Value , _In_ size_t, _Count)
1651 
1652 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnset, _tcsnset_s, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count) char, _Dst, _In_ unsigned int, _Value , _In_ size_t, _Count)
1653 {
1654 #pragma warning(push)
1655 #pragma warning(disable:4996)
1656  return (char *)_mbsnbset((unsigned char *)_Dst, _Value, _Count);
1657 #pragma warning(pop)
1658 }
1659 
1660 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnset, _tcsnset_s, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count), char, _Dst, _In_ unsigned int, _Value , _In_ size_t, _Count)
1661 
1662 _Check_return_wat_ __inline errno_t _tcsnset_s_l(_Inout_updates_z_(_SizeInBytes) char * _Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Value , _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1663 {
1664  return _mbsnbset_s_l((unsigned char *)_Dst, _SizeInBytes, _Value, _Count, _Locale);
1665 }
1666 
1667 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsnset_s_l, _Prepost_z_ char, _Dest, _In_ unsigned int, _Value , _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1668 
1669 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnset_l, _tcsnset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count) char, _Dst, _In_ unsigned int, _Value , _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1670 {
1671 #pragma warning(push)
1672 #pragma warning(disable:4996)
1673  return (char *)_mbsnbset_l((unsigned char *)_Dst, _Value, _Count, _Locale);
1674 #pragma warning(pop)
1675 }
1676 
1677 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnset_l, _tcsnset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count), char, _Dst, _In_ unsigned int, _Value , _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1678 
1679 __inline _PC _tcsrev(_Inout_ _PC _s1) {return (_PC)_mbsrev((_PUC)_s1);}
1680 
1681 _Check_return_wat_ __inline errno_t _tcsset_s(_Inout_updates_z_(_SizeInBytes) char * _Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Value)
1682 {
1683  return _mbsset_s((unsigned char *)_Dst, _SizeInBytes, _Value);
1684 }
1685 
1686 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _tcsset_s, _Prepost_z_ char, _Dest, _In_ unsigned int, _Value)
1687 
1688 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcsset, _tcsset_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_ unsigned int, _Value)
1689 {
1690 #pragma warning(push)
1691 #pragma warning(disable:4996)
1692  return (char *)_mbsset((unsigned char *)_Dst, _Value);
1693 #pragma warning(pop)
1694 }
1695 
1696 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcsset, _tcsset_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_ unsigned int, _Value)
1697 
1698 _Check_return_wat_ __inline errno_t _tcsset_s_l(_Inout_updates_z_(_SizeInBytes) char * _Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Value, _In_opt_ _locale_t _Locale)
1699 {
1700  return _mbsset_s_l((unsigned char *)_Dst, _SizeInBytes, _Value, _Locale);
1701 }
1702 
1703 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsset_s_l, _Prepost_z_ char, _Dest, _In_ unsigned int, _Value, _In_opt_ _locale_t, _Locale)
1704 
1705 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsset_l, _tcsset_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_ unsigned int, _Value, _In_opt_ _locale_t, _Locale)
1706 {
1707 #pragma warning(push)
1708 #pragma warning(disable:4996)
1709  return (char *)_mbsset_l((unsigned char *)_Dst, _Value, _Locale);
1710 #pragma warning(pop)
1711 }
1712 
1713 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsset_l, _tcsset_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_ unsigned int, _Value, _In_opt_ _locale_t, _Locale)
1714 
1715 _Check_return_ __inline int _tcscmp(_In_ _CPC _s1,_In_ _CPC _s2) {return _mbscmp((_CPUC)_s1,(_CPUC)_s2);}
1716 
1717 _Check_return_ __inline int _tcsicmp(_In_z_ const char * _String1, _In_z_ const char * _String2)
1718 {
1719  return _mbsicmp((const unsigned char *)_String1,(const unsigned char *)_String2);
1720 }
1721 
1722 _Check_return_ __inline int _tcsicmp_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_opt_ _locale_t _Locale)
1723 {
1724  return _mbsicmp_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Locale);
1725 }
1726 
1727 _Check_return_ __inline int _tcsnccmp(_In_ _CPC _s1,_In_ _CPC _s2,_In_ size_t _n) {return _mbsncmp((_CPUC)_s1,(_CPUC)_s2,_n);}
1728 __inline int _tcsncmp(_In_ _CPC _s1,_In_ _CPC _s2,_In_ size_t _n) {return _mbsnbcmp((_CPUC)_s1,(_CPUC)_s2,_n);}
1729 
1730 _Check_return_ __inline int _tcsncicmp(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Char_count)
1731 {
1732  return _mbsnicmp((const unsigned char *)_String1,(const unsigned char *)_String2,_Char_count);
1733 }
1734 
1735 _Check_return_ __inline int _tcsncicmp_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Char_count, _In_opt_ _locale_t _Locale)
1736 {
1737  return _mbsnicmp_l((const unsigned char *)_String1,(const unsigned char *)_String2,_Char_count, _Locale);
1738 }
1739 
1740 _Check_return_ __inline int _tcsnicmp(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Char_count)
1741 {
1742  return _mbsnbicmp((const unsigned char *)_String1,(const unsigned char *)_String2,_Char_count);
1743 }
1744 
1745 _Check_return_ __inline int _tcsnicmp_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Char_count, _In_opt_ _locale_t _Locale)
1746 {
1747  return _mbsnbicmp_l((const unsigned char *)_String1,(const unsigned char *)_String2,_Char_count, _Locale);
1748 }
1749 
1750 _Check_return_ __inline int _tcscoll(_In_z_ const char * _String1, _In_z_ const char * _String2)
1751 {
1752  return _mbscoll((const unsigned char *)_String1,(const unsigned char *)_String2);
1753 }
1754 
1755 _Check_return_ __inline int _tcscoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_opt_ _locale_t _Locale)
1756 {
1757  return _mbscoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Locale);
1758 }
1759 
1760 _Check_return_ __inline int _tcsicoll(_In_z_ const char * _String1, _In_z_ const char * _String2)
1761 {
1762  return _mbsicoll((const unsigned char *)_String1,(const unsigned char *)_String2);
1763 }
1764 
1765 _Check_return_ __inline int _tcsicoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_opt_ _locale_t _Locale)
1766 {
1767  return _mbsicoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Locale);
1768 }
1769 
1770 _Check_return_ __inline int _tcsnccoll(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count)
1771 {
1772  return _mbsncoll((const unsigned char *)_String1,(const unsigned char *)_String2, _Count);
1773 }
1774 
1775 _Check_return_ __inline int _tcsnccoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1776 {
1777  return _mbsncoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Count, _Locale);
1778 }
1779 
1780 _Check_return_ __inline int _tcsncoll(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count)
1781 {
1782  return _mbsnbcoll((const unsigned char *)_String1,(const unsigned char *)_String2, _Count);
1783 }
1784 
1785 _Check_return_ __inline int _tcsncoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1786 {
1787  return _mbsnbcoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Count, _Locale);
1788 }
1789 
1790 _Check_return_ __inline int _tcsncicoll(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count)
1791 {
1792  return _mbsnicoll((const unsigned char *)_String1,(const unsigned char *)_String2, _Count);
1793 }
1794 
1795 _Check_return_ __inline int _tcsncicoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1796 {
1797  return _mbsnicoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Count, _Locale);
1798 }
1799 
1800 _Check_return_ __inline int _tcsnicoll(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count)
1801 {
1802  return _mbsnbicoll((const unsigned char *)_String1,(const unsigned char *)_String2, _Count);
1803 }
1804 
1805 _Check_return_ __inline int _tcsnicoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1806 {
1807  return _mbsnbicoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Count, _Locale);
1808 }
1809 
1810 /* "logical-character" mappings */
1811 _Check_return_ __inline size_t _tcsclen(_In_z_ const char * _String)
1812 {
1813  return _mbslen((const unsigned char *)_String);
1814 }
1815 
1816 _Check_return_ __inline size_t _tcscnlen(_In_z_ const char * _String, _In_ size_t _Maximum)
1817 {
1818  return _mbsnlen((const unsigned char *)_String, _Maximum);
1819 }
1820 
1821 _Check_return_ __inline size_t _tcsclen_l(_In_z_ const char * _String, _In_opt_ _locale_t _Locale)
1822 {
1823  return _mbslen_l((const unsigned char *)_String, _Locale);
1824 }
1825 
1826 _Check_return_ __inline size_t _tcscnlen_l(_In_z_ const char * _String, _In_ size_t _Maximum, _In_opt_ _locale_t _Locale)
1827 {
1828  return _mbsnlen_l((const unsigned char *)_String, _Maximum, _Locale);
1829 }
1830 
1831 _Check_return_wat_ __inline errno_t _tcsnccat_s(_Inout_updates_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source, _In_ size_t _Count)
1832 {
1833  return _mbsncat_s((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source, _Count);
1834 }
1835 
1836 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsnccat_s, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count)
1837 
1838 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnccat, _tcsnccat_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1839 {
1840 #pragma warning(push)
1841 #pragma warning(disable:4996)
1842  return (char *)_mbsncat((unsigned char *)_Dst,(const unsigned char *)_Source, _Count);
1843 #pragma warning(pop)
1844 }
1845 
1846 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnccat, _tcsnccat_s, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1847 
1848 _Check_return_wat_ __inline errno_t _tcsnccat_s_l(_Inout_updates_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1849 {
1850  return _mbsncat_s_l((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source, _Count, _Locale);
1851 }
1852 
1853 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsnccat_s_l, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1854 
1855 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnccat_l, _tcsnccat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1856 {
1857 #pragma warning(push)
1858 #pragma warning(disable:4996)
1859  return (char *)_mbsncat_l((unsigned char *)_Dst,(const unsigned char *)_Source, _Count, _Locale);
1860 #pragma warning(pop)
1861 }
1862 
1863 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnccat_l, _tcsnccat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1864 
1865 _Check_return_wat_ __inline errno_t _tcsnccpy_s(_Out_writes_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source, _In_ size_t _Count)
1866 {
1867  return _mbsncpy_s((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source, _Count);
1868 }
1869 
1870 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsnccpy_s, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count)
1871 
1872 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnccpy, _tcsnccpy_s, _Out_writes_bytes_(_Size) _Post_maybez_ char, _Pre_notnull_ _Post_maybez_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1873 {
1874 #pragma warning(push)
1875 #pragma warning(disable:4996)
1876  return (char *)_mbsncpy((unsigned char *)_Dst,(const unsigned char *)_Source, _Count);
1877 #pragma warning(pop)
1878 }
1879 
1880 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnccpy, _tcsnccpy_s, _Out_writes_z_(_Size) char, _Pre_notnull_ _Post_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1881 
1882 _Check_return_wat_ __inline errno_t _tcsnccpy_s_l(_Out_writes_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1883 {
1884  return _mbsncpy_s_l((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source, _Count, _Locale);
1885 }
1886 
1887 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsnccpy_s_l, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1888 
1889 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnccpy_l, _tcsnccpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_bytes_(_Count) _Post_maybez_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1890 {
1891 #pragma warning(push)
1892 #pragma warning(disable:4996)
1893  return (char *)_mbsncpy_l((unsigned char *)_Dst,(const unsigned char *)_Source, _Count, _Locale);
1894 #pragma warning(pop)
1895 }
1896 
1897 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnccpy_l, _tcsnccpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_bytes_(_Count) _Post_maybez_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1898 
1899 _Check_return_wat_ __inline errno_t _tcsncset_s(_Inout_updates_bytes_(_SizeInBytes) char *_Destination, _In_ size_t _SizeInBytes, _In_ unsigned int _Value, _In_ size_t _Count)
1900 {
1901  return _mbsnset_s((unsigned char *)_Destination, _SizeInBytes, _Value, _Count);
1902 }
1903 
1904 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsncset_s, char, _Dest, _In_ unsigned int, _Value, _In_ size_t, _Count)
1905 
1906 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncset, _tcsncset_s, _Inout_updates_z_(_Size) char, _Inout_updates_bytes_(_Count) char, _Dst, _In_ unsigned int, _Value, _In_ size_t, _Count)
1907 {
1908 #pragma warning(push)
1909 #pragma warning(disable:4996)
1910  return (char *)_mbsnset((unsigned char *)_Dst, _Value, _Count);
1911 #pragma warning(pop)
1912 }
1913 
1914 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncset, _tcsncset_s, _Inout_updates_z_(_Size) char, _Inout_updates_bytes_(_Count), char, _Dst, _In_ unsigned int, _Value, _In_ size_t, _Count)
1915 
1916 _Check_return_wat_ __inline errno_t _tcsncset_s_l(_Inout_updates_bytes_(_SizeInBytes) char *_Destination, _In_ size_t _SizeInBytes, _In_ unsigned int _Value, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1917 {
1918  return _mbsnset_s_l((unsigned char *)_Destination, _SizeInBytes, _Value, _Count, _Locale);
1919 }
1920 
1921 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsncset_s_l, char, _Dest, _In_ unsigned int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1922 
1923 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncset_l, _tcsncset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_bytes_(_Count) char, _Dst, _In_ unsigned int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1924 {
1925 #pragma warning(push)
1926 #pragma warning(disable:4996)
1927  return (char *)_mbsnset_l((unsigned char *)_Dst, _Value, _Count, _Locale);
1928 #pragma warning(pop)
1929 }
1930 
1931 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncset_l, _tcsncset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_bytes_(_Count), char, _Dst, _In_ unsigned int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1932 
1933 /* MBCS-specific mappings */
1934 
1935 _Check_return_ __inline _PC _tcsdec(_In_ _CPC _s1,_In_ _CPC _s2) {return (_PC)_mbsdec((_CPUC)_s1,(_CPUC)_s2);}
1936 _Check_return_ __inline _PC _tcsinc(_In_ _CPC _s1) {return (_PC)_mbsinc((_CPUC)_s1);}
1937 _Check_return_ __inline size_t _tcsnbcnt(_In_ _CPC _s1,_In_ size_t _n) {return _mbsnbcnt((_CPUC)_s1,_n);}
1938 _Check_return_ __inline size_t _tcsnccnt(_In_ _CPC _s1,_In_ size_t _n) {return _mbsnccnt((_CPUC)_s1,_n);}
1939 _Check_return_ __inline _PC _tcsninc(_In_ _CPC _s1,_In_ size_t _n) {return (_PC)_mbsninc((_CPUC)_s1,_n);}
1940 _Check_return_ __inline _PC _tcsspnp(_In_ _CPC _s1,_In_ _CPC _s2) {return (_PC)_mbsspnp((_CPUC)_s1,(_CPUC)_s2);}
1941 
1942 _Check_return_wat_ __inline errno_t _tcslwr_s(_Inout_updates_z_(_SizeInBytes) char * _String, size_t _SizeInBytes)
1943 {
1944  return _mbslwr_s((unsigned char *)_String, _SizeInBytes);
1945 }
1946 
1948 
1949 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(char *, __RETURN_POLICY_DST, _tcslwr, _tcslwr_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String)
1950 {
1951 #pragma warning(push)
1952 #pragma warning(disable:4996)
1953  return (char *)_mbslwr((unsigned char *)_String);
1954 #pragma warning(pop)
1955 }
1956 
1957 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(char *, __RETURN_POLICY_DST, _tcslwr, _tcslwr_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String)
1958 
1959 _Check_return_wat_ __inline errno_t _tcslwr_s_l(_Inout_updates_z_(_SizeInBytes) char * _String, _In_ size_t _SizeInBytes, _In_opt_ _locale_t _Locale)
1960 {
1961  return _mbslwr_s_l((unsigned char *)_String, _SizeInBytes, _Locale);
1962 }
1963 
1964 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _tcslwr_s_l, _Prepost_z_ char, _String, _In_opt_ _locale_t, _Locale)
1965 
1966 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcslwr_l, _tcslwr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String, _In_opt_ _locale_t, _Locale)
1967 {
1968 #pragma warning(push)
1969 #pragma warning(disable:4996)
1970  return (char *)_mbslwr_l((unsigned char *)_String, _Locale);
1971 #pragma warning(pop)
1972 }
1973 
1974 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcslwr_l, _tcslwr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String, _In_opt_ _locale_t, _Locale)
1975 
1976 _Check_return_wat_ __inline errno_t _tcsupr_s(_Inout_updates_z_(_Count) char * _String, _In_ size_t _Count)
1977 {
1978  return _mbsupr_s((unsigned char *)_String, _Count);
1979 }
1980 
1982 
1983 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(char *, __RETURN_POLICY_DST, _tcsupr, _tcsupr_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String)
1984 {
1985 #pragma warning(push)
1986 #pragma warning(disable:4996)
1987  return (char *)_mbsupr((unsigned char *)_String);
1988 #pragma warning(pop)
1989 }
1990 
1991 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(char *, __RETURN_POLICY_DST, _tcsupr, _tcsupr_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String)
1992 
1993 _Check_return_wat_ __inline errno_t _tcsupr_s_l(_Inout_updates_z_(_Count) char * _String, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1994 {
1995  return _mbsupr_s_l((unsigned char *)_String, _Count, _Locale);
1996 }
1997 
1998 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _tcsupr_s_l, _Prepost_z_ char, _String, _In_opt_ _locale_t, _Locale)
1999 
2000 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcsupr_l, _tcsupr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String, _In_opt_ _locale_t, _Locale)
2001 {
2002 #pragma warning(push)
2003 #pragma warning(disable:4996)
2004  return (char *)_mbsupr_l((unsigned char *)_String, _Locale);
2005 #pragma warning(pop)
2006 }
2007 
2008 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcsupr_l, _tcsupr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String, _In_opt_ _locale_t, _Locale)
2009 
2010 _Check_return_ __inline size_t _tclen(_In_z_ _CPC _s1) {return _mbclen((_CPUC)_s1);}
2011 
2012 _Check_return_wat_ __inline errno_t _tccpy_s(_Out_writes_z_(_SizeInBytes) char * _Destination, size_t _SizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const char * _Source)
2013 {
2014  return _mbccpy_s((unsigned char *)_Destination, _SizeInBytes, _PCopied, (const unsigned char *)_Source);
2015 }
2016 
2017 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tccpy_s, _Post_z_ char, _Dest, _Out_opt_ int *, _PCopied, _In_z_ const char *, _Source)
2018 
2019 _CRT_INSECURE_DEPRECATE(_tccpy_s) __inline void _tccpy(_Out_writes_z_(2) char * _Destination, _In_z_ const char * _Source)
2020 {
2021 #pragma warning(push)
2022 #pragma warning(disable:4996)
2023  _mbccpy((unsigned char *)_Destination, (const unsigned char *)_Source);
2024 #pragma warning(pop)
2025 }
2026 
2027 _Check_return_wat_ __inline errno_t _tccpy_s_l(_Out_writes_z_(_SizeInBytes) char * _Destination, _In_ size_t _SizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const char * _Source, _In_opt_ _locale_t _Locale)
2028 {
2029  return _mbccpy_s_l((unsigned char *)_Destination, _SizeInBytes, _PCopied, (const unsigned char *)_Source, _Locale);
2030 }
2031 
2032 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tccpy_s_l, _Post_z_ char, _Dest, _Out_opt_ int *, _PCopied, _In_z_ const char *, _Source, _In_opt_ _locale_t, _Locale)
2033 
2034 _CRT_INSECURE_DEPRECATE(_tccpy_s_l) __inline void _tccpy_l(_Out_writes_z_(2) char * _Destination, _In_z_ const char * _Source, _In_opt_ _locale_t _Locale)
2035 {
2036 #pragma warning(push)
2037 #pragma warning(disable:4996)
2038  _mbccpy_l((unsigned char *)_Destination,( const unsigned char *)_Source, _Locale);
2039 #pragma warning(pop)
2040 }
2041 
2042 /* inline helper */
2043 _Check_return_ __inline _UI _tcsnextc(_In_z_ _CPC _s1)
2044 {
2045  _UI _n=0;
2046  if (_ismbblead((_UI)*(_PUC)_s1))
2047  {
2048  /* for a dud MBCS string (leadbyte, EOS), we don't move forward 2
2049  We do not assert here because this routine is too low-level
2050  */
2051  if(_s1[1]!='\0')
2052  {
2053  _n=((_UI)*(_PUC)_s1)<<8;
2054  _s1++;
2055  }
2056  }
2057  _n+=(_UI)*(_PUC)_s1;
2058 
2059  return(_n);
2060 }
2061 
2062 #endif /* __STDC__ || defined (_NO_INLINING) */
2063 
2064 #ifdef __cplusplus
2065 #ifndef _CPP_TCHAR_INLINES_DEFINED
2066 #define _CPP_TCHAR_INLINES_DEFINED
2067 extern "C++" {
2068 _Check_return_ inline char * __CRTDECL _tcschr(_In_z_ char *_S, _In_ unsigned int _C)
2069  {return ((char *)_tcschr((const char *)_S, _C)); }
2070 _Check_return_ inline char * __CRTDECL _tcspbrk(_In_z_ char *_S, _In_z_ const char *_P)
2071  {return ((char *)_tcspbrk((const char *)_S, _P)); }
2072 _Check_return_ inline char * __CRTDECL _tcsrchr(_In_z_ char *_S, _In_ unsigned int _C)
2073  {return ((char *)_tcsrchr((const char *)_S, _C)); }
2074 _Check_return_ inline char * __CRTDECL _tcsstr(_In_z_ char *_S, _In_z_ const char *_P)
2075  {return ((char *)_tcsstr((const char *)_S, _P)); }
2076 }
2077 #endif /* _CPP_TCHAR_INLINES_DEFINED */
2078 #endif /* __cplusplus */
2079 
2080 #endif /* _MB_MAP_DIRECT */
2081 
2082 
2083 /* MBCS-specific mappings */
2084 
2085 #define _tccmp(_cp1,_cp2) _tcsnccmp(_cp1,_cp2,1)
2086 
2087 
2088 /* ctype functions */
2089 
2090 #define _istalnum _ismbcalnum
2091 #define _istalnum_l _ismbcalnum_l
2092 #define _istalpha _ismbcalpha
2093 #define _istalpha_l _ismbcalpha_l
2094 #define _istdigit _ismbcdigit
2095 #define _istdigit_l _ismbcdigit_l
2096 #define _istgraph _ismbcgraph
2097 #define _istgraph_l _ismbcgraph_l
2098 #define _istlegal _ismbclegal
2099 #define _istlegal_l _ismbclegal_l
2100 #define _istlower _ismbclower
2101 #define _istlower_l _ismbclower_l
2102 #define _istprint _ismbcprint
2103 #define _istprint_l _ismbcprint_l
2104 #define _istpunct _ismbcpunct
2105 #define _istpunct_l _ismbcpunct_l
2106 #define _istblank _ismbcblank
2107 #define _istblank_l _ismbcblank_l
2108 #define _istspace _ismbcspace
2109 #define _istspace_l _ismbcspace_l
2110 #define _istupper _ismbcupper
2111 #define _istupper_l _ismbcupper_l
2112 
2113 #define _totupper _mbctoupper
2114 #define _totupper_l _mbctoupper_l
2115 #define _totlower _mbctolower
2116 #define _totlower_l _mbctolower_l
2117 
2118 #define _istlead _ismbblead
2119 #define _istleadbyte isleadbyte
2120 #define _istleadbyte_l _isleadbyte_l
2121 
2122 #else /* _MBCS */
2123 
2124 /* ++++++++++++++++++++ SBCS ++++++++++++++++++++ */
2125 
2126 
2127 #ifndef __TCHAR_DEFINED
2128 typedef char _TCHAR;
2129 typedef signed char _TSCHAR;
2130 typedef unsigned char _TUCHAR;
2131 typedef char _TXCHAR;
2132 typedef int _TINT;
2133 #define __TCHAR_DEFINED
2134 #endif /* __TCHAR_DEFINED */
2135 
2136 #ifndef _TCHAR_DEFINED
2137 #if !__STDC__
2138 typedef char TCHAR;
2139 #endif /* !__STDC__ */
2140 #define _TCHAR_DEFINED
2141 #endif /* _TCHAR_DEFINED */
2142 
2143 
2144 /* String functions */
2145 
2146 #define _tcschr strchr
2147 #define _tcscspn strcspn
2148 #define _tcsncat strncat
2149 #define _tcsncat_s strncat_s
2150 #define _tcsncat_l _strncat_l
2151 #define _tcsncat_s_l _strncat_s_l
2152 #define _tcsncpy strncpy
2153 #define _tcsncpy_s strncpy_s
2154 #define _tcsncpy_l _strncpy_l
2155 #define _tcsncpy_s_l _strncpy_s_l
2156 #define _tcspbrk strpbrk
2157 #define _tcsrchr strrchr
2158 #define _tcsspn strspn
2159 #define _tcsstr strstr
2160 #define _tcstok strtok
2161 #define _tcstok_s strtok_s
2162 #define _tcstok_l _strtok_l
2163 #define _tcstok_s_l _strtok_s_l
2164 
2165 #define _tcsnset _strnset
2166 #define _tcsnset_s _strnset_s
2167 #define _tcsnset_l _strnset_l
2168 #define _tcsnset_s_l _strnset_s_l
2169 #define _tcsrev _strrev
2170 #define _tcsset _strset
2171 #define _tcsset_s _strset_s
2172 #define _tcsset_l _strset_l
2173 #define _tcsset_s_l _strset_s_l
2174 
2175 #define _tcscmp strcmp
2176 #define _tcsicmp _stricmp
2177 #define _tcsicmp_l _stricmp_l
2178 #define _tcsnccmp strncmp
2179 #define _tcsncmp strncmp
2180 #define _tcsncicmp _strnicmp
2181 #define _tcsncicmp_l _strnicmp_l
2182 #define _tcsnicmp _strnicmp
2183 #define _tcsnicmp_l _strnicmp_l
2184 
2185 #define _tcscoll strcoll
2186 #define _tcscoll_l _strcoll_l
2187 #define _tcsicoll _stricoll
2188 #define _tcsicoll_l _stricoll_l
2189 #define _tcsnccoll _strncoll
2190 #define _tcsnccoll_l _strncoll_l
2191 #define _tcsncoll _strncoll
2192 #define _tcsncoll_l _strncoll_l
2193 #define _tcsncicoll _strnicoll
2194 #define _tcsncicoll_l _strnicoll_l
2195 #define _tcsnicoll _strnicoll
2196 #define _tcsnicoll_l _strnicoll_l
2197 
2198 /* "logical-character" mappings */
2199 
2200 #define _tcsclen strlen
2201 #define _tcscnlen strnlen
2202 #define _tcsclen_l(_String, _Locale) strlen(_String)
2203 #define _tcscnlen_l(_String, _Max_count, _Locale) strnlen((_String), (_Max_count))
2204 #define _tcsnccat strncat
2205 #define _tcsnccat_s strncat_s
2206 #define _tcsnccat_l _strncat_l
2207 #define _tcsnccat_s_l _strncat_s_l
2208 #define _tcsnccpy strncpy
2209 #define _tcsnccpy_s strncpy_s
2210 #define _tcsnccpy_l _strncpy_l
2211 #define _tcsnccpy_s_l _strncpy_s_l
2212 #define _tcsncset _strnset
2213 #define _tcsncset_s _strnset_s
2214 #define _tcsncset_l _strnset_l
2215 #define _tcsncset_s_l _strnset_s_l
2216 
2217 /* MBCS-specific functions */
2218 
2219 #define _tcsdec _strdec
2220 #define _tcsinc _strinc
2221 #define _tcsnbcnt _strncnt
2222 #define _tcsnccnt _strncnt
2223 #define _tcsnextc _strnextc
2224 #define _tcsninc _strninc
2225 #define _tcsspnp _strspnp
2226 
2227 #define _tcslwr _strlwr
2228 #define _tcslwr_l _strlwr_l
2229 #define _tcslwr_s _strlwr_s
2230 #define _tcslwr_s_l _strlwr_s_l
2231 #define _tcsupr _strupr
2232 #define _tcsupr_l _strupr_l
2233 #define _tcsupr_s _strupr_s
2234 #define _tcsupr_s_l _strupr_s_l
2235 #define _tcsxfrm strxfrm
2236 #define _tcsxfrm_l _strxfrm_l
2237 
2238 #define _istlead(_Char) (0)
2239 #define _istleadbyte(_Char) (0)
2240 #define _istleadbyte_l(_Char, _Locale) (0)
2241 
2242 #if __STDC__ || defined (_NO_INLINING)
2243 #define _tclen(_pc) (1)
2244 #define _tccpy(_pc1,_cpc2) (*(_pc1) = *(_cpc2))
2245 #define _tccpy_l(_pc1,_cpc2,_locale) _tccpy((_pc1),(_cpc2))
2246 #define _tccmp(_cpc1,_cpc2) (((unsigned char)*(_cpc1))-((unsigned char)*(_cpc2)))
2247 #else /* __STDC__ || defined (_NO_INLINING) */
2248 _Check_return_ __inline size_t __CRTDECL _tclen(_In_z_ const char *_cpc)
2249 {
2250  /* avoid compiler warning */
2251  (void *)_cpc;
2252  return 1;
2253 }
2254 __inline void __CRTDECL _tccpy(_Out_ char *_pc1, _In_z_ const char *_cpc2) { *_pc1 = *_cpc2; }
2255 __inline void __CRTDECL _tccpy_l(_Out_ char *_Pc1, _In_z_ const char *_Cpc2, _In_opt_ _locale_t _Locale)
2256 {
2257  _CRT_UNUSED(_Locale);
2258 #pragma warning( push )
2259 #pragma warning( disable : 28719 )
2260  _tccpy(_Pc1, _Cpc2);
2261 #pragma warning( pop )
2262 }
2263 _Check_return_ __inline int __CRTDECL _tccmp(_In_z_ const char *_cpc1, _In_z_ const char *_cpc2) { return (int) (((unsigned char)*_cpc1)-((unsigned char)*_cpc2)); }
2264 #endif /* __STDC__ || defined (_NO_INLINING) */
2265 
2266 
2267 /* ctype-functions */
2268 
2269 #define _istalnum isalnum
2270 #define _istalnum_l _isalnum_l
2271 #define _istalpha isalpha
2272 #define _istalpha_l _isalpha_l
2273 #define _istdigit isdigit
2274 #define _istdigit_l _isdigit_l
2275 #define _istgraph isgraph
2276 #define _istgraph_l _isgraph_l
2277 #define _istlower islower
2278 #define _istlower_l _islower_l
2279 #define _istprint isprint
2280 #define _istprint_l _isprint_l
2281 #define _istpunct ispunct
2282 #define _istpunct_l _ispunct_l
2283 #define _istblank isblank
2284 #define _istblank_l _isblank_l
2285 #define _istspace isspace
2286 #define _istspace_l _isspace_l
2287 #define _istupper isupper
2288 #define _istupper_l _isupper_l
2289 
2290 #define _totupper toupper
2291 #define _totupper_l _toupper_l
2292 #define _totlower tolower
2293 #define _totlower_l _tolower_l
2294 
2295 #define _istlegal(_c) (1)
2296 
2297 
2298 /* the following is optional if functional versions are available */
2299 
2300 /* define NULL pointer value */
2301 #ifndef NULL
2302 #ifdef __cplusplus
2303 #define NULL 0
2304 #else /* __cplusplus */
2305 #define NULL ((void *)0)
2306 #endif /* __cplusplus */
2307 #endif /* NULL */
2308 
2309 
2310 #if __STDC__ || defined (_NO_INLINING)
2311 #define _strdec(_cpc1, _cpc2) ((_cpc1)>=(_cpc2) ? NULL : (_cpc2)-1)
2312 #define _strinc(_pc) ((_pc)+1)
2313 #define _strnextc(_cpc) ((unsigned int) *(const unsigned char *)(_cpc))
2314 #define _strninc(_pc, _sz) (((_pc)+(_sz)))
2315 _CRTIMP size_t __cdecl __strncnt(_In_reads_or_z_(_Cnt) const char * _Str, _In_ size_t _Cnt);
2316 #define _strncnt(_cpc, _sz) (__strncnt(_cpc,_sz))
2317 #define _strspnp(_cpc1, _cpc2) (_cpc1==NULL ? NULL : ((*((_cpc1)+strspn(_cpc1,_cpc2))) ? ((_cpc1)+strspn(_cpc1,_cpc2)) : NULL))
2318 
2319 #define _strncpy_l(_Destination, _Source, _Count, _Locale) (strncpy(_Destination, _Source, _Count))
2320 #if __STDC_WANT_SECURE_LIB__
2321 #define _strncpy_s_l(_Destination, _Destination_size_chars, _Source, _Count, _Locale) (strncpy_s(_Destination, _Destination_size_chars, _Source, _Count))
2322 #endif /* __STDC_WANT_SECURE_LIB__ */
2323 #define _strncat_l(_Destination, _Source, _Count, _Locale) (strncat(_Destination, _Source, _Count))
2324 #if __STDC_WANT_SECURE_LIB__
2325 #define _strncat_s_l(_Destination, _Destination_size_chars, _Source, _Count, _Locale) (strncat_s(_Destination, _Destination_size_chars, _Source, _Count))
2326 #endif /* __STDC_WANT_SECURE_LIB__ */
2327 #define _strtok_l(_String, _Delimiters, _Locale) (strtok(_String, _Delimiters))
2328 #if __STDC_WANT_SECURE_LIB__
2329 #define _strtok_s_l(_String, _Delimiters, _Current_position, _Locale) (strtok_s(_String, _Delimiters, _Current_position))
2330 #endif /* __STDC_WANT_SECURE_LIB__ */
2331 #define _strnset_l(_Destination, _Value, _Count, _Locale) (_strnset(_Destination, _Value, _Count))
2332 #define _strnset_s_l(_Destination, _Destination_size_chars, _Value, _Count, _Locale) (_strnset_s(_Destination, _Destination_size_chars, _Value, _Count))
2333 #define _strset_l(_Destination, _Value, _Locale) (_strset(_Destination, _Value))
2334 #define _strset_s_l(_Destination, _Destination_size_chars, _Value, _Locale) (_strset_s(_Destination, _Destination_size_chars, _Value))
2335 #else /* __STDC__ || defined (_NO_INLINING) */
2336 _Check_return_ __inline char * __CRTDECL _strdec(_In_reads_z_(_Cpc2 - _Cpc1) const char * _Cpc1, _In_z_ const char * _Cpc2) { return (char *)((_Cpc1)>=(_Cpc2) ? NULL : (_Cpc2-1)); }
2337 _Check_return_ __inline char * __CRTDECL _strinc(_In_z_ const char * _Pc) { return (char *)(_Pc+1); }
2338 _Check_return_ __inline unsigned int __CRTDECL _strnextc(_In_z_ const char * _Cpc) { return (unsigned int)*(const unsigned char *)_Cpc; }
2339 _Check_return_ __inline char * __CRTDECL _strninc(_In_reads_or_z_(_Sz) const char * _Pc, _In_ size_t _Sz) { return (char *)(_Pc+_Sz); }
2340 _Check_return_ __inline size_t __CRTDECL _strncnt(_In_reads_or_z_(_Cnt) const char * _String, _In_ size_t _Cnt)
2341 {
2342  size_t n = _Cnt;
2343  char *cp = (char *)_String;
2344  while (n-- && *cp)
2345  cp++;
2346  return _Cnt - n - 1;
2347 }
2348 _Check_return_ __inline char * __CRTDECL _strspnp
2350  _In_z_ const char * _Cpc1,
2351  _In_z_ const char * _Cpc2
2352 )
2353 {
2354  return _Cpc1==NULL ? NULL : ((*(_Cpc1 += strspn(_Cpc1,_Cpc2))!='\0') ? (char*)_Cpc1 : NULL);
2355 }
2356 
2357 #if __STDC_WANT_SECURE_LIB__
2358 _Check_return_wat_ __inline errno_t __CRTDECL _strncpy_s_l(_Out_writes_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const char *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
2359 {
2360  _CRT_UNUSED(_Locale);
2361  return strncpy_s(_Destination, _Destination_size_chars, _Source, _Count);
2362 }
2363 #endif /* __STDC_WANT_SECURE_LIB__ */
2364 
2365 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _strncpy_s_l, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2366 
2367 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncpy_l, _strncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_(_Count) char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2368 {
2369  _CRT_UNUSED(_Locale);
2370 #pragma warning( push )
2371 #pragma warning( disable : 4996 28719 )
2372  return strncpy(_Dst, _Source, _Count);
2373 #pragma warning( pop )
2374 }
2375 
2376 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncpy_l, _strncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_(_Count), char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2377 
2378 #if __STDC_WANT_SECURE_LIB__
2379 _Check_return_wat_ __inline errno_t __CRTDECL _strncat_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const char *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
2381  _CRT_UNUSED(_Locale);
2382  return strncat_s(_Destination, _Destination_size_chars, _Source, _Count);
2383 }
2384 #endif /* __STDC_WANT_SECURE_LIB__ */
2385 
2386 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _strncat_s_l, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2387 
2388 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncat_l, _strncat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2389 {
2390  _CRT_UNUSED(_Locale);
2391 #pragma warning( push )
2392 #pragma warning( disable : 4996 6054 28719 )
2393  return strncat(_Dst, _Source, _Count);
2394 #pragma warning( pop )
2395 }
2396 
2397 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncat_l, _strncat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2398 
2399 _Check_return_ _CRT_INSECURE_DEPRECATE(_strtok_s_l) __inline char * _strtok_l(_Inout_opt_z_ char * _String, _In_z_ const char * _Delimiters, _In_opt_ _locale_t _Locale)
2400 {
2401  _CRT_UNUSED(_Locale);
2402 #pragma warning(push)
2403 #pragma warning(disable:4996 28727)
2404  return strtok(_String,_Delimiters);
2405 #pragma warning(pop)
2406 }
2407 
2408 #if __STDC_WANT_SECURE_LIB__
2409 _Check_return_ __inline char * _strtok_s_l(_Inout_opt_z_ char * _String, _In_z_ const char * _Delimiters, _Inout_ _Deref_prepost_opt_z_ char **_Current_position, _In_opt_ _locale_t _Locale)
2410 {
2411  _CRT_UNUSED(_Locale);
2412  return strtok_s(_String, _Delimiters, _Current_position);
2413 }
2414 #endif /* __STDC_WANT_SECURE_LIB__ */
2415 
2416 __inline errno_t __CRTDECL _strnset_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_ int _Value, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
2417 {
2418  _CRT_UNUSED(_Locale);
2419  return _strnset_s(_Destination, _Destination_size_chars, _Value, _Count);
2420 }
2421 
2422 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _strnset_s_l, _Prepost_z_ char, _Dest, _In_ int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2423 
2424 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strnset_l, _strnset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_MaxCount) char, _Dst, _In_ int, _Value, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale)
2425 {
2426  _CRT_UNUSED(_Locale);
2427 #pragma warning( push )
2428 #pragma warning( disable : 4996 6054 )
2429  return _strnset(_Dst, _Value, _MaxCount);
2430 #pragma warning( pop )
2431 }
2432 
2433 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strnset_l, _strnset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_MaxCount), char, _Dst, _In_ int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2434 
2435 __inline errno_t __CRTDECL _strset_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_ int _Value, _In_opt_ _locale_t _Locale)
2436 {
2437  _CRT_UNUSED(_Locale);
2438  return _strset_s(_Destination, _Destination_size_chars, _Value);
2439 }
2440 
2441 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _strset_s_l, _Prepost_z_ char, _Dest, _In_ int, _Value, _In_opt_ _locale_t, _Locale)
2442 
2443 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(char *, __RETURN_POLICY_DST, _strset_l, _strset_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_ int, _Value, _In_opt_ _locale_t, _Locale)
2444 {
2445  _CRT_UNUSED(_Locale);
2446 #pragma warning( push )
2447 #pragma warning( disable : 4996 )
2448  return _strset(_Dst, _Value);
2449 #pragma warning( pop )
2450 }
2451 
2452 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(char *, __RETURN_POLICY_DST, _strset_l, _strset_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_ int, _Value, _In_opt_ _locale_t, _Locale)
2453 
2454 #endif /* __STDC__ || defined (_NO_INLINING) */
2455 
2456 
2457 #endif /* _MBCS */
2458 
2459 #ifdef _CRTBLD
2460 /*
2461  * macros for internal CRT stuff.
2462  * This saves the mess that is created in the CRT.
2463  */
2464 #ifdef _SAFECRT_IMPL
2465 #define __tinput _input
2466 #define __tinput_s _input_s
2467 #else /* _SAFECRT_IMPL */
2468 #define _tinput_l _input_l
2469 #define _tinput_s_l _input_s_l
2470 #endif /* _SAFECRT_IMPL */
2471 #define __topenfile _openfile
2472 #define _tgetpath _getpath
2473 #define __crtMessageBox __crtMessageBoxA
2474 #define __crtMessageWindow __crtMessageWindowA
2475 #define _VCrtDbgReportT _VCrtDbgReportA
2476 #define _CrtDbgReportT _CrtDbgReport
2477 #define _CrtDbgReportTV _CrtDbgReportV
2478 #define ReportHookNodeT ReportHookNode
2479 #define _pReportHookListT _pReportHookList
2480 #define _CrtSetReportHookT2 _CrtSetReportHook2
2481 #define _CRT_REPORT_HOOKT _CRT_REPORT_HOOK
2482 #define _ttmpnam_helper _tmpnam_helper
2483 #define _tfreopen_helper _freopen_helper
2484 #define _getts_helper _gets_helper
2485 #define _tfullpath_helper _fullpath_helper
2486 #define _tsopen_helper _sopen_helper
2487 #define _tsopen_nolock _sopen_nolock
2488 #define _tdupenv_s_crt _dupenv_s_crt
2489 
2490 #endif /* _CRTBLD */
2491 
2492 #endif /* _UNICODE */
2493 
2494 
2495 /* Generic text macros to be used with string literals and character constants.
2496  Will also allow symbolic constants that resolve to same. */
2497 
2498 #define _T(x) __T(x)
2499 #define _TEXT(x) __T(x)
2500 
2501 
2502 #ifdef __cplusplus
2503 } /* ... extern "C" */
2504 #endif /* __cplusplus */
2505 
2506 #endif /* _INC_TCHAR */
2507 
#define _Out_
Definition: sal.h:351
_Check_return_ _CRTIMP int __cdecl _mbsnicmp(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount)
#define _tcsclen
Definition: tchar.h:2200
#define _tcsrev
Definition: tchar.h:2169
#define _tcscspn
Definition: tchar.h:2147
_CRTIMP errno_t __cdecl _mbslwr_s_l(_Inout_updates_opt_z_(_SizeInBytes) unsigned char *_Str, _In_ size_t _SizeInBytes, _In_opt_ _locale_t _Locale)
#define _tcsncat_s_l
Definition: tchar.h:2151
_In_ size_t _In_z_ const char _In_ size_t _In_opt_ _locale_t _Locale
Definition: tchar.h:2380
__inline errno_t __CRTDECL _strnset_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_ int _Value, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
Definition: tchar.h:2416
#define _tcsncpy_s
Definition: tchar.h:2153
#define _tcsncicmp_l
Definition: tchar.h:2181
#define _tcsncpy_s_l
Definition: tchar.h:2155
_Check_return_ _CRTIMP int __cdecl _mbscmp(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2)
#define _tcsncset_s
Definition: tchar.h:2213
#define _Out_opt_
Definition: sal.h:352
#define _tcsncpy
Definition: tchar.h:2152
#define _tcsncat_l
Definition: tchar.h:2150
_Check_return_ _CRTIMP size_t __cdecl _mbsnccnt(_In_reads_or_z_(_MaxCount) const unsigned char *_Str, _In_ size_t _MaxCount)
_Check_return_ _In_ int _Out_writes_bytes_(_MaxCharCount) void *_DstBuf
#define _tcsninc
Definition: tchar.h:2224
_In_ size_t _In_ int _Value
Definition: tchar.h:2435
#define _tcsnccat_s
Definition: tchar.h:2205
_Check_return_ __inline char *__CRTDECL _strspnp(_In_z_ const char *_Cpc1, _In_z_ const char *_Cpc2)
Definition: tchar.h:2349
#define _tcsnccat_s_l
Definition: tchar.h:2207
#define _tcspbrk
Definition: tchar.h:2156
return strncat_s(_Destination, _Destination_size_chars, _Source, _Count)
_Check_return_ __inline unsigned int __CRTDECL _strnextc(_In_z_ const char *_Cpc)
Definition: tchar.h:2338
_CRTIMP unsigned char *__cdecl _mbsrev(_Inout_z_ unsigned char *_Str)
_Check_return_ _CRTIMP size_t __cdecl _mbsnbcnt(_In_reads_or_z_(_MaxCount) const unsigned char *_Str, _In_ size_t _MaxCount)
_Check_return_ _CRTIMP int __cdecl _mbsncoll(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount)
#define _CRTIMP
Definition: crtdefs.h:23
#define _tcstok_l
Definition: tchar.h:2162
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcsncpy_s(_Out_writes_z_(_SizeInWords) wchar_t *_Dst, _In_ rsize_t _SizeInWords, _In_reads_or_z_(_MaxCount) const wchar_t *_Src, _In_ rsize_t _MaxCount)
#define _tcsncat_s
Definition: tchar.h:2149
#define _tcsnicoll
Definition: tchar.h:2195
#define _Out_writes_z_(size)
Definition: sal.h:358
#define _tcsnextc
Definition: tchar.h:2223
_CRTIMP_ALTERNATIVE errno_t __cdecl _mbccpy_s(_Out_writes_z_(_SizeInBytes) unsigned char *_Dst, _In_ size_t _SizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const unsigned char *_Src)
#define _tcsupr_s_l
Definition: tchar.h:2234
#define _tcsnccmp
Definition: tchar.h:2178
__inline void __CRTDECL _tccpy(_Out_ char *_pc1, _In_z_ const char *_cpc2)
Definition: tchar.h:2254
#define _tcsncicmp
Definition: tchar.h:2180
#define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst)
Definition: crtdefs.h:845
_Check_return_ _CRTIMP int __cdecl _mbsncmp(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount)
_CRTIMP errno_t __cdecl _mbsupr_s_l(_Inout_updates_z_(_SizeInBytes) unsigned char *_Str, _In_ size_t _SizeInBytes, _In_opt_ _locale_t _Locale)
_CRTIMP_ALTERNATIVE errno_t __cdecl _mbsnbset_s(_Inout_updates_z_(_SizeInBytes) unsigned char *_Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Ch, _In_ size_t _MaxCount)
_Check_return_ _CRTIMP int __cdecl _mbsicoll_l(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_opt_ _locale_t _Locale)
_CRTIMP errno_t __cdecl _mbsncpy_s_l(_Out_writes_z_(_DstSizeInBytes) unsigned char *_Dst, _In_ size_t _DstSizeInBytes, _In_z_ const unsigned char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
unsigned short wctype_t
Definition: crtdefs.h:542
#define _tcsnset_l
Definition: tchar.h:2167
#define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
Definition: crtdefs.h:2013
char TCHAR
Definition: tchar.h:2138
_Check_return_ __inline char * _strtok_s_l(_Inout_opt_z_ char *_String, _In_z_ const char *_Delimiters, _Inout_ _Deref_prepost_opt_z_ char **_Current_position, _In_opt_ _locale_t _Locale)
Definition: tchar.h:2409
unsigned char _TUCHAR
Definition: tchar.h:2130
_Check_return_ _CRTIMP_ALTERNATIVE unsigned char *__cdecl _mbstok_s(_Inout_opt_z_ unsigned char *_Str, _In_z_ const unsigned char *_Delim, _Inout_ _Deref_prepost_opt_z_ unsigned char **_Context)
#define _tcscmp
Definition: tchar.h:2175
_Check_return_ _CRTIMP int __cdecl _mbsnbicoll(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount)
#define _tcsicmp
Definition: tchar.h:2176
_Check_return_ _CRTIMP _In_z_ const unsigned char * _Delim
Definition: mbstring.h:214
#define _tcsset_s
Definition: tchar.h:2171
unsigned short wint_t
Definition: crtdefs.h:541
_Check_return_ _CRTIMP int __cdecl _mbsnbcoll(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount)
#define _tcsstr
Definition: tchar.h:2159
_Check_return_wat_ __inline errno_t __CRTDECL _strncpy_s_l(_Out_writes_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const char *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
Definition: tchar.h:2358
_Check_return_ __inline int __CRTDECL _tccmp(_In_z_ const char *_cpc1, _In_z_ const char *_cpc2)
Definition: tchar.h:2263
#define _tcsspnp
Definition: tchar.h:2225
#define _tcsset_s_l
Definition: tchar.h:2173
#define _tcsspn
Definition: tchar.h:2158
#define _tcsnicmp_l
Definition: tchar.h:2183
_Check_return_ _CRTIMP_ALTERNATIVE wchar_t *__cdecl wcstok_s(_Inout_opt_z_ wchar_t *_Str, _In_z_ const wchar_t *_Delim, _Inout_ _Deref_prepost_opt_z_ wchar_t **_Context)
_Check_return_ _Ret_maybenull_ _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbsstr(_In_z_ const unsigned char *_Str, _In_z_ const unsigned char *_Substr)
#define _tcsnbcnt
Definition: tchar.h:2221
#define NULL
Definition: crtdbg.h:30
_Check_return_ _CRTIMP unsigned char *__cdecl _mbsninc(_In_reads_or_z_(_Count) const unsigned char *_Str, _In_ size_t _Count)
_In_ size_t _Destination_size_chars
Definition: tchar.h:2379
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
_Check_return_ _CRTIMP int __cdecl _mbsnbicmp_l(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
#define _CRT_UNUSED(x)
Definition: crtdefs.h:2145
#define _tcsncoll
Definition: tchar.h:2191
#define _tcsupr_l
Definition: tchar.h:2232
_Check_return_ _In_z_ const char * _Delimiters
Definition: tchar.h:2399
_Check_return_ _CRTIMP _Inout_ unsigned int _In_ unsigned int _In_ const void *_Check_return_ _CRTIMP _Inout_updates_bytes_((*_NumOfElements)*_SizeOfElements) void *_Base
#define _tcsicoll
Definition: tchar.h:2187
_Check_return_ _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbsrchr(_In_z_ const unsigned char *_Str, _In_ unsigned int _Ch)
#define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
Definition: crtdefs.h:2025
#define _tcsrchr
Definition: tchar.h:2157
_Check_return_ _CRTIMP size_t __cdecl _mbscspn(_In_z_ const unsigned char *_Str, _In_z_ const unsigned char *_Control)
#define _tcsicmp_l
Definition: tchar.h:2177
#define _tcsupr_s
Definition: tchar.h:2233
#define _tcsncset_s_l
Definition: tchar.h:2215
_In_reads_or_z_(_MaxCount) const char *_Str2
#define _In_reads_z_(size)
Definition: sal.h:329
#define _Check_return_
Definition: sal.h:563
_CRTIMP_ALTERNATIVE errno_t __cdecl _mbsncpy_s(_Out_writes_z_(_SizeInBytes) unsigned char *_Dst, _In_ size_t _SizeInBytes, _In_z_ const unsigned char *_Src, _In_ size_t _MaxCount)
#define _tcslwr
Definition: tchar.h:2227
_Check_return_ _CRTIMP size_t __cdecl _mbsnlen(_In_z_ const unsigned char *_Str, _In_ size_t _MaxCount)
#define _tcsncpy_l
Definition: tchar.h:2154
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
#define _In_z_
Definition: sal.h:319
_Check_return_ _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbschr(_In_z_ const unsigned char *_Str, _In_ unsigned int _Ch)
#define _In_
Definition: sal.h:314
__DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncpy_l, _strncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_(_Count), char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale) _Check_return_wat_ __inline errno_t __CRTDECL _strncat_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination
#define _Inout_opt_
Definition: sal.h:385
_In_z_ const unsigned char * _Str2
Definition: mbstring.h:154
#define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
Definition: crtdefs.h:2060
unsigned short wchar_t
Definition: crtdefs.h:536
return _strset(_Dst, _Value)
_CRTIMP_ALTERNATIVE errno_t __cdecl _mbsnbcat_s(_Inout_updates_z_(_SizeInBytes) unsigned char *_Dst, _In_ size_t _SizeInBytes, _In_z_ const unsigned char *_Src, _In_ size_t _MaxCount)
#define _In_opt_
Definition: sal.h:315
int _TINT
Definition: tchar.h:2132
#define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
Definition: crtdefs.h:2032
#define _Inout_opt_z_
Definition: sal.h:390
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl strncpy_s(_Out_writes_z_(_SizeInBytes) char *_Dst, _In_ rsize_t _SizeInBytes, _In_reads_or_z_(_MaxCount) const char *_Src, _In_ rsize_t _MaxCount)
#define _tcsncset
Definition: tchar.h:2212
_Check_return_ __inline char *__CRTDECL _strinc(_In_z_ const char *_Pc)
Definition: tchar.h:2337
#define _Inout_z_
Definition: sal.h:389
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl _wcsset_s(_Inout_updates_z_(_SizeInWords) wchar_t *_Dst, _In_ size_t _SizeInWords, _In_ wchar_t _Value)
#define _tcsdec
Definition: tchar.h:2219
#define _tcstok_s
Definition: tchar.h:2161
#define _Deref_prepost_opt_z_
Definition: sal.h:1430
_In_z_ const unsigned char * _Control
Definition: mbstring.h:196
_Check_return_ __inline char *__CRTDECL _strdec(_In_reads_z_(_Cpc2-_Cpc1) const char *_Cpc1, _In_z_ const char *_Cpc2)
Definition: tchar.h:2336
_Check_return_ _CRTIMP size_t __cdecl wcsspn(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
#define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
Definition: crtdefs.h:847
#define _tcsupr
Definition: tchar.h:2231
_Check_return_ _CRTIMP unsigned char *__cdecl _mbsdec(_In_reads_z_(_Pos-_Start+1) const unsigned char *_Start, _In_z_ const unsigned char *_Pos)
#define _tcsnicoll_l
Definition: tchar.h:2196
#define _tcsinc
Definition: tchar.h:2220
#define _tcslwr_s_l
Definition: tchar.h:2230
_Check_return_ _CRTIMP size_t __cdecl strspn(_In_z_ const char *_Str, _In_z_ const char *_Control)
#define _tcsnccpy_s_l
Definition: tchar.h:2211
_In_ wchar_t _C
Definition: wchar.h:1295
#define _tcsncat
Definition: tchar.h:2148
signed char _TSCHAR
Definition: tchar.h:2129
_Check_return_ _CRTIMP int __cdecl _mbsnicoll_l(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
#define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1)
Definition: crtdefs.h:846
_Check_return_ _CRTIMP unsigned char *__cdecl _mbstok_s_l(_Inout_opt_z_ unsigned char *_Str, _In_z_ const unsigned char *_Delim, _Inout_ _Deref_prepost_opt_z_ unsigned char **_Context, _In_opt_ _locale_t _Locale)
#define _tcscnlen_l(_String, _Max_count, _Locale)
Definition: tchar.h:2203
_Check_return_ _CRTIMP int __cdecl _mbscoll(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2)
#define _tcsncset_l
Definition: tchar.h:2214
return strncat(_Dst, _Source, _Count)
#define _tcsnccpy_l
Definition: tchar.h:2210
#define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
Definition: crtdefs.h:2027
_In_ size_t _In_z_ const char _In_ size_t _Count
Definition: tchar.h:2379
#define _tcsnicmp
Definition: tchar.h:2182
_CRTIMP errno_t __cdecl _mbslwr_s(_Inout_updates_opt_z_(_SizeInBytes) unsigned char *_Str, _In_ size_t _SizeInBytes)
#define _Prepost_z_
Definition: sal.h:714
_In_ size_t _In_ unsigned int _Ch
Definition: mbstring.h:161
int errno_t
Definition: crtdefs.h:563
#define __CRTDECL
Definition: crtdefs.h:622
#define _tcsset
Definition: tchar.h:2170
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl _wcsnset_s(_Inout_updates_z_(_SizeInWords) wchar_t *_Dst, _In_ size_t _SizeInWords, _In_ wchar_t _Val, _In_ size_t _MaxCount)
#define __RETURN_POLICY_DST(_FunctionCall)
Definition: crtdefs.h:1928
_Check_return_ _CRTIMP unsigned char *__cdecl _mbsinc(_In_z_ const unsigned char *_Ptr)
#define _tcsncicoll_l
Definition: tchar.h:2194
_Check_return_ __inline char *__CRTDECL _strninc(_In_reads_or_z_(_Sz) const char *_Pc, _In_ size_t _Sz)
Definition: tchar.h:2339
_Check_return_ _CRTIMP int __cdecl _mbsicmp(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2)
_Check_return_ _CRTIMP int __cdecl _mbsnicmp_l(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_Check_return_ _CRTIMP size_t __cdecl _mbsspn(_In_z_ const unsigned char *_Str, _In_z_ const unsigned char *_Control)
_Check_return_ _CRTIMP int __cdecl _mbsnbcmp(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount)
#define _tcsncmp
Definition: tchar.h:2179
#define _Out_writes_(size)
Definition: sal.h:354
#define _tcsnccoll
Definition: tchar.h:2189
#define _tcsnccpy_s
Definition: tchar.h:2209
#define _tcsnccoll_l
Definition: tchar.h:2190
#define _Check_return_wat_
Definition: crtdefs.h:2128
_Check_return_ _CRTIMP int __cdecl _ismbblead(_In_ unsigned int _C)
#define _tcsncicoll
Definition: tchar.h:2193
_Inout_updates_z_(_SizeInBytes) char *_Buf2
_Check_return_ _CRTIMP int __cdecl _mbsicmp_l(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_opt_ _locale_t _Locale)
#define _tcscnlen
Definition: tchar.h:2201
#define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
Definition: crtdefs.h:2018
#define _tcscoll
Definition: tchar.h:2185
_CRTIMP errno_t __cdecl _mbsncat_s_l(_Inout_updates_z_(_DstSizeInBytes) unsigned char *_Dst, _In_ size_t _DstSizeInBytes, _In_z_ const unsigned char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_Check_return_ _CRTIMP size_t __cdecl _mbsnlen_l(_In_z_ const unsigned char *_Str, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
#define _CONST_RETURN
Definition: crtdefs.h:590
__inline void __CRTDECL _tccpy_l(_Out_ char *_Pc1, _In_z_ const char *_Cpc2, _In_opt_ _locale_t _Locale)
Definition: tchar.h:2255
#define _tcsnccat_l
Definition: tchar.h:2206
#define _tcsset_l
Definition: tchar.h:2172
#define _tcsnset_s
Definition: tchar.h:2166
#define _tcslwr_l
Definition: tchar.h:2228
_Check_return_ _CRTIMP size_t __cdecl _mbclen(_In_z_ const unsigned char *_Str)
char _TXCHAR
Definition: tchar.h:2131
#define _tcsnset_s_l
Definition: tchar.h:2168
return _strset_s(_Destination, _Destination_size_chars, _Value)
#define _Inout_
Definition: sal.h:384
#define _tcsnccpy
Definition: tchar.h:2208
#define _tcslwr_s
Definition: tchar.h:2229
_CRTIMP_ALTERNATIVE errno_t __cdecl _mbsnset_s(_Inout_updates_z_(_SizeInBytes) unsigned char *_Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Val, _In_ size_t _MaxCount)
#define _tcsnccat
Definition: tchar.h:2204
_Check_return_ _CRTIMP int __cdecl _mbsicoll(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2)
_CRTIMP errno_t __cdecl _mbsnbcat_s_l(_Inout_updates_z_(_DstSizeInBytes) unsigned char *_Dst, _In_ size_t _DstSizeInBytes, _In_z_ const unsigned char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_CRTIMP_ALTERNATIVE errno_t __cdecl _mbsset_s(_Inout_updates_z_(_SizeInBytes) unsigned char *_Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Val)
#define _tcstok_s_l
Definition: tchar.h:2163
_CRTIMP errno_t __cdecl _mbccpy_s_l(_Out_writes_bytes_(_DstSizeInBytes) unsigned char *_Dst, _In_ size_t _DstSizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const unsigned char *_Src, _In_opt_ _locale_t _Locale)
_Check_return_ _CRTIMP int __cdecl _mbsnicoll(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount)
#define _tcsnccnt
Definition: tchar.h:2222
_Check_return_ _CRTIMP_ALTERNATIVE char *__cdecl strtok_s(_Inout_opt_z_ char *_Str, _In_z_ const char *_Delim, _Inout_ _Deref_prepost_opt_z_ char **_Context)
_Check_return_ __inline size_t __CRTDECL _strncnt(_In_reads_or_z_(_Cnt) const char *_String, _In_ size_t _Cnt)
Definition: tchar.h:2340
_CRTIMP errno_t __cdecl _mbsset_s_l(_Inout_updates_z_(_DstSizeInBytes) unsigned char *_Dst, _In_ size_t _DstSizeInBytes, _In_ unsigned int _Val, _In_opt_ _locale_t _Locale)
_Check_return_ _CRTIMP size_t __cdecl _mbslen_l(_In_z_ const unsigned char *_Str, _In_opt_ _locale_t _Locale)
__DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncpy_l, _strncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_(_Count) char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
Definition: tchar.h:2367
#define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
Definition: crtdefs.h:2055
_CRTIMP_ALTERNATIVE errno_t __cdecl _mbsnbcpy_s(_Out_writes_z_(_SizeInBytes) unsigned char *_Dst, _In_ size_t _SizeInBytes, _In_z_ const unsigned char *_Src, _In_ size_t _MaxCount)
#define _tcsncoll_l
Definition: tchar.h:2192
_Check_return_ _CRTIMP int __cdecl _mbscoll_l(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_opt_ _locale_t _Locale)
#define _Post_z_
Definition: sal.h:697
#define _tcsnset
Definition: tchar.h:2165
#define _tcschr
Definition: tchar.h:2146
_FwdIt const _Ty _Val
Definition: algorithm:1938
#define _tcstok
Definition: tchar.h:2160
_In_z_ const unsigned char _In_ size_t _MaxCount
Definition: mbstring.h:154
_Check_return_ _CRTIMP int __cdecl _mbsnbcoll_l(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_Check_return_ _In_ long _Size
Definition: io.h:325
_Check_return_ _CRTIMP int __cdecl _mbsncoll_l(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
#define _Pre_notnull_
Definition: sal.h:686
_Check_return_ _CRT_INSECURE_DEPRECATE(_strtok_s_l) __inline char *_strtok_l(_Inout_opt_z_ char *_String
#define _tcsclen_l(_String, _Locale)
Definition: tchar.h:2202
#define _tcscoll_l
Definition: tchar.h:2186
return strtok(_String, _Delimiters)
char _TCHAR
Definition: tchar.h:2128
_Check_return_ __inline size_t __CRTDECL _tclen(_In_z_ const char *_cpc)
Definition: tchar.h:2248
_CRTIMP errno_t __cdecl _mbsnbcpy_s_l(_Out_writes_z_(_DstSizeInBytes) unsigned char *_Dst, _In_ size_t _DstSizeInBytes, _In_z_ const unsigned char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
#define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
Definition: crtdefs.h:848
#define _tcsicoll_l
Definition: tchar.h:2188
_Check_return_ _Ret_maybenull_z_ _In_ int _SizeInBytes
Definition: direct.h:130
_CRTIMP errno_t __cdecl _mbsupr_s(_Inout_updates_z_(_SizeInBytes) unsigned char *_Str, _In_ size_t _SizeInBytes)
#define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
Definition: crtdefs.h:2020
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcsncat_s(_Inout_updates_z_(_SizeInWords) wchar_t *_Dst, _In_ rsize_t _SizeInWords, _In_reads_or_z_(_MaxCount) const wchar_t *_Src, _In_ rsize_t _MaxCount)
_Check_return_ _CRTIMP unsigned char *__cdecl _mbsspnp(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2)
Definition: crtdefs.h:2078
_Check_return_ _CRTIMP int __cdecl _mbsnbicoll_l(_In_z_ const unsigned char *_Str1, _In_z_ const unsigned char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
#define _Post_maybez_
Definition: sal.h:1378
_Check_return_ _CRTIMP size_t __cdecl _mbslen(_In_z_ const unsigned char *_Str)