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;
Lines 528 ... 537 are skipped.
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              {for (; 0 < _N; ++_S, --_N)
1212                           if (*_S == _C)
1213                                         return (_CONST_RETURN wchar_t *)(_S);
1214              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              {for (; 0 < _N; ++_S1, ++_S2, --_N)
1217                           if (*_S1 != *_S2)
1218                                         return (*_S1 < *_S2 ? -1 : +1);
1219              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              {
1232 #pragma warning( push )
1233 #pragma warning( disable : 6386 )
1234                     return memcpy_s(_S1, _N1*sizeof(wchar_t), _S2, _N*sizeof(wchar_t));
1235              }
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              {
1252 #pragma warning( push )
1253 #pragma warning( disable : 6386 )
1254                     return memmove_s(_S1, _N1*sizeof(wchar_t), _S2, _N*sizeof(wchar_t));
1255 #pragma warning( pop )
1256              }
1257 #endif
1258
1259 __inline wchar_t * __CRTDECL wmemset(_Out_capcount_(_N) wchar_t *_S, _In_ wchar_t _C, _In_ size_t _N)
1260              {
1261                     wchar_t *_Su = _S;
1262                     for (; 0 < _N; ++_Su, --_N)
1263                     {
1264                           *_Su = _C;
1265                     }
1266                     return (_S);
1267              }
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
1288