zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

wchar_s.h (19059B) - Raw


      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
     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 
     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