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