• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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(_CRTBLD) || defined(__LIBMSVCRT__) */
19 
20 #ifdef __cplusplus
21 extern "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 
_vfwscanf_s_l(FILE * _File,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)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(UCRTBASE_SCANF_DEFAULT_WIDE | UCRTBASE_SCANF_SECURECRT, _File, _Format, _Locale, _ArgList);
54   }
_fwscanf_s_l(FILE * _File,const wchar_t * _Format,_locale_t _Locale,...)55   __mingw_ovr int __cdecl _fwscanf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
56   {
57     __builtin_va_list _ArgList;
58     int _Ret;
59     __builtin_va_start(_ArgList, _Locale);
60     _Ret = _vfwscanf_s_l(_File, _Format, _Locale, _ArgList);
61     __builtin_va_end(_ArgList);
62     return _Ret;
63   }
_wscanf_s_l(const wchar_t * _Format,_locale_t _Locale,...)64   __mingw_ovr int __cdecl _wscanf_s_l(const wchar_t *_Format, _locale_t _Locale, ...)
65   {
66     __builtin_va_list _ArgList;
67     int _Ret;
68     __builtin_va_start(_ArgList, _Locale);
69     _Ret = _vfwscanf_s_l(stdin, _Format, _Locale, _ArgList);
70     __builtin_va_end(_ArgList);
71     return _Ret;
72   }
73 
_vswscanf_s_l(const wchar_t * _Src,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)74   __mingw_ovr int __cdecl _vswscanf_s_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
75   {
76     return __stdio_common_vswscanf(UCRTBASE_SCANF_DEFAULT_WIDE | UCRTBASE_SCANF_SECURECRT, _Src, (size_t)-1, _Format, _Locale, _ArgList);
77   }
_swscanf_s_l(const wchar_t * _Src,const wchar_t * _Format,_locale_t _Locale,...)78   __mingw_ovr int __cdecl _swscanf_s_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, ...)
79   {
80     __builtin_va_list _ArgList;
81     int _Ret;
82     __builtin_va_start(_ArgList, _Locale);
83     _Ret = _vswscanf_s_l(_Src, _Format, _Locale, _ArgList);
84     __builtin_va_end(_ArgList);
85     return _Ret;
86   }
swscanf_s(const wchar_t * _Src,const wchar_t * _Format,...)87   __mingw_ovr int __cdecl swscanf_s(const wchar_t *_Src, const wchar_t *_Format, ...)
88   {
89     __builtin_va_list _ArgList;
90     int _Ret;
91     __builtin_va_start(_ArgList, _Format);
92     _Ret = _vswscanf_s_l(_Src, _Format, NULL, _ArgList);
93     __builtin_va_end(_ArgList);
94     return _Ret;
95   }
96 
_vsnwscanf_s_l(const wchar_t * _Src,size_t _MaxCount,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)97   __mingw_ovr int __cdecl _vsnwscanf_s_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
98   {
99     return __stdio_common_vswscanf(UCRTBASE_SCANF_DEFAULT_WIDE | UCRTBASE_SCANF_SECURECRT, _Src, _MaxCount, _Format, _Locale, _ArgList);
100   }
_snwscanf_s_l(const wchar_t * _Src,size_t _MaxCount,const wchar_t * _Format,_locale_t _Locale,...)101   __mingw_ovr int __cdecl _snwscanf_s_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
102   {
103     __builtin_va_list _ArgList;
104     int _Ret;
105     __builtin_va_start(_ArgList, _Locale);
106     _Ret = _vsnwscanf_s_l(_Src, _MaxCount, _Format, _Locale, _ArgList);
107     __builtin_va_end(_ArgList);
108     return _Ret;
109   }
_snwscanf_s(const wchar_t * _Src,size_t _MaxCount,const wchar_t * _Format,...)110   __mingw_ovr int __cdecl _snwscanf_s(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, ...)
111   {
112     __builtin_va_list _ArgList;
113     int _Ret;
114     __builtin_va_start(_ArgList, _Format);
115     _Ret = _vsnwscanf_s_l(_Src, _MaxCount, _Format, NULL, _ArgList);
116     __builtin_va_end(_ArgList);
117     return _Ret;
118   }
119 
_vfwprintf_s_l(FILE * _File,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)120   __mingw_ovr int __cdecl _vfwprintf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
121   {
122     return __stdio_common_vfwprintf_s(UCRTBASE_PRINTF_DEFAULT_WIDE, _File, _Format, _Locale, _ArgList);
123   }
_vwprintf_s_l(const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)124   __mingw_ovr int __cdecl _vwprintf_s_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
125   {
126     return _vfwprintf_s_l(stdout, _Format, _Locale, _ArgList);
127   }
vfwprintf_s(FILE * _File,const wchar_t * _Format,va_list _ArgList)128   __mingw_ovr int __cdecl vfwprintf_s(FILE *_File, const wchar_t *_Format, va_list _ArgList)
129   {
130     return _vfwprintf_s_l(_File, _Format, NULL, _ArgList);
131   }
vwprintf_s(const wchar_t * _Format,va_list _ArgList)132   __mingw_ovr int __cdecl vwprintf_s(const wchar_t *_Format, va_list _ArgList)
133   {
134     return _vfwprintf_s_l(stdout, _Format, NULL, _ArgList);
135   }
_fwprintf_s_l(FILE * _File,const wchar_t * _Format,_locale_t _Locale,...)136   __mingw_ovr int __cdecl _fwprintf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
137   {
138     __builtin_va_list _ArgList;
139     int _Ret;
140     __builtin_va_start(_ArgList, _Locale);
141     _Ret = _vfwprintf_s_l(_File, _Format, _Locale, _ArgList);
142     __builtin_va_end(_ArgList);
143     return _Ret;
144   }
_wprintf_s_l(const wchar_t * _Format,_locale_t _Locale,...)145   __mingw_ovr int __cdecl _wprintf_s_l(const wchar_t *_Format, _locale_t _Locale, ...)
146   {
147     __builtin_va_list _ArgList;
148     int _Ret;
149     __builtin_va_start(_ArgList, _Locale);
150     _Ret = _vfwprintf_s_l(stdout, _Format, _Locale, _ArgList);
151     __builtin_va_end(_ArgList);
152     return _Ret;
153   }
fwprintf_s(FILE * _File,const wchar_t * _Format,...)154   __mingw_ovr int __cdecl fwprintf_s(FILE *_File, const wchar_t *_Format, ...)
155   {
156     __builtin_va_list _ArgList;
157     int _Ret;
158     __builtin_va_start(_ArgList, _Format);
159     _Ret = _vfwprintf_s_l(_File, _Format, NULL, _ArgList);
160     __builtin_va_end(_ArgList);
161     return _Ret;
162   }
wprintf_s(const wchar_t * _Format,...)163   __mingw_ovr int __cdecl wprintf_s(const wchar_t *_Format, ...)
164   {
165     __builtin_va_list _ArgList;
166     int _Ret;
167     __builtin_va_start(_ArgList, _Format);
168     _Ret = _vfwprintf_s_l(stdout, _Format, NULL, _ArgList);
169     __builtin_va_end(_ArgList);
170     return _Ret;
171   }
172 
_vswprintf_s_l(wchar_t * _DstBuf,size_t _DstSize,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)173   __mingw_ovr int __cdecl _vswprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
174   {
175     return __stdio_common_vswprintf_s(UCRTBASE_PRINTF_DEFAULT_WIDE, _DstBuf, _DstSize, _Format, _Locale, _ArgList);
176   }
vswprintf_s(wchar_t * _DstBuf,size_t _DstSize,const wchar_t * _Format,va_list _ArgList)177   __mingw_ovr int __cdecl vswprintf_s(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, va_list _ArgList)
178   {
179     return _vswprintf_s_l(_DstBuf, _DstSize, _Format, NULL, _ArgList);
180   }
_swprintf_s_l(wchar_t * _DstBuf,size_t _DstSize,const wchar_t * _Format,_locale_t _Locale,...)181   __mingw_ovr int __cdecl _swprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, _locale_t _Locale, ...)
182   {
183     __builtin_va_list _ArgList;
184     int _Ret;
185     __builtin_va_start(_ArgList, _Locale);
186     _Ret = _vswprintf_s_l(_DstBuf, _DstSize, _Format, _Locale, _ArgList);
187     __builtin_va_end(_ArgList);
188     return _Ret;
189   }
swprintf_s(wchar_t * _DstBuf,size_t _DstSize,const wchar_t * _Format,...)190   __mingw_ovr int __cdecl swprintf_s(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, ...)
191   {
192     __builtin_va_list _ArgList;
193     int _Ret;
194     __builtin_va_start(_ArgList, _Format);
195     _Ret = _vswprintf_s_l(_DstBuf, _DstSize, _Format, NULL, _ArgList);
196     __builtin_va_end(_ArgList);
197     return _Ret;
198   }
199 
_vsnwprintf_s_l(wchar_t * _DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)200   __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)
201   {
202     return __stdio_common_vsnwprintf_s(UCRTBASE_PRINTF_DEFAULT_WIDE, _DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList);
203   }
_vsnwprintf_s(wchar_t * _DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t * _Format,va_list _ArgList)204   __mingw_ovr int __cdecl _vsnwprintf_s(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, va_list _ArgList)
205   {
206     return _vsnwprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, NULL, _ArgList);
207   }
_snwprintf_s_l(wchar_t * _DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t * _Format,_locale_t _Locale,...)208   __mingw_ovr int __cdecl _snwprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
209   {
210     __builtin_va_list _ArgList;
211     int _Ret;
212     __builtin_va_start(_ArgList, _Locale);
213     _Ret = _vsnwprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList);
214     __builtin_va_end(_ArgList);
215     return _Ret;
216   }
_snwprintf_s(wchar_t * _DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t * _Format,...)217   __mingw_ovr int __cdecl _snwprintf_s(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, ...)
218   {
219     __builtin_va_list _ArgList;
220     int _Ret;
221     __builtin_va_start(_ArgList, _Format);
222     _Ret = _vsnwprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, NULL, _ArgList);
223     __builtin_va_end(_ArgList);
224     return _Ret;
225   }
226 #else /* _UCRT */
227   int __cdecl fwprintf_s(FILE *_File,const wchar_t *_Format,...);
228   int __cdecl wprintf_s(const wchar_t *_Format,...);
229   int __cdecl vfwprintf_s(FILE *_File,const wchar_t *_Format,va_list _ArgList);
230   int __cdecl vwprintf_s(const wchar_t *_Format,va_list _ArgList);
231 
232   int __cdecl vswprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,va_list _ArgList);
233 
234   int __cdecl swprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,...);
235 
236   _CRTIMP int __cdecl _vsnwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,va_list _ArgList);
237 
238   _CRTIMP int __cdecl _snwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,...);
239 
240 
241   _CRTIMP int __cdecl _wprintf_s_l(const wchar_t *_Format,_locale_t _Locale,...);
242   _CRTIMP int __cdecl _vwprintf_s_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
243   _CRTIMP int __cdecl _fwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
244   _CRTIMP int __cdecl _vfwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
245   _CRTIMP int __cdecl _swprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,...);
246   _CRTIMP int __cdecl _vswprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
247   _CRTIMP int __cdecl _snwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
248   _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);
249   _CRTIMP int __cdecl _fwscanf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
250   _CRTIMP int __cdecl _swscanf_s_l(const wchar_t *_Src,const wchar_t *_Format,_locale_t _Locale,...);
251   _CRTIMP int __cdecl swscanf_s(const wchar_t *_Src,const wchar_t *_Format,...);
252   _CRTIMP int __cdecl _snwscanf_s(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,...);
253   _CRTIMP int __cdecl _snwscanf_s_l(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
254   _CRTIMP int __cdecl _wscanf_s_l(const wchar_t *_Format,_locale_t _Locale,...);
255 #endif /* !_UCRT */
256 
257   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(int, vswprintf_s, wchar_t, _Dst, const wchar_t*, _Format, va_list, _ArgList)
258   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(int,swprintf_s,vswprintf_s,wchar_t,_Dst,const wchar_t*,_Format)
259   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(int,_vsnwprintf_s,wchar_t,_DstBuf,size_t,_MaxCount,const wchar_t*,_Format,va_list,_ArgList)
260   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(int,_snwprintf_s,_vsnwprintf_s,wchar_t,_DstBuf,size_t,_MaxCount,const wchar_t*,_Format)
261 
262   _CRTIMP errno_t __cdecl _wfopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode);
263   _CRTIMP errno_t __cdecl _wfreopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode,FILE *_OldFile);
264 
265   _CRTIMP errno_t __cdecl _wtmpnam_s(wchar_t *_DstBuf,size_t _SizeInWords);
266   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t,_wtmpnam_s,wchar_t,_DstBuf)
267 #endif /* _WSTDIO_S_DEFINED */
268 
269 #ifndef _WSTRING_S_DEFINED
270 #define _WSTRING_S_DEFINED
271   _CRTIMP wchar_t *__cdecl wcstok_s(wchar_t *_Str,const wchar_t *_Delim,wchar_t **_Context);
272   _CRTIMP errno_t __cdecl _wcserror_s(wchar_t *_Buf,size_t _SizeInWords,int _ErrNum);
273   _CRTIMP errno_t __cdecl __wcserror_s(wchar_t *_Buffer,size_t _SizeInWords,const wchar_t *_ErrMsg);
274   _CRTIMP errno_t __cdecl _wcsnset_s(wchar_t *_Dst,size_t _DstSizeInWords,wchar_t _Val,size_t _MaxCount);
275   _CRTIMP errno_t __cdecl _wcsset_s(wchar_t *_Str,size_t _SizeInWords,wchar_t _Val);
276   _CRTIMP errno_t __cdecl _wcslwr_s(wchar_t *_Str,size_t _SizeInWords);
277   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wcslwr_s, wchar_t, _Str)
278   _CRTIMP errno_t __cdecl _wcslwr_s_l(wchar_t *_Str,size_t _SizeInWords,_locale_t _Locale);
279   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcslwr_s_l, wchar_t, _Str, _locale_t, _Locale)
280   _CRTIMP errno_t __cdecl _wcsupr_s(wchar_t *_Str,size_t _Size);
281   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wcsupr_s, wchar_t, _Str)
282   _CRTIMP errno_t __cdecl _wcsupr_s_l(wchar_t *_Str,size_t _Size,_locale_t _Locale);
283   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcsupr_s_l, wchar_t, _Str, _locale_t, _Locale)
284 
285   _CRTIMP errno_t __cdecl wcscat_s(wchar_t *_Dst, rsize_t _DstSize, const wchar_t *_Src);
286   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, wcscat_s, wchar_t, _Dest, const wchar_t *, _Source)
287   _CRTIMP errno_t __cdecl wcscpy_s(wchar_t *_Dst, rsize_t _DstSize, const wchar_t *_Src);
288   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, wcscpy_s, wchar_t, _Dest, const wchar_t *, _Source)
289 
290   _CRTIMP errno_t __cdecl wcsncat_s(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount);
291   _CRTIMP errno_t __cdecl _wcsncat_s_l(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount,_locale_t _Locale);
292   _CRTIMP errno_t __cdecl wcsncpy_s(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount);
293   _CRTIMP errno_t __cdecl _wcsncpy_s_l(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount,_locale_t _Locale);
294   _CRTIMP wchar_t *__cdecl _wcstok_s_l(wchar_t *_Str,const wchar_t *_Delim,wchar_t **_Context,_locale_t _Locale);
295   _CRTIMP errno_t __cdecl _wcsset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val,_locale_t _Locale);
296   _CRTIMP errno_t __cdecl _wcsnset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val, size_t _Count,_locale_t _Locale);
297 
wcsnlen_s(const wchar_t * _src,size_t _count)298   __forceinline size_t __cdecl wcsnlen_s(const wchar_t * _src, size_t _count) {
299     return _src ? wcsnlen(_src, _count) : 0;
300   }
301 #endif
302 
303 #ifndef _WTIME_S_DEFINED
304 #define _WTIME_S_DEFINED
305   _SECIMP errno_t __cdecl _wasctime_s (wchar_t *_Buf,size_t _SizeInWords,const struct tm *_Tm);
306   _SECIMP errno_t __cdecl _wctime32_s (wchar_t *_Buf,size_t _SizeInWords,const __time32_t *_Time);
307   _SECIMP errno_t __cdecl _wstrdate_s (wchar_t *_Buf,size_t _SizeInWords);
308   _SECIMP errno_t __cdecl _wstrtime_s (wchar_t *_Buf,size_t _SizeInWords);
309   _SECIMP errno_t __cdecl _wctime64_s (wchar_t *_Buf,size_t _SizeInWords,const __time64_t *_Time);
310 
311 #if !defined (RC_INVOKED) && !defined (_INC_WTIME_S_INL)
312 #define _INC_WTIME_S_INL
313   errno_t __cdecl _wctime_s(wchar_t *, size_t, const time_t *);
314 #ifndef _USE_32BIT_TIME_T
_wctime_s(wchar_t * _Buffer,size_t _SizeInWords,const time_t * _Time)315 __CRT_INLINE errno_t __cdecl _wctime_s(wchar_t *_Buffer,size_t _SizeInWords,const time_t *_Time) { return _wctime64_s(_Buffer,_SizeInWords,_Time); }
316 #endif
317 #endif
318 #endif
319 
320   _CRTIMP errno_t __cdecl mbsrtowcs_s(size_t *_Retval,wchar_t *_Dst,size_t _SizeInWords,const char **_PSrc,size_t _N,mbstate_t *_State);
321   __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)
322 
323   _CRTIMP errno_t __cdecl wcrtomb_s(size_t *_Retval,char *_Dst,size_t _SizeInBytes,wchar_t _Ch,mbstate_t *_State);
324   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(errno_t,wcrtomb_s,size_t*,_Retval,char,_Dst,wchar_t,_Ch,mbstate_t,_State)
325 
326   _CRTIMP errno_t __cdecl wcsrtombs_s(size_t *_Retval,char *_Dst,size_t _SizeInBytes,const wchar_t **_Src,size_t _Size,mbstate_t *_State);
327   __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)
328 
329   _SECIMP errno_t __cdecl wmemcpy_s (wchar_t *_dest,size_t _numberOfElements,const wchar_t *_src,size_t _count);
330   _SECIMP errno_t __cdecl wmemmove_s(wchar_t *_dest,size_t _numberOfElements,const wchar_t *_src,size_t _count);
331 
332 
333 #ifdef __cplusplus
334 }
335 #endif
336 
337 #endif
338