1 : /***
2 : *wchar.h - declarations for wide character functions
3 : *
4 : * Copyright (c) Microsoft Corporation. All rights reserved.
5 : *
6 : *Purpose:
7 : * This file contains the types, macros and function declarations for
8 : * all wide character-related functions. They may also be declared in
9 : * individual header files on a functional basis.
10 : * [ISO]
11 : *
12 : * Note: keep in sync with ctype.h, stdio.h, stdlib.h, string.h, time.h.
13 : *
14 : * [Public]
15 : *
16 : ****/
17 :
18 : #if _MSC_VER > 1000
19 : #pragma once
20 : #endif
21 :
22 :
23 : #ifndef _INC_WCHAR
24 : #define _INC_WCHAR
25 :
26 : #include <crtdefs.h>
27 :
28 : #ifdef _MSC_VER
29 : #pragma pack(push,_CRT_PACKING)
30 : #endif /* _MSC_VER */
31 :
32 : #ifdef __cplusplus
33 : extern "C" {
34 : #endif
35 :
36 : /*
37 : * According to the standard, WCHAR_MIN and WCHAR_MAX need to be
38 : * "constant expressions suitable for use in #if preprocessing directives,
39 : * and this expression shall have the same type as would an expression that
40 : * is an object of the corresponding type converted according to the integer
41 : * promotions".
42 : */
43 : #define WCHAR_MIN 0
44 : #define WCHAR_MAX 0xffff
45 :
46 : #ifndef _VA_LIST_DEFINED
47 : #ifdef _M_CEE_PURE
48 : typedef System::ArgIterator va_list;
49 : #else
50 : typedef char * va_list;
51 : #endif
52 : #define _VA_LIST_DEFINED
53 : #endif
54 :
55 : #ifndef WEOF
56 : #define WEOF (wint_t)(0xFFFF)
57 : #endif
58 :
59 : #ifndef _FILE_DEFINED
60 : struct _iobuf {
61 : char *_ptr;
62 : int _cnt;
63 : char *_base;
64 : int _flag;
65 : int _file;
66 : int _charbuf;
67 : int _bufsiz;
68 : char *_tmpfname;
69 : };
70 : typedef struct _iobuf FILE;
71 : #define _FILE_DEFINED
72 : #endif
73 :
74 : /* Declare _iob[] array */
75 :
76 : #ifndef _STDIO_DEFINED
77 : _CRTIMP FILE * __cdecl __iob_func(void);
78 : #endif /* _STDIO_DEFINED */
79 :
80 : #ifndef _STDSTREAM_DEFINED
81 : #define stdin (&__iob_func()[0])
82 : #define stdout (&__iob_func()[1])
83 : #define stderr (&__iob_func()[2])
84 : #define _STDSTREAM_DEFINED
85 : #endif
86 :
87 : #ifndef _FSIZE_T_DEFINED
88 : typedef unsigned long _fsize_t; /* Could be 64 bits for Win32 */
89 : #define _FSIZE_T_DEFINED
90 : #endif
91 :
92 : #ifndef _WFINDDATA_T_DEFINED
93 :
94 : struct _wfinddata32_t {
95 : unsigned attrib;
96 : __time32_t time_create; /* -1 for FAT file systems */
97 : __time32_t time_access; /* -1 for FAT file systems */
98 : __time32_t time_write;
99 : _fsize_t size;
100 : wchar_t name[260];
101 : };
102 :
103 : struct _wfinddata32i64_t {
104 : unsigned attrib;
105 : __time32_t time_create; /* -1 for FAT file systems */
106 : __time32_t time_access; /* -1 for FAT file systems */
107 : __time32_t time_write;
108 : __int64 size;
109 : wchar_t name[260];
110 : };
111 :
112 : struct _wfinddata64i32_t {
113 : unsigned attrib;
114 : __time64_t time_create; /* -1 for FAT file systems */
115 : __time64_t time_access; /* -1 for FAT file systems */
116 : __time64_t time_write;
117 : _fsize_t size;
118 : wchar_t name[260];
119 : };
120 :
121 : struct _wfinddata64_t {
122 : unsigned attrib;
123 : __time64_t time_create; /* -1 for FAT file systems */
124 : __time64_t time_access; /* -1 for FAT file systems */
125 : __time64_t time_write;
126 : __int64 size;
127 : wchar_t name[260];
128 : };
129 :
130 : #ifdef _USE_32BIT_TIME_T
131 : #define _wfinddata_t _wfinddata32_t
132 : #define _wfinddatai64_t _wfinddata32i64_t
133 :
134 : #define _wfindfirst _wfindfirst32
135 : #define _wfindnext _wfindnext32
136 : #define _wfindfirsti64 _wfindfirst32i64
137 : #define _wfindnexti64 _wfindnext32i64
138 :
139 : #else
140 : #define _wfinddata_t _wfinddata64i32_t
141 : #define _wfinddatai64_t _wfinddata64_t
142 :
143 : #define _wfindfirst _wfindfirst64i32
144 : #define _wfindnext _wfindnext64i32
145 : #define _wfindfirsti64 _wfindfirst64
146 : #define _wfindnexti64 _wfindnext64
147 :
148 : #endif
149 :
150 : #define _WFINDDATA_T_DEFINED
151 : #endif
152 :
153 :
154 : /* define NULL pointer value */
155 : #ifndef NULL
156 : #ifdef __cplusplus
157 : #define NULL 0
158 : #else
159 : #define NULL ((void *)0)
160 : #endif
161 : #endif
162 :
163 : #ifndef _CONST_RETURN
164 : #ifdef __cplusplus
165 : #define _CONST_RETURN const
166 : #define _CRT_CONST_CORRECT_OVERLOADS
167 : #else
168 : #define _CONST_RETURN
169 : #endif
170 : #endif
171 :
172 : /* For backwards compatibility */
173 : #define _WConst_return _CONST_RETURN
174 :
175 : #ifndef _CRT_CTYPEDATA_DEFINED
176 : #define _CRT_CTYPEDATA_DEFINED
177 : #ifndef _CTYPE_DISABLE_MACROS
178 :
179 : #ifndef __PCTYPE_FUNC
180 : #if defined(_CRT_DISABLE_PERFCRIT_LOCKS) && !defined(_DLL)
181 : #define __PCTYPE_FUNC _pctype
182 : #else
183 : #define __PCTYPE_FUNC __pctype_func()
184 : #endif
185 : #endif /* __PCTYPE_FUNC */
186 :
187 : _CRTIMP const unsigned short * __cdecl __pctype_func(void);
188 : #if !defined(_M_CEE_PURE)
189 : _CRTIMP extern const unsigned short *_pctype;
190 : #else
191 : #define _pctype (__pctype_func())
192 : #endif /* !defined(_M_CEE_PURE) */
193 : #endif /* _CTYPE_DISABLE_MACROS */
194 : #endif
195 :
196 : #ifndef _CRT_WCTYPEDATA_DEFINED
197 : #define _CRT_WCTYPEDATA_DEFINED
198 : #ifndef _CTYPE_DISABLE_MACROS
199 : #if !defined(_M_CEE_PURE)
200 : _CRTIMP extern const unsigned short _wctype[];
201 : #endif /* !defined(_M_CEE_PURE) */
202 :
203 : _CRTIMP const wctype_t * __cdecl __pwctype_func(void);
204 : #if !defined(_M_CEE_PURE)
205 : _CRTIMP extern const wctype_t *_pwctype;
206 : #else
207 : #define _pwctype (__pwctype_func())
208 : #endif /* !defined(_M_CEE_PURE) */
209 : #endif /* _CTYPE_DISABLE_MACROS */
210 : #endif
211 :
212 : /* set bit masks for the possible character types */
213 :
214 : #define _UPPER 0x1 /* upper case letter */
215 : #define _LOWER 0x2 /* lower case letter */
216 : #define _DIGIT 0x4 /* digit[0-9] */
217 : #define _SPACE 0x8 /* tab, carriage return, newline, */
218 : /* vertical tab or form feed */
219 : #define _PUNCT 0x10 /* punctuation character */
220 : #define _CONTROL 0x20 /* control character */
221 : #define _BLANK 0x40 /* space char */
222 : #define _HEX 0x80 /* hexadecimal digit */
223 :
224 : #define _LEADBYTE 0x8000 /* multibyte leadbyte */
225 : #define _ALPHA (0x0100|_UPPER|_LOWER) /* alphabetic character */
226 :
227 :
228 : /* Function prototypes */
229 :
230 : #ifndef _WCTYPE_DEFINED
231 :
232 : /* Character classification function prototypes */
233 : /* also declared in ctype.h */
234 :
235 : _Check_return_ _CRTIMP int __cdecl iswalpha(_In_ wint_t _C);
236 : _Check_return_ _CRTIMP int __cdecl _iswalpha_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
237 : _Check_return_ _CRTIMP int __cdecl iswupper(_In_ wint_t _C);
238 : _Check_return_ _CRTIMP int __cdecl _iswupper_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
239 : _Check_return_ _CRTIMP int __cdecl iswlower(_In_ wint_t _C);
240 : _Check_return_ _CRTIMP int __cdecl _iswlower_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
241 : _Check_return_ _CRTIMP int __cdecl iswdigit(_In_ wint_t _C);
242 : _Check_return_ _CRTIMP int __cdecl _iswdigit_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
243 : _Check_return_ _CRTIMP int __cdecl iswxdigit(_In_ wint_t _C);
244 : _Check_return_ _CRTIMP int __cdecl _iswxdigit_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
245 : _Check_return_ _CRTIMP int __cdecl iswspace(_In_ wint_t _C);
246 : _Check_return_ _CRTIMP int __cdecl _iswspace_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
247 : _Check_return_ _CRTIMP int __cdecl iswpunct(_In_ wint_t _C);
248 : _Check_return_ _CRTIMP int __cdecl _iswpunct_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
249 : _Check_return_ _CRTIMP int __cdecl iswalnum(_In_ wint_t _C);
250 : _Check_return_ _CRTIMP int __cdecl _iswalnum_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
251 : _Check_return_ _CRTIMP int __cdecl iswprint(_In_ wint_t _C);
252 : _Check_return_ _CRTIMP int __cdecl _iswprint_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
253 : _Check_return_ _CRTIMP int __cdecl iswgraph(_In_ wint_t _C);
254 : _Check_return_ _CRTIMP int __cdecl _iswgraph_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
255 : _Check_return_ _CRTIMP int __cdecl iswcntrl(_In_ wint_t _C);
256 : _Check_return_ _CRTIMP int __cdecl _iswcntrl_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
257 : _Check_return_ _CRTIMP int __cdecl iswascii(_In_ wint_t _C);
258 : _Check_return_ _CRTIMP int __cdecl isleadbyte(_In_ int _C);
259 : _Check_return_ _CRTIMP int __cdecl _isleadbyte_l(_In_ int _C, _In_opt_ _locale_t _Locale);
260 :
261 : _Check_return_ _CRTIMP wint_t __cdecl towupper(_In_ wint_t _C);
262 : _Check_return_ _CRTIMP wint_t __cdecl _towupper_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
263 : _Check_return_ _CRTIMP wint_t __cdecl towlower(_In_ wint_t _C);
264 : _Check_return_ _CRTIMP wint_t __cdecl _towlower_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
265 : _Check_return_ _CRTIMP int __cdecl iswctype(_In_ wint_t _C, _In_ wctype_t _Type);
266 : _Check_return_ _CRTIMP int __cdecl _iswctype_l(_In_ wint_t _C, _In_ wctype_t _Type, _In_opt_ _locale_t _Locale);
267 :
268 : _Check_return_ _CRTIMP int __cdecl __iswcsymf(_In_ wint_t _C);
269 : _Check_return_ _CRTIMP int __cdecl _iswcsymf_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
270 : _Check_return_ _CRTIMP int __cdecl __iswcsym(_In_ wint_t _C);
271 : _Check_return_ _CRTIMP int __cdecl _iswcsym_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
272 :
273 : _CRT_OBSOLETE(iswctype) _CRTIMP int __cdecl is_wctype(_In_ wint_t _C, _In_ wctype_t _Type);
274 :
275 : #define _WCTYPE_DEFINED
276 : #endif
277 :
278 : #ifndef _WDIRECT_DEFINED
279 :
280 : /* also declared in direct.h */
281 :
282 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
283 : #pragma push_macro("_wgetcwd")
284 : #pragma push_macro("_wgetdcwd")
285 : #pragma push_macro("_wgetdcwd_nolock")
286 : #undef _wgetcwd
287 : #undef _wgetdcwd
288 : #undef _wgetdcwd_nolock
289 : #endif
290 :
291 : _Check_return_ _Ret_opt_z_ _CRTIMP wchar_t * __cdecl _wgetcwd(_Out_opt_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ int _SizeInWords);
292 : _Check_return_ _Ret_opt_z_ _CRTIMP wchar_t * __cdecl _wgetdcwd(_In_ int _Drive, _Out_opt_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ int _SizeInWords);
293 : _Check_return_ _Ret_opt_z_ wchar_t * __cdecl _wgetdcwd_nolock(_In_ int _Drive, _Out_opt_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ int _SizeInWords);
294 :
295 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
296 : #pragma pop_macro("_wgetcwd")
297 : #pragma pop_macro("_wgetdcwd")
298 : #pragma pop_macro("_wgetdcwd_nolock")
299 : #endif
300 :
301 : _Check_return_ _CRTIMP int __cdecl _wchdir(_In_z_ const wchar_t * _Path);
302 : _Check_return_ _CRTIMP int __cdecl _wmkdir(_In_z_ const wchar_t * _Path);
303 : _Check_return_ _CRTIMP int __cdecl _wrmdir(_In_z_ const wchar_t * _Path);
304 :
305 : #define _WDIRECT_DEFINED
306 : #endif
307 :
308 : #ifndef _WIO_DEFINED
309 :
310 : _Check_return_ _CRTIMP int __cdecl _waccess(_In_z_ const wchar_t * _Filename, _In_ int _AccessMode);
311 : _Check_return_wat_ _CRTIMP errno_t __cdecl _waccess_s(_In_z_ const wchar_t * _Filename, _In_ int _AccessMode);
312 : _Check_return_ _CRTIMP int __cdecl _wchmod(_In_z_ const wchar_t * _Filename, _In_ int _Mode);
313 : _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wcreat(_In_z_ const wchar_t * _Filename, _In_ int _PermissionMode);
314 : _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst32(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata32_t * _FindData);
315 : _Check_return_ _CRTIMP int __cdecl _wfindnext32(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata32_t * _FindData);
316 : _Check_return_ _CRTIMP int __cdecl _wunlink(_In_z_ const wchar_t * _Filename);
317 : _Check_return_ _CRTIMP int __cdecl _wrename(_In_z_ const wchar_t * _OldFilename, _In_z_ const wchar_t * _NewFilename);
318 : _CRTIMP errno_t __cdecl _wmktemp_s(_Inout_z_cap_(_SizeInWords) wchar_t * _TemplateName, _In_ size_t _SizeInWords);
319 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wmktemp_s, wchar_t, _TemplateName)
320 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wmktemp, _Inout_z_, wchar_t, _TemplateName)
321 :
322 : _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst32i64(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata32i64_t * _FindData);
323 : _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst64i32(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata64i32_t * _FindData);
324 : _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst64(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata64_t * _FindData);
325 : _Check_return_ _CRTIMP int __cdecl _wfindnext32i64(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata32i64_t * _FindData);
326 : _Check_return_ _CRTIMP int __cdecl _wfindnext64i32(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata64i32_t * _FindData);
327 : _Check_return_ _CRTIMP int __cdecl _wfindnext64(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata64_t * _FindData);
328 :
329 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wsopen_s(_Out_ int * _FileHandle, _In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, _In_ int _ShareFlag, _In_ int _PermissionFlag);
330 :
331 : #if !defined(__cplusplus) || !defined(_M_IX86)
332 :
333 : _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, ...);
334 : _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wsopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, int _ShareFlag, ...);
335 :
336 : #else
337 :
338 : /* these function do not validate pmode; use _sopen_s */
339 : extern "C++" _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, _In_ int _PermissionMode = 0);
340 : extern "C++" _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wsopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, _In_ int _ShareFlag, int _PermissionMode = 0);
341 :
342 : #endif
343 :
344 : #define _WIO_DEFINED
345 : #endif
346 :
347 : #ifndef _WLOCALE_DEFINED
348 :
349 : /* wide function prototypes, also declared in wchar.h */
350 :
351 : _Check_return_opt_ _CRTIMP wchar_t * __cdecl _wsetlocale(_In_ int _Category, _In_opt_z_ const wchar_t * _Locale);
352 :
353 : #define _WLOCALE_DEFINED
354 : #endif
355 :
356 : #ifndef _WPROCESS_DEFINED
357 :
358 : /* also declared in process.h */
359 :
360 : _CRTIMP intptr_t __cdecl _wexecl(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _ArgList, ...);
361 : _CRTIMP intptr_t __cdecl _wexecle(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _ArgList, ...);
362 : _CRTIMP intptr_t __cdecl _wexeclp(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _ArgList, ...);
363 : _CRTIMP intptr_t __cdecl _wexeclpe(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _ArgList, ...);
364 : _CRTIMP intptr_t __cdecl _wexecv(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * const * _ArgList);
365 : _CRTIMP intptr_t __cdecl _wexecve(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * const * _ArgList,
366 : _In_opt_z_ const wchar_t * const * _Env);
367 : _CRTIMP intptr_t __cdecl _wexecvp(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * const * _ArgList);
368 : _CRTIMP intptr_t __cdecl _wexecvpe(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * const * _ArgList,
369 : _In_opt_z_ const wchar_t * const * _Env);
370 : _CRTIMP intptr_t __cdecl _wspawnl(_In_ int _Mode, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _ArgList, ...);
371 : _CRTIMP intptr_t __cdecl _wspawnle(_In_ int _Mode, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _ArgList, ...);
372 : _CRTIMP intptr_t __cdecl _wspawnlp(_In_ int _Mode, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _ArgList, ...);
373 : _CRTIMP intptr_t __cdecl _wspawnlpe(_In_ int _Mode, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _ArgList, ...);
374 : _CRTIMP intptr_t __cdecl _wspawnv(_In_ int _Mode, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * const * _ArgList);
375 : _CRTIMP intptr_t __cdecl _wspawnve(_In_ int _Mode, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * const * _ArgList,
376 : _In_opt_z_ const wchar_t * const * _Env);
377 : _CRTIMP intptr_t __cdecl _wspawnvp(_In_ int _Mode, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * const * _ArgList);
378 : _CRTIMP intptr_t __cdecl _wspawnvpe(_In_ int _Mode, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * const * _ArgList,
379 : _In_opt_z_ const wchar_t * const * _Env);
380 : #ifndef _CRT_WSYSTEM_DEFINED
381 : #define _CRT_WSYSTEM_DEFINED
382 : _CRTIMP int __cdecl _wsystem(_In_opt_z_ const wchar_t * _Command);
383 : #endif
384 :
385 : #define _WPROCESS_DEFINED
386 : #endif
387 :
388 : #ifndef _WCTYPE_INLINE_DEFINED
389 :
390 : #undef _CRT_WCTYPE_NOINLINE
391 :
392 : #if !defined(__cplusplus) || defined(_M_CEE_PURE) || defined(MRTDLL) || defined(_CRT_WCTYPE_NOINLINE)
393 : #define iswalpha(_c) ( iswctype(_c,_ALPHA) )
394 : #define iswupper(_c) ( iswctype(_c,_UPPER) )
395 : #define iswlower(_c) ( iswctype(_c,_LOWER) )
396 : #define iswdigit(_c) ( iswctype(_c,_DIGIT) )
397 : #define iswxdigit(_c) ( iswctype(_c,_HEX) )
398 : #define iswspace(_c) ( iswctype(_c,_SPACE) )
399 : #define iswpunct(_c) ( iswctype(_c,_PUNCT) )
400 : #define iswalnum(_c) ( iswctype(_c,_ALPHA|_DIGIT) )
401 : #define iswprint(_c) ( iswctype(_c,_BLANK|_PUNCT|_ALPHA|_DIGIT) )
402 : #define iswgraph(_c) ( iswctype(_c,_PUNCT|_ALPHA|_DIGIT) )
403 : #define iswcntrl(_c) ( iswctype(_c,_CONTROL) )
404 : #define iswascii(_c) ( (unsigned)(_c) < 0x80 )
405 :
406 : #define _iswalpha_l(_c,_p) ( _iswctype_l(_c,_ALPHA, _p) )
407 : #define _iswupper_l(_c,_p) ( _iswctype_l(_c,_UPPER, _p) )
408 : #define _iswlower_l(_c,_p) ( _iswctype_l(_c,_LOWER, _p) )
409 : #define _iswdigit_l(_c,_p) ( _iswctype_l(_c,_DIGIT, _p) )
410 : #define _iswxdigit_l(_c,_p) ( _iswctype_l(_c,_HEX, _p) )
411 : #define _iswspace_l(_c,_p) ( _iswctype_l(_c,_SPACE, _p) )
412 : #define _iswpunct_l(_c,_p) ( _iswctype_l(_c,_PUNCT, _p) )
413 : #define _iswalnum_l(_c,_p) ( _iswctype_l(_c,_ALPHA|_DIGIT, _p) )
414 : #define _iswprint_l(_c,_p) ( _iswctype_l(_c,_BLANK|_PUNCT|_ALPHA|_DIGIT, _p) )
415 : #define _iswgraph_l(_c,_p) ( _iswctype_l(_c,_PUNCT|_ALPHA|_DIGIT, _p) )
416 : #define _iswcntrl_l(_c,_p) ( _iswctype_l(_c,_CONTROL, _p) )
417 : #ifndef _CTYPE_DISABLE_MACROS
418 : #define isleadbyte(_c) ( __PCTYPE_FUNC[(unsigned char)(_c)] & _LEADBYTE)
419 : #endif /* _CTYPE_DISABLE_MACROS */
420 :
421 : #elif 0 /* __cplusplus */
422 : _Check_return_ inline int iswalpha(_In_ wint_t _C) {return (iswctype(_C,_ALPHA)); }
423 : _Check_return_ inline int iswupper(_In_ wint_t _C) {return (iswctype(_C,_UPPER)); }
424 : _Check_return_ inline int iswlower(_In_ wint_t _C) {return (iswctype(_C,_LOWER)); }
425 : _Check_return_ inline int iswdigit(_In_ wint_t _C) {return (iswctype(_C,_DIGIT)); }
426 : _Check_return_ inline int iswxdigit(_In_ wint_t _C) {return (iswctype(_C,_HEX)); }
427 : _Check_return_ inline int iswspace(_In_ wint_t _C) {return (iswctype(_C,_SPACE)); }
428 : _Check_return_ inline int iswpunct(_In_ wint_t _C) {return (iswctype(_C,_PUNCT)); }
429 : _Check_return_ inline int iswalnum(_In_ wint_t _C) {return (iswctype(_C,_ALPHA|_DIGIT)); }
430 : _Check_return_ inline int iswprint(_In_ wint_t _C) {return (iswctype(_C,_BLANK|_PUNCT|_ALPHA|_DIGIT)); }
431 : _Check_return_ inline int iswgraph(_In_ wint_t _C) {return (iswctype(_C,_PUNCT|_ALPHA|_DIGIT)); }
432 : _Check_return_ inline int iswcntrl(_In_ wint_t _C) {return (iswctype(_C,_CONTROL)); }
433 : _Check_return_ inline int iswascii(_In_ wint_t _C) {return ((unsigned)(_C) < 0x80); }
434 :
435 : _Check_return_ inline int __CRTDECL _iswalpha_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_ALPHA, _Locale)); }
436 : _Check_return_ inline int __CRTDECL _iswupper_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_UPPER, _Locale)); }
437 : _Check_return_ inline int __CRTDECL _iswlower_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_LOWER, _Locale)); }
438 : _Check_return_ inline int __CRTDECL _iswdigit_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_DIGIT, _Locale)); }
439 : _Check_return_ inline int __CRTDECL _iswxdigit_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return(_iswctype_l(_C,_HEX, _Locale)); }
440 : _Check_return_ inline int __CRTDECL _iswspace_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_SPACE, _Locale)); }
441 : _Check_return_ inline int __CRTDECL _iswpunct_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_PUNCT, _Locale)); }
442 : _Check_return_ inline int __CRTDECL _iswalnum_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_ALPHA|_DIGIT, _Locale)); }
443 : _Check_return_ inline int __CRTDECL _iswprint_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_BLANK|_PUNCT|_ALPHA|_DIGIT, _Locale)); }
444 : _Check_return_ inline int __CRTDECL _iswgraph_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_PUNCT|_ALPHA|_DIGIT, _Locale)); }
445 : _Check_return_ inline int __CRTDECL _iswcntrl_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale) {return (_iswctype_l(_C,_CONTROL, _Locale)); }
446 :
447 : _Check_return_ inline int isleadbyte(int _C) {return (__PCTYPE_FUNC[(unsigned char)(_C)] & _LEADBYTE); }
448 : #endif /* __cplusplus */
449 : #define _WCTYPE_INLINE_DEFINED
450 : #endif /* _WCTYPE_INLINE_DEFINED */
451 :
452 :
453 : #ifndef _POSIX_
454 :
455 : /* define structure for returning status information */
456 :
457 : #ifndef _INO_T_DEFINED
458 : typedef unsigned short _ino_t; /* i-node number (not used on DOS) */
459 : #if !__STDC__
460 : /* Non-ANSI name for compatibility */
461 : typedef unsigned short ino_t;
462 : #endif
463 : #define _INO_T_DEFINED
464 : #endif
465 :
466 : #ifndef _DEV_T_DEFINED
467 : typedef unsigned int _dev_t; /* device code */
468 : #if !__STDC__
469 : /* Non-ANSI name for compatibility */
470 : typedef unsigned int dev_t;
471 : #endif
472 : #define _DEV_T_DEFINED
473 : #endif
474 :
475 : #ifndef _OFF_T_DEFINED
476 : typedef long _off_t; /* file offset value */
477 : #if !__STDC__
478 : /* Non-ANSI name for compatibility */
479 : typedef long off_t;
480 : #endif
481 : #define _OFF_T_DEFINED
482 : #endif
483 :
484 : #ifndef _STAT_DEFINED
485 :
486 : struct _stat32 {
487 : _dev_t st_dev;
488 : _ino_t st_ino;
489 : unsigned short st_mode;
490 : short st_nlink;
491 : short st_uid;
492 : short st_gid;
493 : _dev_t st_rdev;
494 : _off_t st_size;
495 : __time32_t st_atime;
496 : __time32_t st_mtime;
497 : __time32_t st_ctime;
498 : };
499 :
500 : #if !__STDC__
501 : /* Non-ANSI names for compatibility */
502 : struct stat {
503 : _dev_t st_dev;
504 : _ino_t st_ino;
505 : unsigned short st_mode;
506 : short st_nlink;
507 : short st_uid;
508 : short st_gid;
509 : _dev_t st_rdev;
510 : _off_t st_size;
511 : time_t st_atime;
512 : time_t st_mtime;
513 : time_t st_ctime;
514 : };
515 :
516 : #endif /* __STDC__ */
517 :
518 : struct _stat32i64 {
519 : _dev_t st_dev;
520 : _ino_t st_ino;
521 : unsigned short st_mode;
522 : short st_nlink;
523 : short st_uid;
524 : short st_gid;
525 : _dev_t st_rdev;
526 : __int64 st_size;
527 : __time32_t st_atime;
528 : __time32_t st_mtime;
529 : __time32_t st_ctime;
530 : };
531 :
532 : struct _stat64i32 {
533 : _dev_t st_dev;
534 : _ino_t st_ino;
535 : unsigned short st_mode;
536 : short st_nlink;
537 : short st_uid;
538 : short st_gid;
539 : _dev_t st_rdev;
540 : _off_t st_size;
541 : __time64_t st_atime;
542 : __time64_t st_mtime;
543 : __time64_t st_ctime;
544 : };
545 :
546 : struct _stat64 {
547 : _dev_t st_dev;
548 : _ino_t st_ino;
549 : unsigned short st_mode;
550 : short st_nlink;
551 : short st_uid;
552 : short st_gid;
553 : _dev_t st_rdev;
554 : __int64 st_size;
555 : __time64_t st_atime;
556 : __time64_t st_mtime;
557 : __time64_t st_ctime;
558 : };
559 :
560 : /*
561 : * We have to have same name for structure and the fuction so as to do the
562 : * macro magic.we need the structure name and function name the same.
563 : */
564 : #define __stat64 _stat64
565 :
566 : #ifdef _USE_32BIT_TIME_T
567 : #define _fstat _fstat32
568 : #define _fstati64 _fstat32i64
569 : #define _stat _stat32
570 : #define _stati64 _stat32i64
571 : #define _wstat _wstat32
572 : #define _wstati64 _wstat32i64
573 :
574 : #else
575 : #define _fstat _fstat64i32
576 : #define _fstati64 _fstat64
577 : #define _stat _stat64i32
578 : #define _stati64 _stat64
579 : #define _wstat _wstat64i32
580 : #define _wstati64 _wstat64
581 :
582 : #endif
583 :
584 :
585 : #define _STAT_DEFINED
586 : #endif
587 :
588 : #ifndef _WSTAT_DEFINED
589 :
590 : /* also declared in wchar.h */
591 :
592 : _CRTIMP int __cdecl _wstat32(_In_z_ const wchar_t * _Name, _Out_ struct _stat32 * _Stat);
593 :
594 : _CRTIMP int __cdecl _wstat32i64(_In_z_ const wchar_t * _Name, _Out_ struct _stat32i64 * _Stat);
595 : _CRTIMP int __cdecl _wstat64i32(_In_z_ const wchar_t * _Name, _Out_ struct _stat64i32 * _Stat);
596 : _CRTIMP int __cdecl _wstat64(_In_z_ const wchar_t * _Name, _Out_ struct _stat64 * _Stat);
597 :
598 : #define _WSTAT_DEFINED
599 : #endif
600 :
601 : #endif /* !_POSIX_ */
602 :
603 :
604 : #ifndef _WCONIO_DEFINED
605 :
606 : /* wide function prototypes, also declared in conio.h */
607 :
608 : #ifndef WEOF
609 : #define WEOF (wint_t)(0xFFFF)
610 : #endif
611 :
612 : _Check_return_wat_ _CRTIMP errno_t __cdecl _cgetws_s(_Out_cap_post_count_(_SizeInWords, *_SizeRead) wchar_t * _Buffer, size_t _SizeInWords, _Out_ size_t * _SizeRead);
613 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _cgetws_s, _Deref_post_count_(*_Buffer) wchar_t, _Buffer, size_t *, _Size)
614 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(wchar_t *, _CRTIMP, _cgetws, _Inout_z_, wchar_t, _Buffer)
615 : _Check_return_ _CRTIMP wint_t __cdecl _getwch(void);
616 : _Check_return_ _CRTIMP wint_t __cdecl _getwche(void);
617 : _Check_return_ _CRTIMP wint_t __cdecl _putwch(wchar_t _WCh);
618 : _Check_return_ _CRTIMP wint_t __cdecl _ungetwch(wint_t _WCh);
619 : _Check_return_opt_ _CRTIMP int __cdecl _cputws(_In_z_ const wchar_t * _String);
620 : _Check_return_opt_ _CRTIMP int __cdecl _cwprintf(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
621 : _Check_return_opt_ _CRTIMP int __cdecl _cwprintf_s(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
622 : _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_cwscanf_s) _CRTIMP int __cdecl _cwscanf(_In_z_ _Scanf_format_string_ const wchar_t * _Format, ...);
623 : _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_cwscanf_s_l) _CRTIMP int __cdecl _cwscanf_l(_In_z_ _Scanf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
624 : _Check_return_opt_ _CRTIMP int __cdecl _cwscanf_s(_In_z_ _Scanf_format_string_ const wchar_t * _Format, ...);
625 : _Check_return_opt_ _CRTIMP int __cdecl _cwscanf_s_l(_In_z_ _Scanf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
626 : _Check_return_opt_ _CRTIMP int __cdecl _vcwprintf(_In_z_ _Printf_format_string_ const wchar_t *_Format, va_list _ArgList);
627 : _Check_return_opt_ _CRTIMP int __cdecl _vcwprintf_s(_In_z_ _Printf_format_string_ const wchar_t *_Format, va_list _ArgList);
628 :
629 : _Check_return_opt_ _CRTIMP int __cdecl _cwprintf_p(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
630 : _Check_return_opt_ _CRTIMP int __cdecl _vcwprintf_p(_In_z_ _Printf_format_string_ const wchar_t* _Format, va_list _ArgList);
631 :
632 : _CRTIMP int __cdecl _cwprintf_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
633 : _CRTIMP int __cdecl _cwprintf_s_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
634 : _CRTIMP int __cdecl _vcwprintf_l(_In_z_ _Printf_format_string_ const wchar_t *_Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
635 : _CRTIMP int __cdecl _vcwprintf_s_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
636 : _CRTIMP int __cdecl _cwprintf_p_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
637 : _CRTIMP int __cdecl _vcwprintf_p_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
638 :
639 : _Check_return_opt_ wint_t __cdecl _putwch_nolock(wchar_t _WCh);
640 : _Check_return_ wint_t __cdecl _getwch_nolock(void);
641 : _Check_return_ wint_t __cdecl _getwche_nolock(void);
642 : _Check_return_opt_ wint_t __cdecl _ungetwch_nolock(wint_t _WCh);
643 :
644 : #if !defined(_MT)
645 : #define _putwch() _putwch_nolock()
646 : #define _getwch() _getwch_nolock()
647 : #define _getwche() _getwche_nolock()
648 : #define _ungetwch() _ungetwch_nolock()
649 : #endif
650 :
651 : #define _WCONIO_DEFINED
652 : #endif /* _WCONIO_DEFINED */
653 :
654 : #ifndef _WSTDIO_DEFINED
655 :
656 : /* wide function prototypes, also declared in stdio.h */
657 :
658 : #ifndef WEOF
659 : #define WEOF (wint_t)(0xFFFF)
660 : #endif
661 :
662 : #ifdef _POSIX_
663 : _Check_return_ _CRTIMP FILE * __cdecl _wfsopen(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _Mode);
664 : #else
665 : _Check_return_ _CRTIMP FILE * __cdecl _wfsopen(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _Mode, _In_ int _ShFlag);
666 : #endif
667 :
668 : _Check_return_opt_ _CRTIMP wint_t __cdecl fgetwc(_Inout_ FILE * _File);
669 : _Check_return_opt_ _CRTIMP wint_t __cdecl _fgetwchar(void);
670 : _Check_return_opt_ _CRTIMP wint_t __cdecl fputwc(_In_ wchar_t _Ch, _Inout_ FILE * _File);
671 : _Check_return_opt_ _CRTIMP wint_t __cdecl _fputwchar(_In_ wchar_t _Ch);
672 : _Check_return_ _CRTIMP wint_t __cdecl getwc(_Inout_ FILE * _File);
673 : _Check_return_ _CRTIMP wint_t __cdecl getwchar(void);
674 : _Check_return_opt_ _CRTIMP wint_t __cdecl putwc(_In_ wchar_t _Ch, _Inout_ FILE * _File);
675 : _Check_return_opt_ _CRTIMP wint_t __cdecl putwchar(_In_ wchar_t _Ch);
676 : _Check_return_opt_ _CRTIMP wint_t __cdecl ungetwc(_In_ wint_t _Ch, _Inout_ FILE * _File);
677 :
678 : _Check_return_opt_ _CRTIMP wchar_t * __cdecl fgetws(_Out_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ int _SizeInWords, _Inout_ FILE * _File);
679 : _Check_return_opt_ _CRTIMP int __cdecl fputws(_In_z_ const wchar_t * _Str, _Inout_ FILE * _File);
680 : _Check_return_opt_ _CRTIMP wchar_t * __cdecl _getws_s(_Out_z_cap_(_SizeInWords) wchar_t * _Str, _In_ size_t _SizeInWords);
681 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(wchar_t *, _getws_s, wchar_t, _String)
682 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *, __RETURN_POLICY_SAME, _CRTIMP, _getws, _Pre_notnull_ _Post_z_, wchar_t, _String)
683 : _Check_return_opt_ _CRTIMP int __cdecl _putws(_In_z_ const wchar_t * _Str);
684 :
685 : _Check_return_opt_ _CRTIMP int __cdecl fwprintf(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
686 : #if __STDC_WANT_SECURE_LIB__
687 : _Check_return_opt_ _CRTIMP int __cdecl fwprintf_s(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
688 : #endif
689 : _Check_return_opt_ _CRTIMP int __cdecl wprintf(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
690 : #if __STDC_WANT_SECURE_LIB__
691 : _Check_return_opt_ _CRTIMP int __cdecl wprintf_s(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
692 : #endif
693 : _Check_return_ _CRTIMP int __cdecl _scwprintf(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
694 : _Check_return_opt_ _CRTIMP int __cdecl vfwprintf(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
695 : #if __STDC_WANT_SECURE_LIB__
696 : _Check_return_opt_ _CRTIMP int __cdecl vfwprintf_s(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
697 : #endif
698 : _Check_return_opt_ _CRTIMP int __cdecl vwprintf(_In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
699 : #if __STDC_WANT_SECURE_LIB__
700 : _Check_return_opt_ _CRTIMP int __cdecl vwprintf_s(_In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
701 : #endif
702 :
703 : #if __STDC_WANT_SECURE_LIB__
704 : _CRTIMP_ALTERNATIVE int __cdecl swprintf_s(_Out_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ size_t _SizeInWords, _In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
705 : #endif
706 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(int, swprintf_s, vswprintf_s, wchar_t, _Dest, _In_z_ _Printf_format_string_ const wchar_t *, _Format)
707 : #if __STDC_WANT_SECURE_LIB__
708 : _CRTIMP_ALTERNATIVE int __cdecl vswprintf_s(_Out_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ size_t _SizeInWords, _In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
709 : #endif
710 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(int, vswprintf_s, wchar_t, _Dest, _In_z_ _Printf_format_string_ const wchar_t *, _Format, va_list, _Args)
711 :
712 : _Check_return_opt_ _CRTIMP int __cdecl _swprintf_c(_Out_z_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ size_t _SizeInWords, _In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
713 : _Check_return_opt_ _CRTIMP int __cdecl _vswprintf_c(_Out_z_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ size_t _SizeInWords, _In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
714 :
715 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _snwprintf_s(_Out_z_cap_(_DstSizeInWords) wchar_t * _DstBuf, _In_ size_t _DstSizeInWords, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
716 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(int, _snwprintf_s, _vsnwprintf_s, wchar_t, _Dest, _In_ size_t, _Count, _In_z_ _Printf_format_string_ const wchar_t *, _Format)
717 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _vsnwprintf_s(_Out_z_cap_(_DstSizeInWords) wchar_t * _DstBuf, _In_ size_t _DstSizeInWords, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
718 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(int, _vsnwprintf_s, wchar_t, _Dest, _In_ size_t, _Count, _In_z_ _Printf_format_string_ const wchar_t *, _Format, va_list, _Args)
719 : __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(int, __RETURN_POLICY_SAME, _CRTIMP, _snwprintf, _vsnwprintf, _Pre_notnull_ _Post_maybez_ wchar_t, _Out_cap_(_Count) _Post_maybez_, wchar_t, _Dest, _In_ size_t, _Count, _In_z_ _Printf_format_string_ const wchar_t *, _Format)
720 :
721 : _Check_return_opt_ _CRTIMP int __cdecl _fwprintf_p(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
722 : _Check_return_opt_ _CRTIMP int __cdecl _wprintf_p(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
723 : _Check_return_opt_ _CRTIMP int __cdecl _vfwprintf_p(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
724 : _Check_return_opt_ _CRTIMP int __cdecl _vwprintf_p(_In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
725 : _Check_return_opt_ _CRTIMP int __cdecl _swprintf_p(_Out_z_cap_(_MaxCount) wchar_t * _DstBuf, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
726 : _Check_return_opt_ _CRTIMP int __cdecl _vswprintf_p(_Out_z_cap_(_MaxCount) wchar_t * _DstBuf, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
727 : _Check_return_ _CRTIMP int __cdecl _scwprintf_p(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
728 : _Check_return_ _CRTIMP int __cdecl _vscwprintf_p(_In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
729 :
730 : _Check_return_opt_ _CRTIMP int __cdecl _wprintf_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
731 : _Check_return_opt_ _CRTIMP int __cdecl _wprintf_p_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
732 : _Check_return_opt_ _CRTIMP int __cdecl _wprintf_s_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
733 : _Check_return_opt_ _CRTIMP int __cdecl _vwprintf_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
734 : _Check_return_opt_ _CRTIMP int __cdecl _vwprintf_p_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
735 : _Check_return_opt_ _CRTIMP int __cdecl _vwprintf_s_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
736 :
737 : _Check_return_opt_ _CRTIMP int __cdecl _fwprintf_l(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
738 : _Check_return_opt_ _CRTIMP int __cdecl _fwprintf_p_l(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
739 : _Check_return_opt_ _CRTIMP int __cdecl _fwprintf_s_l(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
740 : _Check_return_opt_ _CRTIMP int __cdecl _vfwprintf_l(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
741 : _Check_return_opt_ _CRTIMP int __cdecl _vfwprintf_p_l(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
742 : _Check_return_opt_ _CRTIMP int __cdecl _vfwprintf_s_l(_Inout_ FILE * _File, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
743 :
744 : _Check_return_opt_ _CRTIMP int __cdecl _swprintf_c_l(_Out_z_cap_(_MaxCount) wchar_t * _DstBuf, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
745 : _Check_return_opt_ _CRTIMP int __cdecl _swprintf_p_l(_Out_z_cap_(_MaxCount) wchar_t * _DstBuf, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
746 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _swprintf_s_l(_Out_z_cap_(_DstSize) wchar_t * _DstBuf, _In_ size_t _DstSize, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
747 : _Check_return_opt_ _CRTIMP int __cdecl _vswprintf_c_l(_Out_z_cap_(_MaxCount) wchar_t * _DstBuf, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
748 : _Check_return_opt_ _CRTIMP int __cdecl _vswprintf_p_l(_Out_z_cap_(_MaxCount) wchar_t * _DstBuf, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
749 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _vswprintf_s_l(_Out_z_cap_(_DstSize) wchar_t * _DstBuf, _In_ size_t _DstSize, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
750 :
751 : _Check_return_ _CRTIMP int __cdecl _scwprintf_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
752 : _Check_return_ _CRTIMP int __cdecl _scwprintf_p_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
753 : _Check_return_ _CRTIMP int __cdecl _vscwprintf_p_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
754 :
755 : _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snwprintf_s_l) _CRTIMP int __cdecl _snwprintf_l(_Out_cap_(_MaxCount) wchar_t * _DstBuf, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
756 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _snwprintf_s_l(_Out_z_cap_(_DstSize) wchar_t * _DstBuf, _In_ size_t _DstSize, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
757 : _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vsnwprintf_s_l) _CRTIMP int __cdecl _vsnwprintf_l(_Out_cap_(_MaxCount) wchar_t * _DstBuf, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
758 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _vsnwprintf_s_l(_Out_z_cap_(_DstSize) wchar_t * _DstBuf, _In_ size_t _DstSize, _In_ size_t _MaxCount, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
759 :
760 : #ifndef _CRT_NON_CONFORMING_SWPRINTFS
761 :
762 : #define _SWPRINTFS_DEPRECATED _CRT_DEPRECATE_TEXT("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")
763 :
764 : #else
765 :
766 : #define _SWPRINTFS_DEPRECATED
767 :
768 : #endif /* ifndef _CRT_NON_CONFORMING_SWPRINTFS */
769 :
770 : /* we could end up with a double deprecation, disable warnings 4141 and 4996 */
771 : #pragma warning(push)
772 : #pragma warning(disable:4141 4996)
773 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(int, __RETURN_POLICY_SAME, _SWPRINTFS_DEPRECATED _CRTIMP, _swprintf, _swprintf_s, _vswprintf, vswprintf_s, _Pre_notnull_ _Post_z_, wchar_t, _Dest, _In_z_ _Printf_format_string_ const wchar_t *, _Format)
774 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(int, __RETURN_POLICY_SAME, _SWPRINTFS_DEPRECATED _CRTIMP, __swprintf_l, __vswprintf_l, _vswprintf_s_l, _Pre_notnull_ _Post_z_ wchar_t, _Out_, wchar_t, _Dest, _In_z_ _Printf_format_string_ const wchar_t *, _Format, _locale_t, _Plocinfo)
775 : #pragma warning(pop)
776 :
777 : #if !defined(RC_INVOKED) && !defined(__midl)
778 : #include <swprintf.inl>
779 : #endif
780 :
781 : #ifdef _CRT_NON_CONFORMING_SWPRINTFS
782 : #ifndef __cplusplus
783 : #define swprintf _swprintf
784 : #define vswprintf _vswprintf
785 : #define _swprintf_l __swprintf_l
786 : #define _vswprintf_l __vswprintf_l
787 : #endif
788 : #endif
789 :
790 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
791 : #pragma push_macro("_wtempnam")
792 : #undef _wtempnam
793 : #endif
794 :
795 : _Check_return_ _CRTIMP wchar_t * __cdecl _wtempnam(_In_opt_z_ const wchar_t * _Directory, _In_opt_z_ const wchar_t * _FilePrefix);
796 :
797 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
798 : #pragma pop_macro("_wtempnam")
799 : #endif
800 :
801 : _Check_return_ _CRTIMP int __cdecl _vscwprintf(_In_z_ _Printf_format_string_ const wchar_t * _Format, va_list _ArgList);
802 : _Check_return_ _CRTIMP int __cdecl _vscwprintf_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
803 : _Check_return_ _CRT_INSECURE_DEPRECATE(fwscanf_s) _CRTIMP int __cdecl fwscanf(_Inout_ FILE * _File, _In_z_ _Scanf_format_string_ const wchar_t * _Format, ...);
804 : _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_fwscanf_s_l) _CRTIMP int __cdecl _fwscanf_l(_Inout_ FILE * _File, _In_z_ _Scanf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
805 : #if __STDC_WANT_SECURE_LIB__
806 : _Check_return_opt_ _CRTIMP int __cdecl fwscanf_s(_Inout_ FILE * _File, _In_z_ _Scanf_s_format_string_ const wchar_t * _Format, ...);
807 : #endif
808 : _Check_return_opt_ _CRTIMP int __cdecl _fwscanf_s_l(_Inout_ FILE * _File, _In_z_ _Scanf_s_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
809 : _Check_return_ _CRT_INSECURE_DEPRECATE(swscanf_s) _CRTIMP int __cdecl swscanf(_In_z_ const wchar_t * _Src, _In_z_ _Scanf_format_string_ const wchar_t * _Format, ...);
810 : _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_swscanf_s_l) _CRTIMP int __cdecl _swscanf_l(_In_z_ const wchar_t * _Src, _In_z_ _Scanf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
811 : #if __STDC_WANT_SECURE_LIB__
812 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl swscanf_s(_In_z_ const wchar_t *_Src, _In_z_ _Scanf_s_format_string_ const wchar_t * _Format, ...);
813 : #endif
814 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _swscanf_s_l(_In_z_ const wchar_t * _Src, _In_z_ _Scanf_s_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
815 : _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snwscanf_s) _CRTIMP int __cdecl _snwscanf(_In_count_(_MaxCount) _Pre_z_ const wchar_t * _Src, _In_ size_t _MaxCount, _In_z_ _Scanf_format_string_ const wchar_t * _Format, ...);
816 : _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snwscanf_s_l) _CRTIMP int __cdecl _snwscanf_l(_In_count_(_MaxCount) _Pre_z_ const wchar_t * _Src, _In_ size_t _MaxCount, _In_z_ _Scanf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
817 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _snwscanf_s(_In_count_(_MaxCount) _Pre_z_ const wchar_t * _Src, _In_ size_t _MaxCount, _In_z_ _Scanf_s_format_string_ const wchar_t * _Format, ...);
818 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _snwscanf_s_l(_In_count_(_MaxCount) _Pre_z_ const wchar_t * _Src, _In_ size_t _MaxCount, _In_z_ _Scanf_s_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
819 : _Check_return_ _CRT_INSECURE_DEPRECATE(wscanf_s) _CRTIMP int __cdecl wscanf(_In_z_ _Scanf_format_string_ const wchar_t * _Format, ...);
820 : _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_wscanf_s_l) _CRTIMP int __cdecl _wscanf_l(_In_z_ _Scanf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
821 : #if __STDC_WANT_SECURE_LIB__
822 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl wscanf_s(_In_z_ _Scanf_format_string_ const wchar_t * _Format, ...);
823 : #endif
824 : _Check_return_opt_ _CRTIMP_ALTERNATIVE int __cdecl _wscanf_s_l(_In_z_ _Scanf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
825 :
826 : _Check_return_ _CRTIMP FILE * __cdecl _wfdopen(_In_ int _FileHandle , _In_z_ const wchar_t * _Mode);
827 : _Check_return_ _CRT_INSECURE_DEPRECATE(_wfopen_s) _CRTIMP FILE * __cdecl _wfopen(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _Mode);
828 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wfopen_s(_Deref_out_opt_ FILE ** _File, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _Mode);
829 : _Check_return_ _CRT_INSECURE_DEPRECATE(_wfreopen_s) _CRTIMP FILE * __cdecl _wfreopen(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _Mode, _Inout_ FILE * _OldFile);
830 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wfreopen_s(_Deref_out_opt_ FILE ** _File, _In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _Mode, _Inout_ FILE * _OldFile);
831 :
832 : #ifndef _CRT_WPERROR_DEFINED
833 : #define _CRT_WPERROR_DEFINED
834 : _CRTIMP void __cdecl _wperror(_In_opt_z_ const wchar_t * _ErrMsg);
835 : #endif
836 : _Check_return_ _CRTIMP FILE * __cdecl _wpopen(_In_z_ const wchar_t *_Command, _In_z_ const wchar_t * _Mode);
837 : _Check_return_ _CRTIMP int __cdecl _wremove(_In_z_ const wchar_t * _Filename);
838 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wtmpnam_s(_Out_z_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ size_t _SizeInWords);
839 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wtmpnam_s, _Deref_post_z_ wchar_t, _Buffer)
840 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wtmpnam, _Pre_maybenull_ _Post_z_, wchar_t, _Buffer)
841 :
842 : _Check_return_opt_ _CRTIMP wint_t __cdecl _fgetwc_nolock(_Inout_ FILE * _File);
843 : _Check_return_opt_ _CRTIMP wint_t __cdecl _fputwc_nolock(_In_ wchar_t _Ch, _Inout_ FILE * _File);
844 : _Check_return_opt_ _CRTIMP wint_t __cdecl _ungetwc_nolock(_In_ wint_t _Ch, _Inout_ FILE * _File);
845 :
846 : #undef _CRT_GETPUTWCHAR_NOINLINE
847 :
848 : #if !defined(__cplusplus) || defined(_M_CEE_PURE) || defined(_CRT_GETPUTWCHAR_NOINLINE)
849 : #define getwchar() fgetwc(stdin)
850 : #define putwchar(_c) fputwc((_c),stdout)
851 : #else /* __cplusplus */
852 : inline wint_t __CRTDECL getwchar()
853 : {return (fgetwc(stdin)); } /* stdin */
854 : inline wint_t __CRTDECL putwchar(wchar_t _C)
855 : {return (fputwc(_C, stdout)); } /* stdout */
856 : #endif /* __cplusplus */
857 :
858 : #define getwc(_stm) fgetwc(_stm)
859 : #define putwc(_c,_stm) fputwc(_c,_stm)
860 : #define _putwc_nolock(_c,_stm) _fputwc_nolock(_c,_stm)
861 : #define _getwc_nolock(_c) _fgetwc_nolock(_c)
862 :
863 : #if defined(_CRT_DISABLE_PERFCRIT_LOCKS) && !defined(_DLL)
864 : #define fgetwc(_stm) _getwc_nolock(_stm)
865 : #define fputwc(_c,_stm) _putwc_nolock(_c,_stm)
866 : #define ungetwc(_c,_stm) _ungetwc_nolock(_c,_stm)
867 : #endif
868 :
869 : #define _WSTDIO_DEFINED
870 : #endif /* _WSTDIO_DEFINED */
871 :
872 : #ifndef _WSTDLIB_DEFINED
873 :
874 : /* wide function prototypes, also declared in stdlib.h */
875 :
876 : _Check_return_wat_ _CRTIMP errno_t __cdecl _itow_s (_In_ int _Val, _Out_z_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ size_t _SizeInWords, _In_ int _Radix);
877 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _itow_s, _In_ int, _Value, wchar_t, _Dest, _In_ int, _Radix)
878 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _itow, _In_ int, _Value, _Pre_notnull_ _Post_z_, wchar_t, _Dest, _In_ int, _Radix)
879 : _Check_return_wat_ _CRTIMP errno_t __cdecl _ltow_s (_In_ long _Val, _Out_z_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ size_t _SizeInWords, _In_ int _Radix);
880 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _ltow_s, _In_ long, _Value, wchar_t, _Dest, _In_ int, _Radix)
881 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _ltow, _In_ long, _Value, _Pre_notnull_ _Post_z_, wchar_t, _Dest, _In_ int, _Radix)
882 : _Check_return_wat_ _CRTIMP errno_t __cdecl _ultow_s (_In_ unsigned long _Val, _Out_z_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ size_t _SizeInWords, _In_ int _Radix);
883 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _ultow_s, _In_ unsigned long, _Value, wchar_t, _Dest, _In_ int, _Radix)
884 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _ultow, _In_ unsigned long, _Value, _Pre_notnull_ _Post_z_, wchar_t, _Dest, _In_ int, _Radix)
885 : _Check_return_ _CRTIMP double __cdecl wcstod(_In_z_ const wchar_t * _Str, _Out_opt_ _Deref_post_z_ wchar_t ** _EndPtr);
886 : _Check_return_ _CRTIMP double __cdecl _wcstod_l(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t ** _EndPtr, _In_opt_ _locale_t _Locale);
887 : _Check_return_ _CRTIMP long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t ** _EndPtr, int _Radix);
888 : _Check_return_ _CRTIMP long __cdecl _wcstol_l(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, int _Radix, _In_opt_ _locale_t _Locale);
889 : _Check_return_ _CRTIMP unsigned long __cdecl wcstoul(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t ** _EndPtr, int _Radix);
890 : _Check_return_ _CRTIMP unsigned long __cdecl _wcstoul_l(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, int _Radix, _In_opt_ _locale_t _Locale);
891 : _Check_return_ _CRTIMP _CRT_INSECURE_DEPRECATE(_wdupenv_s) wchar_t * __cdecl _wgetenv(_In_z_ const wchar_t * _VarName);
892 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wgetenv_s(_Out_ size_t * _ReturnSize, _Out_z_cap_(_DstSizeInWords) wchar_t * _DstBuf, _In_ size_t _DstSizeInWords, _In_z_ const wchar_t * _VarName);
893 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _wgetenv_s, _Out_ size_t *, _ReturnSize, wchar_t, _Dest, _In_z_ const wchar_t *, _VarName)
894 :
895 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
896 : #pragma push_macro("_wdupenv_s")
897 : #undef _wdupenv_s
898 : #endif
899 :
900 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wdupenv_s(_Out_ _Deref_post_opt_z_cap_(*_BufferSizeInWords) wchar_t **_Buffer, _Out_opt_ size_t *_BufferSizeInWords, _In_z_ const wchar_t *_VarName);
901 :
902 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
903 : #pragma pop_macro("_wdupenv_s")
904 : #endif
905 : #ifndef _CRT_WSYSTEM_DEFINED
906 : #define _CRT_WSYSTEM_DEFINED
907 : _CRTIMP int __cdecl _wsystem(_In_opt_z_ const wchar_t * _Command);
908 : #endif
909 : _Check_return_ _CRTIMP double __cdecl _wtof(_In_z_ const wchar_t *_Str);
910 : _Check_return_ _CRTIMP double __cdecl _wtof_l(_In_z_ const wchar_t *_Str, _In_opt_ _locale_t _Locale);
911 : _Check_return_ _CRTIMP int __cdecl _wtoi(_In_z_ const wchar_t *_Str);
912 : _Check_return_ _CRTIMP int __cdecl _wtoi_l(_In_z_ const wchar_t *_Str, _In_opt_ _locale_t _Locale);
913 : _Check_return_ _CRTIMP long __cdecl _wtol(_In_z_ const wchar_t *_Str);
914 : _Check_return_ _CRTIMP long __cdecl _wtol_l(_In_z_ const wchar_t *_Str, _In_opt_ _locale_t _Locale);
915 :
916 : _Check_return_wat_ _CRTIMP errno_t __cdecl _i64tow_s(_In_ __int64 _Val, _Out_z_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ size_t _SizeInWords, _In_ int _Radix);
917 : _CRTIMP _CRT_INSECURE_DEPRECATE(_i64tow_s) wchar_t * __cdecl _i64tow(_In_ __int64 _Val, _Pre_notnull_ _Post_z_ wchar_t * _DstBuf, _In_ int _Radix);
918 : _Check_return_wat_ _CRTIMP errno_t __cdecl _ui64tow_s(_In_ unsigned __int64 _Val, _Out_z_cap_(_SizeInWords) wchar_t * _DstBuf, _In_ size_t _SizeInWords, _In_ int _Radix);
919 : _CRTIMP _CRT_INSECURE_DEPRECATE(_ui64tow_s) wchar_t * __cdecl _ui64tow(_In_ unsigned __int64 _Val, _Pre_notnull_ _Post_z_ wchar_t * _DstBuf, _In_ int _Radix);
920 : _Check_return_ _CRTIMP __int64 __cdecl _wtoi64(_In_z_ const wchar_t *_Str);
921 : _Check_return_ _CRTIMP __int64 __cdecl _wtoi64_l(_In_z_ const wchar_t *_Str, _In_opt_ _locale_t _Locale);
922 : _Check_return_ _CRTIMP __int64 __cdecl _wcstoi64(_In_z_ const wchar_t * _Str, _Out_opt_ _Deref_post_z_ wchar_t ** _EndPtr, _In_ int _Radix);
923 : _Check_return_ _CRTIMP __int64 __cdecl _wcstoi64_l(_In_z_ const wchar_t * _Str, _Out_opt_ _Deref_post_z_ wchar_t ** _EndPtr, _In_ int _Radix, _In_opt_ _locale_t _Locale);
924 : _Check_return_ _CRTIMP unsigned __int64 __cdecl _wcstoui64(_In_z_ const wchar_t * _Str, _Out_opt_ _Deref_post_z_ wchar_t ** _EndPtr, _In_ int _Radix);
925 : _Check_return_ _CRTIMP unsigned __int64 __cdecl _wcstoui64_l(_In_z_ const wchar_t *_Str , _Out_opt_ _Deref_post_z_ wchar_t ** _EndPtr, _In_ int _Radix, _In_opt_ _locale_t _Locale);
926 :
927 : #define _WSTDLIB_DEFINED
928 : #endif
929 :
930 : #ifndef _POSIX_
931 :
932 : #ifndef _WSTDLIBP_DEFINED
933 :
934 : /* wide function prototypes, also declared in stdlib.h */
935 :
936 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
937 : #pragma push_macro("_wfullpath")
938 : #undef _wfullpath
939 : #endif
940 :
941 : _Check_return_ _CRTIMP wchar_t * __cdecl _wfullpath(_Out_opt_z_cap_(_SizeInWords) wchar_t * _FullPath, _In_z_ const wchar_t * _Path, _In_ size_t _SizeInWords);
942 :
943 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
944 : #pragma pop_macro("_wfullpath")
945 : #endif
946 :
947 : _Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl _wmakepath_s(_Out_z_cap_(_SizeInBytes) wchar_t * _PathResult, _In_ size_t _SizeInBytes, _In_opt_z_ const wchar_t * _Drive, _In_opt_z_ const wchar_t * _Dir, _In_opt_z_ const wchar_t * _Filename,
948 : _In_opt_z_ const wchar_t * _Ext);
949 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(errno_t, _wmakepath_s, wchar_t, _ResultPath, _In_opt_z_ const wchar_t *, _Drive, _In_opt_z_ const wchar_t *, _Dir, _In_opt_z_ const wchar_t *, _Filename, _In_opt_z_ const wchar_t *, _Ext)
950 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4(void, __RETURN_POLICY_VOID, _CRTIMP, _wmakepath, _Pre_notnull_ _Post_z_, wchar_t, _ResultPath, _In_opt_z_ const wchar_t *, _Drive, _In_opt_z_ const wchar_t *, _Dir, _In_opt_z_ const wchar_t *, _Filename, _In_opt_z_ const wchar_t *, _Ext)
951 : #ifndef _CRT_WPERROR_DEFINED
952 : #define _CRT_WPERROR_DEFINED
953 : _CRTIMP void __cdecl _wperror(_In_opt_z_ const wchar_t * _ErrMsg);
954 : #endif
955 : _Check_return_ _CRTIMP int __cdecl _wputenv(_In_z_ const wchar_t * _EnvString);
956 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wputenv_s(_In_z_ const wchar_t * _Name, _In_z_ const wchar_t * _Value);
957 : _CRTIMP errno_t __cdecl _wsearchenv_s(_In_z_ const wchar_t * _Filename, _In_z_ const wchar_t * _EnvVar, _Out_z_cap_(_SizeInWords) wchar_t * _ResultPath, _In_ size_t _SizeInWords);
958 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(errno_t, _wsearchenv_s, _In_z_ const wchar_t *, _Filename, _In_z_ const wchar_t *, _EnvVar, wchar_t, _ResultPath)
959 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0(void, __RETURN_POLICY_VOID, _CRTIMP, _wsearchenv, _In_z_ const wchar_t *, _Filename, _In_z_ const wchar_t *, _EnvVar, _Pre_notnull_ _Post_z_, wchar_t, _ResultPath)
960 : _CRT_INSECURE_DEPRECATE(_wsplitpath_s) _CRTIMP void __cdecl _wsplitpath(_In_z_ const wchar_t * _FullPath, _Pre_maybenull_ _Post_z_ wchar_t * _Drive, _Pre_maybenull_ _Post_z_ wchar_t * _Dir, _Pre_maybenull_ _Post_z_ wchar_t * _Filename, _Pre_maybenull_ _Post_z_ wchar_t * _Ext);
961 : _CRTIMP_ALTERNATIVE errno_t __cdecl _wsplitpath_s(_In_z_ const wchar_t * _FullPath,
962 : _Out_opt_z_cap_(_DriveSize) wchar_t * _Drive, _In_ size_t _DriveSize,
963 : _Out_opt_z_cap_(_DirSize) wchar_t * _Dir, _In_ size_t _DirSize,
964 : _Out_opt_z_cap_(_FilenameSize) wchar_t * _Filename, _In_ size_t _FilenameSize,
965 : _Out_opt_z_cap_(_ExtSize) wchar_t * _Ext, _In_ size_t _ExtSize);
966 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(errno_t, _wsplitpath_s, wchar_t, _Path)
967 :
968 : #define _WSTDLIBP_DEFINED
969 : #endif
970 :
971 : #endif /* _POSIX_ */
972 :
973 :
974 : #ifndef _WSTRING_DEFINED
975 :
976 : /* wide function prototypes, also declared in string.h */
977 :
978 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
979 : #pragma push_macro("_wcsdup")
980 : #undef _wcsdup
981 : #endif
982 :
983 : _Check_return_ _CRTIMP wchar_t * __cdecl _wcsdup(_In_z_ const wchar_t * _Str);
984 :
985 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
986 : #pragma pop_macro("_wcsdup")
987 : #endif
988 :
989 : #if __STDC_WANT_SECURE_LIB__
990 : _Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcscat_s(_Inout_z_cap_(_DstSize) wchar_t * _Dst, _In_ rsize_t _DstSize, const wchar_t * _Src);
991 : #endif
992 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, wcscat_s, wchar_t, _Dest, _In_z_ const wchar_t *, _Source)
993 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, wcscat, _Pre_cap_for_(_Source) _Prepost_z_, wchar_t, _Dest, _In_z_ const wchar_t *, _Source)
994 : _Check_return_ _CRTIMP _CONST_RETURN wchar_t * __cdecl wcschr(_In_z_ const wchar_t * _Str, wchar_t _Ch);
995 : _Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2);
996 : #if __STDC_WANT_SECURE_LIB__
997 : _Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcscpy_s(_Out_z_cap_(_DstSize) wchar_t * _Dst, _In_ rsize_t _DstSize, _In_z_ const wchar_t * _Src);
998 : #endif
999 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, wcscpy_s, wchar_t, _Dest, _In_z_ const wchar_t *, _Source)
1000 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, wcscpy, _Pre_cap_for_(_Source) _Post_z_, wchar_t, _Dest, _In_z_ const wchar_t *, _Source)
1001 : _Check_return_ _CRTIMP size_t __cdecl wcscspn(_In_z_ const wchar_t * _Str, _In_z_ const wchar_t * _Control);
1002 : _Check_return_ _CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t * _Str);
1003 : _Check_return_ _CRTIMP size_t __cdecl wcsnlen(_In_z_ const wchar_t * _Src, _In_ size_t _MaxCount);
1004 : #if __STDC_WANT_SECURE_LIB__
1005 : _Check_return_ static __inline size_t __CRTDECL wcsnlen_s(_In_z_ const wchar_t * _Src, _In_ size_t _MaxCount)
1006 : {
1007 : return (_Src == NULL) ? 0 : wcsnlen(_Src, _MaxCount);
1008 : }
1009 : #endif
1010 : #if __STDC_WANT_SECURE_LIB__
1011 : _Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcsncat_s(_Inout_z_cap_(_DstSize) wchar_t * _Dst, _In_ rsize_t _DstSize, _In_z_ const wchar_t * _Src, _In_ rsize_t _MaxCount);
1012 : #endif
1013 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, wcsncat_s, _Deref_prepost_z_ wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count)
1014 :
1015 : #pragma warning(push)
1016 : #pragma warning(disable:6059)
1017 : __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, wcsncat, wcsncat_s, _Deref_inout_z_cap_c_(_Size) wchar_t, _Inout_z_cap_(_Count), wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count)
1018 : #pragma warning(pop)
1019 :
1020 : _Check_return_ _CRTIMP int __cdecl wcsncmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount);
1021 : #if __STDC_WANT_SECURE_LIB__
1022 : _Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcsncpy_s(_Out_z_cap_(_DstSize) wchar_t * _Dst, _In_ rsize_t _DstSize, _In_z_ const wchar_t * _Src, _In_ rsize_t _MaxCount);
1023 : #endif
1024 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, wcsncpy_s, wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count)
1025 : __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, wcsncpy, wcsncpy_s, _Deref_out_z_cap_c_(_Size) wchar_t, _Out_cap_(_Count) _Post_maybez_, wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count)
1026 : _Check_return_ _CRTIMP _CONST_RETURN wchar_t * __cdecl wcspbrk(_In_z_ const wchar_t * _Str, _In_z_ const wchar_t * _Control);
1027 : _Check_return_ _CRTIMP _CONST_RETURN wchar_t * __cdecl wcsrchr(_In_z_ const wchar_t * _Str, _In_ wchar_t _Ch);
1028 : _Check_return_ _CRTIMP size_t __cdecl wcsspn(_In_z_ const wchar_t * _Str, _In_z_ const wchar_t * _Control);
1029 : _Check_return_ _CRTIMP _CONST_RETURN wchar_t * __cdecl wcsstr(_In_z_ const wchar_t * _Str, _In_z_ const wchar_t * _SubStr);
1030 : _Check_return_ _CRT_INSECURE_DEPRECATE(wcstok_s) _CRTIMP wchar_t * __cdecl wcstok(_Inout_opt_z_ wchar_t * _Str, _In_z_ const wchar_t * _Delim);
1031 : _Check_return_ _CRTIMP_ALTERNATIVE wchar_t * __cdecl wcstok_s(_Inout_opt_z_ wchar_t * _Str, _In_z_ const wchar_t * _Delim, _Inout_ _Deref_prepost_opt_z_ wchar_t ** _Context);
1032 : _Check_return_ _CRT_INSECURE_DEPRECATE(_wcserror_s) _CRTIMP wchar_t * __cdecl _wcserror(_In_ int _ErrNum);
1033 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wcserror_s(_Out_opt_z_cap_(_SizeInWords) wchar_t * _Buf, _In_ size_t _SizeInWords, _In_ int _ErrNum);
1034 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcserror_s, wchar_t, _Buffer, _In_ int, _Error)
1035 : _Check_return_ _CRT_INSECURE_DEPRECATE(__wcserror_s) _CRTIMP wchar_t * __cdecl __wcserror(_In_opt_z_ const wchar_t * _Str);
1036 : _Check_return_wat_ _CRTIMP errno_t __cdecl __wcserror_s(_Out_opt_z_cap_(_SizeInWords) wchar_t * _Buffer, _In_ size_t _SizeInWords, _In_z_ const wchar_t * _ErrMsg);
1037 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, __wcserror_s, wchar_t, _Buffer, _In_z_ const wchar_t *, _ErrorMessage)
1038 :
1039 : _Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2);
1040 : _Check_return_ _CRTIMP int __cdecl _wcsicmp_l(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_opt_ _locale_t _Locale);
1041 : _Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount);
1042 : _Check_return_ _CRTIMP int __cdecl _wcsnicmp_l(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1043 : _Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl _wcsnset_s(_Inout_z_cap_(_DstSizeInWords) wchar_t * _Dst, _In_ size_t _DstSizeInWords, wchar_t _Val, _In_ size_t _MaxCount);
1044 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _wcsnset_s, _Deref_prepost_z_ wchar_t, _Dst, wchar_t, _Val, _In_ size_t, _MaxCount)
1045 : __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wcsnset, _wcsnset_s, _Deref_inout_z_cap_c_(_Size) wchar_t, _Inout_z_cap_(_MaxCount), wchar_t, _Str, wchar_t, _Val, _In_ size_t, _MaxCount)
1046 : _CRTIMP wchar_t * __cdecl _wcsrev(_Inout_z_ wchar_t * _Str);
1047 : _Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl _wcsset_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Str, _In_ size_t _SizeInWords, wchar_t _Val);
1048 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcsset_s, _Deref_prepost_z_ wchar_t, _Str, wchar_t, _Val)
1049 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wcsset, _wcsset_s, _Deref_inout_z_cap_c_(_Size) wchar_t, _Inout_z_, wchar_t, _Str, wchar_t, _Val)
1050 :
1051 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wcslwr_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Str, _In_ size_t _SizeInWords);
1052 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wcslwr_s, wchar_t, _String)
1053 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wcslwr, _Inout_z_, wchar_t, _String)
1054 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wcslwr_s_l(_Inout_z_cap_(_SizeInWords) wchar_t * _Str, _In_ size_t _SizeInWords, _In_opt_ _locale_t _Locale);
1055 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcslwr_s_l, wchar_t, _String, _In_opt_ _locale_t, _Locale)
1056 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wcslwr_l, _wcslwr_s_l, _Deref_inout_z_cap_c_(_Size) wchar_t, _Inout_z_, wchar_t, _String, _In_opt_ _locale_t, _Locale)
1057 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wcsupr_s(_Inout_z_cap_(_Size) wchar_t * _Str, _In_ size_t _Size);
1058 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wcsupr_s, wchar_t, _String)
1059 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wcsupr, _Inout_z_, wchar_t, _String)
1060 : _Check_return_wat_ _CRTIMP errno_t __cdecl _wcsupr_s_l(_Inout_z_cap_(_Size) wchar_t * _Str, _In_ size_t _Size, _In_opt_ _locale_t _Locale);
1061 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcsupr_s_l, _Deref_prepost_z_ wchar_t, _String, _In_opt_ _locale_t, _Locale)
1062 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wcsupr_l, _wcsupr_s_l, _Deref_inout_z_cap_c_(_Size) wchar_t, _Inout_z_, wchar_t, _String, _In_opt_ _locale_t, _Locale)
1063 : _Check_return_opt_ _CRTIMP size_t __cdecl wcsxfrm(_Out_opt_cap_(_MaxCount) _Post_maybez_ wchar_t * _Dst, _In_z_ const wchar_t * _Src, _In_ size_t _MaxCount);
1064 : _Check_return_opt_ _CRTIMP size_t __cdecl _wcsxfrm_l(_Out_opt_cap_(_MaxCount) _Post_maybez_ wchar_t * _Dst, _In_z_ const wchar_t *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1065 : _Check_return_ _CRTIMP int __cdecl wcscoll(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2);
1066 : _Check_return_ _CRTIMP int __cdecl _wcscoll_l(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_opt_ _locale_t _Locale);
1067 : _Check_return_ _CRTIMP int __cdecl _wcsicoll(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2);
1068 : _Check_return_ _CRTIMP int __cdecl _wcsicoll_l(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t *_Str2, _In_opt_ _locale_t _Locale);
1069 : _Check_return_ _CRTIMP int __cdecl _wcsncoll(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount);
1070 : _Check_return_ _CRTIMP int __cdecl _wcsncoll_l(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1071 : _Check_return_ _CRTIMP int __cdecl _wcsnicoll(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount);
1072 : _Check_return_ _CRTIMP int __cdecl _wcsnicoll_l(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1073 :
1074 : #ifdef __cplusplus
1075 : #ifndef _CPP_WIDE_INLINES_DEFINED
1076 : #define _CPP_WIDE_INLINES_DEFINED
1077 : extern "C++" {
1078 : _Check_return_ inline wchar_t * __CRTDECL wcschr(_In_z_ wchar_t *_Str, wchar_t _Ch)
1079 : {return ((wchar_t *)wcschr((const wchar_t *)_Str, _Ch)); }
1080 : _Check_return_ inline wchar_t * __CRTDECL wcspbrk(_In_z_ wchar_t *_Str, _In_z_ const wchar_t *_Control)
1081 : {return ((wchar_t *)wcspbrk((const wchar_t *)_Str, _Control)); }
1082 : _Check_return_ inline wchar_t * __CRTDECL wcsrchr(_In_z_ wchar_t *_Str, _In_ wchar_t _Ch)
1083 : {return ((wchar_t *)wcsrchr((const wchar_t *)_Str, _Ch)); }
1084 : _Check_return_ inline wchar_t * __CRTDECL wcsstr(_In_z_ wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
1085 : {return ((wchar_t *)wcsstr((const wchar_t *)_Str, _SubStr)); }
1086 : }
1087 : #endif
1088 : #endif
1089 :
1090 : #if !__STDC__
1091 :
1092 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1093 : #pragma push_macro("wcsdup")
1094 : #undef wcsdup
1095 : #endif
1096 :
1097 : _Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsdup) _CRTIMP wchar_t * __cdecl wcsdup(_In_z_ const wchar_t * _Str);
1098 :
1099 : #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1100 : #pragma pop_macro("wcsdup")
1101 : #endif
1102 :
1103 : /* old names */
1104 : #define wcswcs wcsstr
1105 :
1106 : /* prototypes for oldnames.lib functions */
1107 : _Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsicmp) _CRTIMP int __cdecl wcsicmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2);
1108 : _Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsnicmp) _CRTIMP int __cdecl wcsnicmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount);
1109 : _CRT_NONSTDC_DEPRECATE(_wcsnset) _CRTIMP wchar_t * __cdecl wcsnset(_Inout_z_cap_(_MaxCount) wchar_t * _Str, _In_ wchar_t _Val, _In_ size_t _MaxCount);
1110 : _CRT_NONSTDC_DEPRECATE(_wcsrev) _CRTIMP wchar_t * __cdecl wcsrev(_Inout_z_ wchar_t * _Str);
1111 : _CRT_NONSTDC_DEPRECATE(_wcsset) _CRTIMP wchar_t * __cdecl wcsset(_Inout_z_ wchar_t * _Str, wchar_t _Val);
1112 : _CRT_NONSTDC_DEPRECATE(_wcslwr) _CRTIMP wchar_t * __cdecl wcslwr(_Inout_z_ wchar_t * _Str);
1113 : _CRT_NONSTDC_DEPRECATE(_wcsupr) _CRTIMP wchar_t * __cdecl wcsupr(_Inout_z_ wchar_t * _Str);
1114 : _Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsicoll) _CRTIMP int __cdecl wcsicoll(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2);
1115 :
1116 : #endif /* !__STDC__ */
1117 :
1118 : #define _WSTRING_DEFINED
1119 : #endif
1120 :
1121 : #ifndef _TM_DEFINED
1122 : struct tm {
1123 : int tm_sec; /* seconds after the minute - [0,59] */
1124 : int tm_min; /* minutes after the hour - [0,59] */
1125 : int tm_hour; /* hours since midnight - [0,23] */
1126 : int tm_mday; /* day of the month - [1,31] */
1127 : int tm_mon; /* months since January - [0,11] */
1128 : int tm_year; /* years since 1900 */
1129 : int tm_wday; /* days since Sunday - [0,6] */
1130 : int tm_yday; /* days since January 1 - [0,365] */
1131 : int tm_isdst; /* daylight savings time flag */
1132 : };
1133 : #define _TM_DEFINED
1134 : #endif
1135 :
1136 : #ifndef _WTIME_DEFINED
1137 :
1138 : /* wide function prototypes, also declared in time.h */
1139 :
1140 : _CRT_INSECURE_DEPRECATE(_wasctime_s) _CRTIMP wchar_t * __cdecl _wasctime(_In_ const struct tm * _Tm);
1141 : _CRTIMP errno_t __cdecl _wasctime_s(_Out_cap_(_SizeInWords) _Post_count_c_(26) wchar_t *_Buf, _In_ size_t _SizeInWords, _In_ const struct tm * _Tm);
1142 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wasctime_s, _Deref_post_count_c_(26) wchar_t, _Buffer, _In_ const struct tm *, _Time)
1143 :
1144 : _CRT_INSECURE_DEPRECATE(_wctime32_s) _CRTIMP wchar_t * __cdecl _wctime32(_In_ const __time32_t *_Time);
1145 : _CRTIMP errno_t __cdecl _wctime32_s(_Out_cap_(_SizeInWords) _Post_count_c_(26) wchar_t* _Buf, _In_ size_t _SizeInWords, _In_ const __time32_t * _Time);
1146 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wctime32_s, _Deref_post_count_c_(26) wchar_t, _Buffer, _In_ const __time32_t *, _Time)
1147 :
1148 : _CRTIMP size_t __cdecl wcsftime(_Out_z_cap_(_SizeInWords) wchar_t * _Buf, _In_ size_t _SizeInWords, _In_z_ _Printf_format_string_ const wchar_t * _Format, _In_ const struct tm * _Tm);
1149 : _CRTIMP size_t __cdecl _wcsftime_l(_Out_z_cap_(_SizeInWords) wchar_t * _Buf, _In_ size_t _SizeInWords, _In_z_ _Printf_format_string_ const wchar_t *_Format, _In_ const struct tm *_Tm, _In_opt_ _locale_t _Locale);
1150 :
1151 : _CRTIMP errno_t __cdecl _wstrdate_s(_Out_cap_(_SizeInWords) _Post_count_c_(9) wchar_t * _Buf, _In_ size_t _SizeInWords);
1152 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wstrdate_s, _Deref_post_count_c_(9) wchar_t, _Buffer)
1153 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wstrdate, _Out_z_cap_c_(9), wchar_t, _Buffer)
1154 :
1155 : _CRTIMP errno_t __cdecl _wstrtime_s(_Out_cap_(_SizeInWords) _Post_count_c_(9) wchar_t * _Buf, _In_ size_t _SizeInWords);
1156 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wstrtime_s, _Deref_post_count_c_(9) wchar_t, _Buffer)
1157 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wstrtime, _Out_z_cap_c_(9), wchar_t, _Buffer)
1158 :
1159 : _CRT_INSECURE_DEPRECATE(_wctime64_s) _CRTIMP wchar_t * __cdecl _wctime64(_In_ const __time64_t * _Time);
1160 : _CRTIMP errno_t __cdecl _wctime64_s(_Out_cap_(_SizeInWords) _Post_count_c_(26) wchar_t* _Buf, _In_ size_t _SizeInWords, _In_ const __time64_t *_Time);
1161 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wctime64_s, _Deref_post_count_c_(26) wchar_t, _Buffer, _In_ const __time64_t *, _Time)
1162 :
1163 : #if !defined(RC_INVOKED) && !defined(__midl)
1164 : #include <wtime.inl>
1165 : #endif
1166 :
1167 : #define _WTIME_DEFINED
1168 : #endif
1169 :
1170 :
1171 : typedef int mbstate_t;
1172 : typedef wchar_t _Wint_t;
1173 :
1174 : _CRTIMP wint_t __cdecl btowc(int);
1175 : _CRTIMP size_t __cdecl mbrlen(_In_opt_bytecount_(_SizeInBytes) _Pre_opt_z_ const char * _Ch, _In_ size_t _SizeInBytes,
1176 : _Out_opt_ mbstate_t * _State);
1177 : _CRTIMP size_t __cdecl mbrtowc(_Pre_maybenull_ _Post_z_ wchar_t * _DstCh, _In_opt_bytecount_(_SizeInBytes) _Pre_opt_z_ const char * _SrcCh,
1178 : _In_ size_t _SizeInBytes, _Out_opt_ mbstate_t * _State);
1179 : _CRTIMP errno_t __cdecl mbsrtowcs_s(_Out_opt_ size_t* _Retval, _Out_opt_z_cap_(_Size) wchar_t * _Dst, _In_ size_t _Size, _Inout_ _Deref_prepost_opt_valid_ const char ** _PSrc, _In_ size_t _N, _Out_opt_ mbstate_t * _State);
1180 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(errno_t, mbsrtowcs_s, _Out_opt_ size_t *, _Retval, _Deref_post_z_ wchar_t, _Dest, _Inout_ _Deref_prepost_opt_valid_ const char **, _PSource, _In_ size_t, _Count, _Out_opt_ mbstate_t *, _State)
1181 : __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE(_CRTIMP, mbsrtowcs, _Pre_notnull_ _Post_z_, wchar_t, _Dest, _Inout_ _Deref_prepost_opt_valid_ const char **, _PSrc, _In_ size_t, _Count, _Inout_opt_ mbstate_t *, _State)
1182 :
1183 : _CRTIMP errno_t __cdecl wcrtomb_s(_Out_opt_ size_t * _Retval, _Out_opt_z_bytecap_(_SizeInBytes) char * _Dst,
1184 : _In_ size_t _SizeInBytes, _In_ wchar_t _Ch, _Out_opt_ mbstate_t * _State);
1185 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(errno_t, wcrtomb_s, _Out_opt_ size_t *, _Retval, _Out_opt_z_bytecap_(_Size) char, _Dest, _In_ wchar_t, _Source, _Out_opt_ mbstate_t *, _State)
1186 : __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE(_CRTIMP, wcrtomb, _Pre_maybenull_ _Post_z_, char, _Dest, _In_ wchar_t, _Source, _Out_opt_ mbstate_t *, _State)
1187 : _CRTIMP errno_t __cdecl wcsrtombs_s(_Out_opt_ size_t * _Retval, _Out_opt_bytecap_post_bytecount_(_SizeInBytes, *_Retval) char * _Dst,
1188 : _In_ size_t _SizeInBytes, _Inout_ _Deref_prepost_z_ const wchar_t ** _Src, _In_ size_t _Size, _Out_opt_ mbstate_t * _State);
1189 : __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(errno_t, wcsrtombs_s, _Out_opt_ size_t *, _Retval, _Out_opt_z_bytecap_(_Size) char, _Dest, _Inout_ _Deref_prepost_z_ const wchar_t **, _PSrc, _In_ size_t, _Count, _Out_opt_ mbstate_t *, _State)
1190 : __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE(_CRTIMP, wcsrtombs, _Pre_maybenull_ _Post_z_, char, _Dest, _Inout_ _Deref_prepost_z_ const wchar_t **, _PSource, _In_ size_t, _Count, _Out_opt_ mbstate_t *, _State)
1191 : _CRTIMP int __cdecl wctob(_In_ wint_t _WCh);
1192 :
1193 : #ifndef __midl
1194 :
1195 : /* memcpy and memmove are defined just for use in wmemcpy and wmemmove */
1196 : #if defined(_M_IA64)
1197 : _CRT_INSECURE_DEPRECATE_MEMORY(memmove_s) void * __cdecl memmove(_Out_opt_bytecapcount_(_Size) void * _Dst, _In_opt_bytecount_(_Size) const void * _Src, _In_ size_t _Size);
1198 : #else
1199 : _CRTIMP _CRT_INSECURE_DEPRECATE_MEMORY(memmove_s) void * __cdecl memmove(_Out_opt_bytecapcount_(_Size) void * _Dst, _In_opt_bytecount_(_Size) const void * _Src, _In_ size_t _Size);
1200 : #endif
1201 : _CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s) void * __cdecl memcpy(_Out_opt_bytecapcount_(_Size) void * _Dst, _In_opt_bytecount_(_Size) const void * _Src, _In_ size_t _Size);
1202 : #if __STDC_WANT_SECURE_LIB__
1203 : _CRTIMP errno_t __cdecl memcpy_s(_Out_opt_bytecap_post_bytecount_(_DstSize, _MaxCount) void * _Dst, _In_ rsize_t _DstSize, _In_opt_bytecount_(_MaxCount) const void * _Src, _In_ rsize_t _MaxCount);
1204 : _CRTIMP errno_t __cdecl memmove_s(_Out_opt_bytecap_post_bytecount_(_DstSize, _MaxCount) void * _Dst, _In_ rsize_t _DstSize, _In_opt_bytecount_(_MaxCount) const void * _Src, _In_ rsize_t _MaxCount);
1205 : #endif
1206 : __inline int __CRTDECL fwide(_In_opt_ FILE * _F, int _M)
1207 : {(void)_F; return (_M); }
1208 : __inline int __CRTDECL mbsinit(_In_opt_ const mbstate_t *_P)
1209 : {return (_P == NULL || *_P == 0); }
1210 : __inline _CONST_RETURN wchar_t * __CRTDECL wmemchr(_In_count_(_N) const wchar_t *_S, _In_ wchar_t _C, _In_ size_t _N)
1211 0 : {for (; 0 < _N; ++_S, --_N)
1212 0 : if (*_S == _C)
1213 0 : return (_CONST_RETURN wchar_t *)(_S);
1214 0 : return (0); }
1215 : __inline int __CRTDECL wmemcmp(_In_count_(_N) const wchar_t *_S1, _In_count_(_N) const wchar_t *_S2, _In_ size_t _N)
1216 0 : {for (; 0 < _N; ++_S1, ++_S2, --_N)
1217 0 : if (*_S1 != *_S2)
1218 0 : return (*_S1 < *_S2 ? -1 : +1);
1219 0 : return (0); }
1220 :
1221 : __inline _CRT_INSECURE_DEPRECATE_MEMORY(wmemcpy_s) wchar_t * __CRTDECL wmemcpy(_Out_opt_cap_(_N) wchar_t *_S1, _In_opt_count_(_N) const wchar_t *_S2, _In_ size_t _N)
1222 : {
1223 : #pragma warning( push )
1224 : #pragma warning( disable : 4996 6386 )
1225 : return (wchar_t *)memcpy(_S1, _S2, _N*sizeof(wchar_t));
1226 : #pragma warning( pop )
1227 : }
1228 :
1229 : #if __STDC_WANT_SECURE_LIB__
1230 : __inline errno_t __CRTDECL wmemcpy_s(_Out_opt_cap_post_count_(_N1, _N) wchar_t *_S1, _In_ rsize_t _N1, _In_opt_count_(_N) const wchar_t *_S2, rsize_t _N)
1231 0 : {
1232 : #pragma warning( push )
1233 : #pragma warning( disable : 6386 )
1234 0 : return memcpy_s(_S1, _N1*sizeof(wchar_t), _S2, _N*sizeof(wchar_t));
1235 0 : }
1236 : #pragma warning( pop )
1237 : #endif
1238 :
1239 : __inline _CRT_INSECURE_DEPRECATE_MEMORY(wmemmove_s) wchar_t * __CRTDECL wmemmove(_Out_opt_capcount_(_N) wchar_t *_S1, _In_opt_count_(_N) const wchar_t *_S2, _In_ size_t _N)
1240 : {
1241 : #pragma warning( push )
1242 : #pragma warning( disable : 4996 6386 )
1243 : #pragma warning( disable : 6387)
1244 : /* prefast noise VSW 493303 */
1245 : return (wchar_t *)memmove(_S1, _S2, _N*sizeof(wchar_t));
1246 : #pragma warning( pop )
1247 : }
1248 :
1249 : #if __STDC_WANT_SECURE_LIB__
1250 : __inline errno_t __CRTDECL wmemmove_s(_Out_opt_cap_post_count_(_N1, _N) wchar_t *_S1, _In_ rsize_t _N1, _In_opt_count_(_N) const wchar_t *_S2, _In_ rsize_t _N)
1251 0 : {
1252 : #pragma warning( push )
1253 : #pragma warning( disable : 6386 )
1254 0 : return memmove_s(_S1, _N1*sizeof(wchar_t), _S2, _N*sizeof(wchar_t));
1255 : #pragma warning( pop )
1256 0 : }
1257 : #endif
1258 :
1259 : __inline wchar_t * __CRTDECL wmemset(_Out_capcount_(_N) wchar_t *_S, _In_ wchar_t _C, _In_ size_t _N)
1260 0 : {
1261 0 : wchar_t *_Su = _S;
1262 0 : for (; 0 < _N; ++_Su, --_N)
1263 : {
1264 0 : *_Su = _C;
1265 0 : }
1266 0 : return (_S);
1267 0 : }
1268 :
1269 : #ifdef __cplusplus
1270 : extern "C++" {
1271 : inline wchar_t * __CRTDECL wmemchr(_In_count_(_N) wchar_t *_S, _In_ wchar_t _C, _In_ size_t _N)
1272 : { return (wchar_t *)wmemchr((const wchar_t *)_S, _C, _N); }
1273 : }
1274 : #endif
1275 : #endif
1276 :
1277 : #ifdef __cplusplus
1278 : } /* end of extern "C" */
1279 : #endif
1280 :
1281 : #ifdef _MSC_VER
1282 : #pragma pack(pop)
1283 : #endif /* _MSC_VER */
1284 :
1285 : #endif /* _INC_WCHAR */
1286 :
1287 :
|