master
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _INC_WCHAR_S
7#define _INC_WCHAR_S
8
9#include <wchar.h>
10
11#if defined(__LIBMSVCRT__)
12/* When building mingw-w64, this should be blank. */
13#define _SECIMP
14#else
15#ifndef _SECIMP
16#define _SECIMP __declspec(dllimport)
17#endif /* _SECIMP */
18#endif /* defined(__LIBMSVCRT__) */
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#ifndef _WIO_S_DEFINED
25#define _WIO_S_DEFINED
26 _SECIMP errno_t __cdecl _waccess_s (const wchar_t *_Filename,int _AccessMode);
27 _SECIMP errno_t __cdecl _wmktemp_s (wchar_t *_TemplateName,size_t _SizeInWords);
28#endif
29
30#ifndef _WCONIO_S_DEFINED
31#define _WCONIO_S_DEFINED
32 _SECIMP errno_t __cdecl _cgetws_s (wchar_t *_Buffer,size_t _SizeInWords,size_t *_SizeRead);
33 _SECIMP int __cdecl _cwprintf_s (const wchar_t *_Format,...);
34 _CRTIMP int __cdecl _cwscanf_s(const wchar_t *_Format,...);
35 _CRTIMP int __cdecl _cwscanf_s_l(const wchar_t *_Format,_locale_t _Locale,...);
36 _SECIMP int __cdecl _vcwprintf_s (const wchar_t *_Format,va_list _ArgList);
37 _SECIMP int __cdecl _cwprintf_s_l (const wchar_t *_Format,_locale_t _Locale,...);
38 _SECIMP int __cdecl _vcwprintf_s_l (const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
39#endif
40
41#ifndef _WSTDIO_S_DEFINED
42#define _WSTDIO_S_DEFINED
43 _CRTIMP wchar_t *__cdecl _getws_s(wchar_t *_Str,size_t _SizeInWords);
44 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(wchar_t*,_getws_s,wchar_t,_DstBuf)
45
46#ifdef _UCRT
47 int __cdecl __stdio_common_vswprintf_s(unsigned __int64 _Options, wchar_t *_Str, size_t _Len, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
48 int __cdecl __stdio_common_vsnwprintf_s(unsigned __int64 _Options, wchar_t *_Str, size_t _Len, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
49 int __cdecl __stdio_common_vfwprintf_s(unsigned __int64 _Options, FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
50
51 __mingw_ovr int __cdecl _vfwscanf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
52 {
53 return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, _File, _Format, _Locale, _ArgList);
54 }
55
56 __mingw_ovr int __cdecl vfwscanf_s(FILE* _File, const wchar_t *_Format, va_list _ArgList)
57 {
58 return _vfwscanf_s_l(_File, _Format, NULL, _ArgList);
59 }
60
61 __mingw_ovr int __cdecl _vwscanf_s_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
62 {
63 return _vfwscanf_s_l(stdin, _Format, _Locale, _ArgList);
64 }
65
66 __mingw_ovr int __cdecl vwscanf_s(const wchar_t *_Format, va_list _ArgList)
67 {
68 return _vfwscanf_s_l(stdin, _Format, NULL, _ArgList);
69 }
70
71 __mingw_ovr int __cdecl _fwscanf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
72 {
73 __builtin_va_list _ArgList;
74 int _Ret;
75 __builtin_va_start(_ArgList, _Locale);
76 _Ret = _vfwscanf_s_l(_File, _Format, _Locale, _ArgList);
77 __builtin_va_end(_ArgList);
78 return _Ret;
79 }
80
81 __mingw_ovr int __cdecl fwscanf_s(FILE *_File, const wchar_t *_Format, ...)
82 {
83 __builtin_va_list _ArgList;
84 int _Ret;
85 __builtin_va_start(_ArgList, _Format);
86 _Ret = _vfwscanf_s_l(_File, _Format, NULL, _ArgList);
87 __builtin_va_end(_ArgList);
88 return _Ret;
89 }
90
91 __mingw_ovr int __cdecl _wscanf_s_l(const wchar_t *_Format, _locale_t _Locale, ...)
92 {
93 __builtin_va_list _ArgList;
94 int _Ret;
95 __builtin_va_start(_ArgList, _Locale);
96 _Ret = _vfwscanf_s_l(stdin, _Format, _Locale, _ArgList);
97 __builtin_va_end(_ArgList);
98 return _Ret;
99 }
100
101 __mingw_ovr int __cdecl wscanf_s(const wchar_t *_Format, ...)
102 {
103 __builtin_va_list _ArgList;
104 int _Ret;
105 __builtin_va_start(_ArgList, _Format);
106 _Ret = _vfwscanf_s_l(stdin, _Format, NULL, _ArgList);
107 __builtin_va_end(_ArgList);
108 return _Ret;
109 }
110
111 __mingw_ovr int __cdecl _vswscanf_s_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
112 {
113 return __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, _Src, (size_t)-1, _Format, _Locale, _ArgList);
114 }
115
116 __mingw_ovr int __cdecl vswscanf_s(const wchar_t *_Src, const wchar_t *_Format, va_list _ArgList)
117 {
118 return _vswscanf_s_l(_Src, _Format, NULL, _ArgList);
119 }
120
121 __mingw_ovr int __cdecl _swscanf_s_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, ...)
122 {
123 __builtin_va_list _ArgList;
124 int _Ret;
125 __builtin_va_start(_ArgList, _Locale);
126 _Ret = _vswscanf_s_l(_Src, _Format, _Locale, _ArgList);
127 __builtin_va_end(_ArgList);
128 return _Ret;
129 }
130 __mingw_ovr int __cdecl swscanf_s(const wchar_t *_Src, const wchar_t *_Format, ...)
131 {
132 __builtin_va_list _ArgList;
133 int _Ret;
134 __builtin_va_start(_ArgList, _Format);
135 _Ret = _vswscanf_s_l(_Src, _Format, NULL, _ArgList);
136 __builtin_va_end(_ArgList);
137 return _Ret;
138 }
139
140 __mingw_ovr int __cdecl _vsnwscanf_s_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
141 {
142 return __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, _Src, _MaxCount, _Format, _Locale, _ArgList);
143 }
144 __mingw_ovr int __cdecl _snwscanf_s_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
145 {
146 __builtin_va_list _ArgList;
147 int _Ret;
148 __builtin_va_start(_ArgList, _Locale);
149 _Ret = _vsnwscanf_s_l(_Src, _MaxCount, _Format, _Locale, _ArgList);
150 __builtin_va_end(_ArgList);
151 return _Ret;
152 }
153 __mingw_ovr int __cdecl _snwscanf_s(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, ...)
154 {
155 __builtin_va_list _ArgList;
156 int _Ret;
157 __builtin_va_start(_ArgList, _Format);
158 _Ret = _vsnwscanf_s_l(_Src, _MaxCount, _Format, NULL, _ArgList);
159 __builtin_va_end(_ArgList);
160 return _Ret;
161 }
162
163 __mingw_ovr int __cdecl _vfwprintf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
164 {
165 return __stdio_common_vfwprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList);
166 }
167 __mingw_ovr int __cdecl _vwprintf_s_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
168 {
169 return _vfwprintf_s_l(stdout, _Format, _Locale, _ArgList);
170 }
171 __mingw_ovr int __cdecl vfwprintf_s(FILE *_File, const wchar_t *_Format, va_list _ArgList)
172 {
173 return _vfwprintf_s_l(_File, _Format, NULL, _ArgList);
174 }
175 __mingw_ovr int __cdecl vwprintf_s(const wchar_t *_Format, va_list _ArgList)
176 {
177 return _vfwprintf_s_l(stdout, _Format, NULL, _ArgList);
178 }
179 __mingw_ovr int __cdecl _fwprintf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
180 {
181 __builtin_va_list _ArgList;
182 int _Ret;
183 __builtin_va_start(_ArgList, _Locale);
184 _Ret = _vfwprintf_s_l(_File, _Format, _Locale, _ArgList);
185 __builtin_va_end(_ArgList);
186 return _Ret;
187 }
188 __mingw_ovr int __cdecl _wprintf_s_l(const wchar_t *_Format, _locale_t _Locale, ...)
189 {
190 __builtin_va_list _ArgList;
191 int _Ret;
192 __builtin_va_start(_ArgList, _Locale);
193 _Ret = _vfwprintf_s_l(stdout, _Format, _Locale, _ArgList);
194 __builtin_va_end(_ArgList);
195 return _Ret;
196 }
197 __mingw_ovr int __cdecl fwprintf_s(FILE *_File, const wchar_t *_Format, ...)
198 {
199 __builtin_va_list _ArgList;
200 int _Ret;
201 __builtin_va_start(_ArgList, _Format);
202 _Ret = _vfwprintf_s_l(_File, _Format, NULL, _ArgList);
203 __builtin_va_end(_ArgList);
204 return _Ret;
205 }
206 __mingw_ovr int __cdecl wprintf_s(const wchar_t *_Format, ...)
207 {
208 __builtin_va_list _ArgList;
209 int _Ret;
210 __builtin_va_start(_ArgList, _Format);
211 _Ret = _vfwprintf_s_l(stdout, _Format, NULL, _ArgList);
212 __builtin_va_end(_ArgList);
213 return _Ret;
214 }
215
216 __mingw_ovr int __cdecl _vswprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
217 {
218 return __stdio_common_vswprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _DstSize, _Format, _Locale, _ArgList);
219 }
220 __mingw_ovr int __cdecl vswprintf_s(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, va_list _ArgList)
221 {
222 return _vswprintf_s_l(_DstBuf, _DstSize, _Format, NULL, _ArgList);
223 }
224 __mingw_ovr int __cdecl _swprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, _locale_t _Locale, ...)
225 {
226 __builtin_va_list _ArgList;
227 int _Ret;
228 __builtin_va_start(_ArgList, _Locale);
229 _Ret = _vswprintf_s_l(_DstBuf, _DstSize, _Format, _Locale, _ArgList);
230 __builtin_va_end(_ArgList);
231 return _Ret;
232 }
233 __mingw_ovr int __cdecl swprintf_s(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, ...)
234 {
235 __builtin_va_list _ArgList;
236 int _Ret;
237 __builtin_va_start(_ArgList, _Format);
238 _Ret = _vswprintf_s_l(_DstBuf, _DstSize, _Format, NULL, _ArgList);
239 __builtin_va_end(_ArgList);
240 return _Ret;
241 }
242
243 __mingw_ovr int __cdecl _vsnwprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
244 {
245 return __stdio_common_vsnwprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList);
246 }
247 __mingw_ovr int __cdecl _vsnwprintf_s(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, va_list _ArgList)
248 {
249 return _vsnwprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, NULL, _ArgList);
250 }
251 __mingw_ovr int __cdecl _snwprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
252 {
253 __builtin_va_list _ArgList;
254 int _Ret;
255 __builtin_va_start(_ArgList, _Locale);
256 _Ret = _vsnwprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList);
257 __builtin_va_end(_ArgList);
258 return _Ret;
259 }
260 __mingw_ovr int __cdecl _snwprintf_s(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, ...)
261 {
262 __builtin_va_list _ArgList;
263 int _Ret;
264 __builtin_va_start(_ArgList, _Format);
265 _Ret = _vsnwprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, NULL, _ArgList);
266 __builtin_va_end(_ArgList);
267 return _Ret;
268 }
269#else /* _UCRT */
270 int __cdecl fwprintf_s(FILE *_File,const wchar_t *_Format,...);
271 int __cdecl wprintf_s(const wchar_t *_Format,...);
272 int __cdecl vfwprintf_s(FILE *_File,const wchar_t *_Format,va_list _ArgList);
273 int __cdecl vwprintf_s(const wchar_t *_Format,va_list _ArgList);
274
275 int __cdecl vswprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,va_list _ArgList);
276
277 int __cdecl swprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,...);
278
279 _CRTIMP int __cdecl _vsnwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,va_list _ArgList);
280
281 _CRTIMP int __cdecl _snwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,...);
282
283
284 _CRTIMP int __cdecl _wprintf_s_l(const wchar_t *_Format,_locale_t _Locale,...);
285 _CRTIMP int __cdecl _vwprintf_s_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
286 _CRTIMP int __cdecl _fwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
287 _CRTIMP int __cdecl _vfwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
288 _CRTIMP int __cdecl _swprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,...);
289 _CRTIMP int __cdecl _vswprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
290 _CRTIMP int __cdecl _snwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
291 _CRTIMP int __cdecl _vsnwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
292 _CRTIMP int __cdecl _fwscanf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
293 _CRTIMP int __cdecl fwscanf_s(FILE *_File, const wchar_t *_Format, ...);
294 _CRTIMP int __cdecl _swscanf_s_l(const wchar_t *_Src,const wchar_t *_Format,_locale_t _Locale,...);
295 _CRTIMP int __cdecl swscanf_s(const wchar_t *_Src,const wchar_t *_Format,...);
296 _CRTIMP int __cdecl _snwscanf_s(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,...);
297 _CRTIMP int __cdecl _snwscanf_s_l(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
298 _CRTIMP int __cdecl _wscanf_s_l(const wchar_t *_Format,_locale_t _Locale,...);
299 _CRTIMP int __cdecl wscanf_s(const wchar_t *_Format, ...);
300#endif /* !_UCRT */
301
302 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(int, vswprintf_s, wchar_t, _Dst, const wchar_t*, _Format, va_list, _ArgList)
303 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(int,swprintf_s,vswprintf_s,wchar_t,_Dst,const wchar_t*,_Format)
304 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(int,_vsnwprintf_s,wchar_t,_DstBuf,size_t,_MaxCount,const wchar_t*,_Format,va_list,_ArgList)
305 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(int,_snwprintf_s,_vsnwprintf_s,wchar_t,_DstBuf,size_t,_MaxCount,const wchar_t*,_Format)
306
307 _CRTIMP errno_t __cdecl _wfopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode);
308 _CRTIMP errno_t __cdecl _wfreopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode,FILE *_OldFile);
309
310 _CRTIMP errno_t __cdecl _wtmpnam_s(wchar_t *_DstBuf,size_t _SizeInWords);
311 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t,_wtmpnam_s,wchar_t,_DstBuf)
312#endif /* _WSTDIO_S_DEFINED */
313
314#ifndef _WSTRING_S_DEFINED
315#define _WSTRING_S_DEFINED
316 _CRTIMP wchar_t *__cdecl wcstok_s(wchar_t *_Str,const wchar_t *_Delim,wchar_t **_Context);
317 _CRTIMP errno_t __cdecl _wcserror_s(wchar_t *_Buf,size_t _SizeInWords,int _ErrNum);
318 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcserror_s, wchar_t, _Buf, int, _ErrNum)
319 _CRTIMP errno_t __cdecl __wcserror_s(wchar_t *_Buffer,size_t _SizeInWords,const wchar_t *_ErrMsg);
320 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, __wcserror_s, wchar_t, _Buffer, const wchar_t *, _ErrMsg)
321 _CRTIMP errno_t __cdecl _wcsnset_s(wchar_t *_Dst,size_t _DstSizeInWords,wchar_t _Val,size_t _MaxCount);
322 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _wcsnset_s, wchar_t, _Dst, wchar_t, _Val, size_t, _MaxCount)
323 _CRTIMP errno_t __cdecl _wcsset_s(wchar_t *_Str,size_t _SizeInWords,wchar_t _Val);
324 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcsset_s, wchar_t, _Str, wchar_t, _Val)
325 _CRTIMP errno_t __cdecl _wcslwr_s(wchar_t *_Str,size_t _SizeInWords);
326 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wcslwr_s, wchar_t, _Str)
327 _CRTIMP errno_t __cdecl _wcslwr_s_l(wchar_t *_Str,size_t _SizeInWords,_locale_t _Locale);
328 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcslwr_s_l, wchar_t, _Str, _locale_t, _Locale)
329 _CRTIMP errno_t __cdecl _wcsupr_s(wchar_t *_Str,size_t _Size);
330 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wcsupr_s, wchar_t, _Str)
331 _CRTIMP errno_t __cdecl _wcsupr_s_l(wchar_t *_Str,size_t _Size,_locale_t _Locale);
332 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcsupr_s_l, wchar_t, _Str, _locale_t, _Locale)
333
334 _CRTIMP errno_t __cdecl wcscat_s(wchar_t *_Dst, rsize_t _DstSize, const wchar_t *_Src);
335 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, wcscat_s, wchar_t, _Dest, const wchar_t *, _Source)
336 _CRTIMP errno_t __cdecl wcscpy_s(wchar_t *_Dst, rsize_t _DstSize, const wchar_t *_Src);
337 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, wcscpy_s, wchar_t, _Dest, const wchar_t *, _Source)
338
339 _CRTIMP errno_t __cdecl wcsncat_s(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount);
340 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, wcsncat_s, wchar_t, _Dst, const wchar_t *, _Src, size_t, _MaxCount)
341 _CRTIMP errno_t __cdecl _wcsncat_s_l(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount,_locale_t _Locale);
342 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _wcsncat_s_l, wchar_t, _Dst, const wchar_t *, _Src, size_t, _MaxCount, _locale_t, _Locale)
343 _CRTIMP errno_t __cdecl wcsncpy_s(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount);
344 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, wcsncpy_s, wchar_t, _Dst, const wchar_t *, _Src, size_t, _MaxCount)
345 _CRTIMP errno_t __cdecl _wcsncpy_s_l(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount,_locale_t _Locale);
346 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _wcsncpy_s_l, wchar_t, _Dst, const wchar_t *, _Src, size_t, _MaxCount, _locale_t, _Locale)
347 _CRTIMP wchar_t *__cdecl _wcstok_s_l(wchar_t *_Str,const wchar_t *_Delim,wchar_t **_Context,_locale_t _Locale);
348 _CRTIMP errno_t __cdecl _wcsset_s_l(wchar_t *_Str,size_t _SizeInChars,wchar_t _Val,_locale_t _Locale);
349 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _wcsset_s_l, wchar_t, _Str, wchar_t, _Val, _locale_t, _Locale)
350 _CRTIMP errno_t __cdecl _wcsnset_s_l(wchar_t *_Str,size_t _SizeInChars,wchar_t _Val, size_t _Count,_locale_t _Locale);
351 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _wcsnset_s_l, wchar_t, _Str, wchar_t, _Val, size_t, _Count, _locale_t, _Locale)
352
353 __forceinline size_t __cdecl wcsnlen_s(const wchar_t * _src, size_t _count) {
354 return _src ? wcsnlen(_src, _count) : 0;
355 }
356#endif
357
358#ifndef _WTIME_S_DEFINED
359#define _WTIME_S_DEFINED
360 _SECIMP errno_t __cdecl _wasctime_s (wchar_t *_Buf,size_t _SizeInWords,const struct tm *_Tm);
361 _SECIMP errno_t __cdecl _wctime32_s (wchar_t *_Buf,size_t _SizeInWords,const __time32_t *_Time);
362 _SECIMP errno_t __cdecl _wstrdate_s (wchar_t *_Buf,size_t _SizeInWords);
363 _SECIMP errno_t __cdecl _wstrtime_s (wchar_t *_Buf,size_t _SizeInWords);
364 _SECIMP errno_t __cdecl _wctime64_s (wchar_t *_Buf,size_t _SizeInWords,const __time64_t *_Time);
365
366#if !defined (RC_INVOKED) && !defined (_INC_WTIME_S_INL)
367#define _INC_WTIME_S_INL
368 errno_t __cdecl _wctime_s(wchar_t *, size_t, const time_t *);
369#ifndef _USE_32BIT_TIME_T
370__CRT_INLINE errno_t __cdecl _wctime_s(wchar_t *_Buffer,size_t _SizeInWords,const time_t *_Time) { return _wctime64_s(_Buffer,_SizeInWords,_Time); }
371#endif
372#endif
373#endif
374
375 _CRTIMP errno_t __cdecl mbsrtowcs_s(size_t *_Retval,wchar_t *_Dst,size_t _SizeInWords,const char **_PSrc,size_t _N,mbstate_t *_State);
376 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(errno_t,mbsrtowcs_s,size_t*,_Retval,wchar_t,_Dst,const char**,_PSrc,size_t,_N,mbstate_t,_State)
377
378 _CRTIMP errno_t __cdecl wcrtomb_s(size_t *_Retval,char *_Dst,size_t _SizeInBytes,wchar_t _Ch,mbstate_t *_State);
379 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(errno_t,wcrtomb_s,size_t*,_Retval,char,_Dst,wchar_t,_Ch,mbstate_t,_State)
380
381 _CRTIMP errno_t __cdecl wcsrtombs_s(size_t *_Retval,char *_Dst,size_t _SizeInBytes,const wchar_t **_Src,size_t _Size,mbstate_t *_State);
382 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(errno_t,wcsrtombs_s,size_t,_Retval,char,_Dst,const wchar_t**,_Src,size_t,_Size,mbstate_t,_State)
383
384 _SECIMP errno_t __cdecl wmemcpy_s (wchar_t *_dest,size_t _numberOfElements,const wchar_t *_src,size_t _count);
385 _SECIMP errno_t __cdecl wmemmove_s(wchar_t *_dest,size_t _numberOfElements,const wchar_t *_src,size_t _count);
386
387
388#ifdef __cplusplus
389}
390#endif
391
392#endif