diff --git a/reactos/include/crt/sec_api/wchar_s.h b/reactos/include/crt/sec_api/wchar_s.h index 5ce967b7cab..9788be57359 100644 --- a/reactos/include/crt/sec_api/wchar_s.h +++ b/reactos/include/crt/sec_api/wchar_s.h @@ -3,6 +3,7 @@ * This file is part of the w64 mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER within this package. */ + #ifndef _INC_WCHAR_S #define _INC_WCHAR_S @@ -16,100 +17,648 @@ extern "C" { #ifndef _WIO_S_DEFINED #define _WIO_S_DEFINED - _CRTIMP errno_t __cdecl _waccess_s(const wchar_t *_Filename,int _AccessMode); - _CRTIMP errno_t __cdecl _wmktemp_s(wchar_t *_TemplateName,size_t _SizeInWords); -#endif + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _waccess_s( + _In_z_ const wchar_t *_Filename, + _In_ int _AccessMode); + + _CRTIMP + errno_t + __cdecl + _wmktemp_s( + _Inout_updates_z_(_SizeInWords) wchar_t *_TemplateName, + _In_ size_t _SizeInWords); + +#endif /* _WIO_S_DEFINED */ #ifndef _WCONIO_S_DEFINED #define _WCONIO_S_DEFINED - _CRTIMP errno_t __cdecl _cgetws_s(wchar_t *_Buffer,size_t _SizeInWords,size_t *_SizeRead); - _CRTIMP int __cdecl _cwprintf_s(const wchar_t *_Format,...); - _CRTIMP int __cdecl _cwscanf_s(const wchar_t *_Format,...); - _CRTIMP int __cdecl _cwscanf_s_l(const wchar_t *_Format,_locale_t _Locale,...); - _CRTIMP int __cdecl _vcwprintf_s(const wchar_t *_Format,va_list _ArgList); - _CRTIMP int __cdecl _cwprintf_s_l(const wchar_t *_Format,_locale_t _Locale,...); - _CRTIMP int __cdecl _vcwprintf_s_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); -#endif + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _cgetws_s( + _Out_writes_to_(_SizeInWords, *_SizeRead) wchar_t *_Buffer, + _In_ size_t _SizeInWords, + _Out_ size_t *_SizeRead); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _cwprintf_s( + _In_z_ _Printf_format_string_ const wchar_t *_Format, + ...); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _cwscanf_s( + _In_z_ _Scanf_s_format_string_ const wchar_t *_Format, + ...); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _cwscanf_s_l( + _In_z_ _Scanf_s_format_string_ const wchar_t *_Format, + _In_opt_ _locale_t _Locale, + ...); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _vcwprintf_s( + _In_z_ _Printf_format_string_ const wchar_t *_Format, + va_list _ArgList); + + _CRTIMP + int + __cdecl + _cwprintf_s_l( + _In_z_ _Printf_format_string_ const wchar_t *_Format, + _In_opt_ _locale_t _Locale, + ...); + + _CRTIMP + int + __cdecl + _vcwprintf_s_l( + _In_z_ _Printf_format_string_ const wchar_t *_Format, + _In_opt_ _locale_t _Locale, + va_list _ArgList); + +#endif /* _WCONIO_S_DEFINED */ #ifndef _WSTDIO_S_DEFINED #define _WSTDIO_S_DEFINED - _CRTIMP wchar_t *__cdecl _getws_s(wchar_t *_Str,size_t _SizeInWords); - int __cdecl fwprintf_s(FILE *_File,const wchar_t *_Format,...); - int __cdecl wprintf_s(const wchar_t *_Format,...); - int __cdecl vfwprintf_s(FILE *_File,const wchar_t *_Format,va_list _ArgList); - int __cdecl vwprintf_s(const wchar_t *_Format,va_list _ArgList); - int __cdecl swprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,...); - int __cdecl vswprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,va_list _ArgList); - _CRTIMP int __cdecl _snwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,...); - _CRTIMP int __cdecl _vsnwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,va_list _ArgList); - _CRTIMP int __cdecl _wprintf_s_l(const wchar_t *_Format,_locale_t _Locale,...); - _CRTIMP int __cdecl _vwprintf_s_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); - _CRTIMP int __cdecl _fwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...); - _CRTIMP int __cdecl _vfwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); - _CRTIMP int __cdecl _swprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,...); - _CRTIMP int __cdecl _vswprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); - _CRTIMP int __cdecl _snwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...); - _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); - _CRTIMP int __cdecl _fwscanf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...); - _CRTIMP int __cdecl _swscanf_s_l(const wchar_t *_Src,const wchar_t *_Format,_locale_t _Locale,...); - _CRTIMP int __cdecl _snwscanf_s(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,...); - _CRTIMP int __cdecl _snwscanf_s_l(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...); - _CRTIMP int __cdecl _wscanf_s_l(const wchar_t *_Format,_locale_t _Locale,...); - _CRTIMP errno_t __cdecl _wfopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode); - _CRTIMP errno_t __cdecl _wfreopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode,FILE *_OldFile); - _CRTIMP errno_t __cdecl _wtmpnam_s(wchar_t *_DstBuf,size_t _SizeInWords); -#endif + + _Check_return_opt_ + _CRTIMP + wchar_t * + __cdecl + _getws_s( + _Out_writes_z_(_SizeInWords) wchar_t *_Str, + _In_ size_t _SizeInWords); + + _Check_return_opt_ + int + __cdecl + fwprintf_s( + _Inout_ FILE *_File, + _In_z_ _Printf_format_string_ const wchar_t *_Format, + ...); + + _Check_return_opt_ + int + __cdecl + wprintf_s( + _In_z_ _Printf_format_string_ const wchar_t *_Format, + ...); + + _Check_return_opt_ + int + __cdecl + vfwprintf_s( + _Inout_ FILE *_File, + _In_z_ _Printf_format_string_ const wchar_t *_Format, + va_list _ArgList); + + _Check_return_opt_ + int + __cdecl + vwprintf_s( + _In_z_ _Printf_format_string_ const wchar_t *_Format, + va_list _ArgList); + + int + __cdecl + swprintf_s( + _Out_writes_z_(_SizeInWords) wchar_t *_Dst, + _In_ size_t _SizeInWords, + _In_z_ _Printf_format_string_ const wchar_t *_Format, + ...); + + int + __cdecl + vswprintf_s( + _Out_writes_z_(_SizeInWords) wchar_t *_Dst, + _In_ size_t _SizeInWords, + _In_z_ _Printf_format_string_ const wchar_t *_Format, + va_list _ArgList); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _snwprintf_s( + _Out_writes_z_(_DstSizeInWords) wchar_t *_DstBuf, + _In_ size_t _DstSizeInWords, + _In_ size_t _MaxCount, + _In_z_ _Printf_format_string_ const wchar_t *_Format, + ...); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _vsnwprintf_s( + _Out_writes_z_(_DstSizeInWords) wchar_t *_DstBuf, + _In_ size_t _DstSizeInWords, + _In_ size_t _MaxCount, + _In_z_ _Printf_format_string_ const wchar_t *_Format, + va_list _ArgList); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _wprintf_s_l( + _In_z_ _Printf_format_string_ const wchar_t *_Format, + _In_opt_ _locale_t _Locale, + ...); + + _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); + + _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, + ...); + + _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); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _swprintf_s_l( + _Out_writes_z_(_DstSize) wchar_t *_DstBuf, + _In_ size_t _DstSize, + _In_z_ _Printf_format_string_ const wchar_t *_Format, + _In_opt_ _locale_t _Locale, + ...); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _vswprintf_s_l( + _Out_writes_z_(_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); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _snwprintf_s_l( + _Out_writes_z_(_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, + ...); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _vsnwprintf_s_l( + _Out_writes_z_(_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); + + _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, + ...); + + _Check_return_opt_ + _CRTIMP + 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, + ...); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _snwscanf_s( + _In_reads_(_MaxCount) _Pre_z_ const wchar_t *_Src, + _In_ size_t _MaxCount, + _In_z_ _Scanf_s_format_string_ const wchar_t *_Format, + ...); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _snwscanf_s_l( + _In_reads_(_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, + ...); + + _Check_return_opt_ + _CRTIMP + int + __cdecl + _wscanf_s_l( + _In_z_ _Scanf_s_format_string_ const wchar_t *_Format, + _In_opt_ _locale_t _Locale, + ...); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wfopen_s( + _Outptr_result_maybenull_ FILE **_File, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_Mode); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wfreopen_s( + _Outptr_result_maybenull_ FILE **_File, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_Mode, + _Inout_ FILE *_OldFile); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wtmpnam_s( + _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf, + _In_ size_t _SizeInWords); + +#endif /* _WSTDIO_S_DEFINED */ #ifndef _WSTDLIB_S_DEFINED #define _WSTDLIB_S_DEFINED - _CRTIMP errno_t __cdecl _itow_s (int _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix); - _CRTIMP errno_t __cdecl _ltow_s (long _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix); - _CRTIMP errno_t __cdecl _ultow_s (unsigned long _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix); - _CRTIMP errno_t __cdecl _wgetenv_s(size_t *_ReturnSize,wchar_t *_DstBuf,size_t _DstSizeInWords,const wchar_t *_VarName); - _CRTIMP errno_t __cdecl _wdupenv_s(wchar_t **_Buffer,size_t *_BufferSizeInWords,const wchar_t *_VarName); - _CRTIMP errno_t __cdecl _i64tow_s(__int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix); - _CRTIMP errno_t __cdecl _ui64tow_s(unsigned __int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix); -#endif + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _itow_s( + _In_ int _Val, + _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf, + _In_ size_t _SizeInWords, + _In_ int _Radix); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _ltow_s( + _In_ long _Val, + _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf, + _In_ size_t _SizeInWords, + _In_ int _Radix); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _ultow_s( + _In_ unsigned long _Val, + _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf, + _In_ size_t _SizeInWords, + _In_ int _Radix); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wgetenv_s( + _Out_ size_t *_ReturnSize, + _Out_writes_z_(_DstSizeInWords) wchar_t *_DstBuf, + _In_ size_t _DstSizeInWords, + _In_z_ const wchar_t *_VarName); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wdupenv_s( + _Outptr_result_buffer_maybenull_(*_BufferSizeInWords) _Deref_post_z_ wchar_t **_Buffer, + _Out_opt_ size_t *_BufferSizeInWords, + _In_z_ const wchar_t *_VarName); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _i64tow_s( + _In_ __int64 _Val, + _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf, + _In_ size_t _SizeInWords, + _In_ int _Radix); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _ui64tow_s( + _In_ unsigned __int64 _Val, + _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf, + _In_ size_t _SizeInWords, + _In_ int _Radix); + +#endif /* _WSTDLIB_S_DEFINED */ #ifndef _POSIX_ #ifndef _WSTDLIBP_S_DEFINED #define _WSTDLIBP_S_DEFINED - _CRTIMP errno_t __cdecl _wmakepath_s(wchar_t *_PathResult,size_t _SizeInWords,const wchar_t *_Drive,const wchar_t *_Dir,const wchar_t *_Filename,const wchar_t *_Ext); - _CRTIMP errno_t __cdecl _wputenv_s(const wchar_t *_Name,const wchar_t *_Value); - _CRTIMP errno_t __cdecl _wsearchenv_s(const wchar_t *_Filename,const wchar_t *_EnvVar,wchar_t *_ResultPath,size_t _SizeInWords); - _CRTIMP errno_t __cdecl _wsplitpath_s(const wchar_t *_FullPath,wchar_t *_Drive,size_t _DriveSizeInWords,wchar_t *_Dir,size_t _DirSizeInWords,wchar_t *_Filename,size_t _FilenameSizeInWords,wchar_t *_Ext,size_t _ExtSizeInWords); -#endif -#endif + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wmakepath_s( + _Out_writes_z_(_SizeInBytes) wchar_t *_PathResult, + _In_ size_t _SizeInWords, + _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); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wputenv_s( + _In_z_ const wchar_t *_Name, + _In_z_ const wchar_t *_Value); + + _CRTIMP + errno_t + __cdecl + _wsearchenv_s( + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_EnvVar, + _Out_writes_z_(_SizeInWords) wchar_t *_ResultPath, + _In_ size_t _SizeInWords); + + _CRTIMP + errno_t + __cdecl + _wsplitpath_s( + _In_z_ const wchar_t *_FullPath, + _Out_writes_opt_z_(_DriveSizeInWords) wchar_t *_Drive, + _In_ size_t _DriveSizeInWords, + _Out_writes_opt_z_(_DirSizeInWords) wchar_t *_Dir, + _In_ size_t _DirSizeInWords, + _Out_writes_opt_z_(_FilenameSizeInWords) wchar_t *_Filename, + _In_ size_t _FilenameSizeInWords, + _Out_writes_opt_z_(_ExtSizeInWords) wchar_t *_Ext, + _In_ size_t _ExtSizeInWords); + +#endif /* _WSTDLIBP_S_DEFINED */ +#endif /* _POSIX_ */ #ifndef _WSTRING_S_DEFINED #define _WSTRING_S_DEFINED - _CRTIMP wchar_t *__cdecl wcstok_s(wchar_t *_Str,const wchar_t *_Delim,wchar_t **_Context); - _CRTIMP errno_t __cdecl _wcserror_s(wchar_t *_Buf,size_t _SizeInWords,int _ErrNum); - _CRTIMP errno_t __cdecl __wcserror_s(wchar_t *_Buffer,size_t _SizeInWords,const wchar_t *_ErrMsg); - _CRTIMP errno_t __cdecl _wcsnset_s(wchar_t *_Dst,size_t _DstSizeInWords,wchar_t _Val,size_t _MaxCount); - _CRTIMP errno_t __cdecl _wcsset_s(wchar_t *_Str,size_t _SizeInWords,wchar_t _Val); - _CRTIMP errno_t __cdecl _wcslwr_s(wchar_t *_Str,size_t _SizeInWords); - _CRTIMP errno_t __cdecl _wcslwr_s_l(wchar_t *_Str,size_t _SizeInWords,_locale_t _Locale); - _CRTIMP errno_t __cdecl _wcsupr_s(wchar_t *_Str,size_t _Size); - _CRTIMP errno_t __cdecl _wcsupr_s_l(wchar_t *_Str,size_t _Size,_locale_t _Locale); - _CRTIMP errno_t __cdecl wcsncat_s(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount); - _CRTIMP errno_t __cdecl _wcsncat_s_l(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount,_locale_t _Locale); - _CRTIMP errno_t __cdecl wcsncpy_s(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount); - _CRTIMP errno_t __cdecl _wcsncpy_s_l(wchar_t *_Dst,size_t _DstSizeInChars,const wchar_t *_Src,size_t _MaxCount,_locale_t _Locale); - _CRTIMP wchar_t *__cdecl _wcstok_s_l(wchar_t *_Str,const wchar_t *_Delim,wchar_t **_Context,_locale_t _Locale); - _CRTIMP errno_t __cdecl _wcsset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val,_locale_t _Locale); - _CRTIMP errno_t __cdecl _wcsnset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val, size_t _Count,_locale_t _Locale); + _Check_return_ + _CRTIMP + 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); -#endif + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wcserror_s( + _Out_writes_opt_z_(_SizeInWords) wchar_t *_Buf, + _In_ size_t _SizeInWords, + _In_ int _ErrNum); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + __wcserror_s( + _Out_writes_opt_z_(_SizeInWords) wchar_t *_Buffer, + _In_ size_t _SizeInWords, + _In_z_ const wchar_t *_ErrMsg); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wcsnset_s( + _Inout_updates_z_(_DstSizeInWords) wchar_t *_Dst, + _In_ size_t _DstSizeInWords, + wchar_t _Val, + _In_ size_t _MaxCount); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wcsset_s( + _Inout_updates_z_(_SizeInWords) wchar_t *_Str, + _In_ size_t _SizeInWords, + wchar_t _Val); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wcslwr_s( + _Inout_updates_z_(_SizeInWords) wchar_t *_Str, + _In_ size_t _SizeInWords); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wcslwr_s_l( + _Inout_updates_z_(_SizeInWords) wchar_t *_Str, + _In_ size_t _SizeInWords, + _In_opt_ _locale_t _Locale); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wcsupr_s( + _Inout_updates_z_(_Size) wchar_t *_Str, + _In_ size_t _Size); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wcsupr_s_l( + _Inout_updates_z_(_Size) wchar_t *_Str, + _In_ size_t _Size, + _In_opt_ _locale_t _Locale); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + wcsncat_s( + _Inout_updates_z_(_DstSizeInChars) wchar_t *_Dst, + _In_ size_t _DstSizeInChars, + _In_z_ const wchar_t *_Src, + _In_ size_t _MaxCount); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wcsncat_s_l( + _Inout_updates_z_(_DstSizeInChars) wchar_t *_Dst, + _In_ size_t _DstSizeInChars, + _In_z_ const wchar_t *_Src, + _In_ size_t _MaxCount, + _In_opt_ _locale_t _Locale); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + wcsncpy_s( + _Out_writes_z_(_DstSizeInChars) wchar_t *_Dst, + _In_ size_t _DstSizeInChars, + _In_z_ const wchar_t *_Src, + _In_ size_t _MaxCount); + + _Check_return_wat_ + _CRTIMP + errno_t + __cdecl + _wcsncpy_s_l( + _Out_writes_z_(_DstSizeInChars) wchar_t *_Dst, + _In_ size_t _DstSizeInChars, + _In_z_ const wchar_t *_Src, + _In_ size_t _MaxCount, + _In_opt_ _locale_t _Locale); + + _CRTIMP + wchar_t * + __cdecl + _wcstok_s_l( + wchar_t *_Str, + const wchar_t *_Delim, + wchar_t **_Context, + _locale_t _Locale); + + _CRTIMP + errno_t + __cdecl + _wcsset_s_l( + wchar_t *_Str, + size_t _SizeInChars, + unsigned int _Val, + _locale_t _Locale); + + _CRTIMP + errno_t + __cdecl + _wcsnset_s_l( + wchar_t *_Str, + size_t _SizeInChars, + unsigned int _Val, + size_t _Count, + _locale_t _Locale); + +#endif /* _WSTRING_S_DEFINED */ #ifndef _WTIME_S_DEFINED #define _WTIME_S_DEFINED - _CRTIMP errno_t __cdecl _wasctime_s(wchar_t *_Buf,size_t _SizeInWords,const struct tm *_Tm); - _CRTIMP errno_t __cdecl _wctime32_s(wchar_t *_Buf,size_t _SizeInWords,const __time32_t *_Time); - _CRTIMP errno_t __cdecl _wstrdate_s(wchar_t *_Buf,size_t _SizeInWords); - _CRTIMP errno_t __cdecl _wstrtime_s(wchar_t *_Buf,size_t _SizeInWords); - _CRTIMP errno_t __cdecl _wctime64_s(wchar_t *_Buf,size_t _SizeInWords,const __time64_t *_Time); + + _CRTIMP + errno_t + __cdecl + _wasctime_s( + _Out_writes_(_SizeInWords) _Post_readable_size_(26) wchar_t *_Buf, + _In_ size_t _SizeInWords, + _In_ const struct tm *_Tm); + + _CRTIMP + errno_t + __cdecl + _wctime32_s( + _Out_writes_(_SizeInWords) _Post_readable_size_(26) wchar_t *_Buf, + _In_ size_t _SizeInWords, + _In_ const __time32_t *_Time); + + _CRTIMP + errno_t + __cdecl + _wstrdate_s( + _Out_writes_(_SizeInWords) _Post_readable_size_(9) wchar_t *_Buf, + _In_range_(>= , 9) size_t _SizeInWords); + + _CRTIMP + errno_t + __cdecl + _wstrtime_s( + _Out_writes_(_SizeInWords) _Post_readable_size_(9) wchar_t *_Buf, + _In_ size_t _SizeInWords); + + _CRTIMP + errno_t + __cdecl + _wctime64_s( + _Out_writes_(_SizeInWords) _Post_readable_size_(26) wchar_t *_Buf, + _In_ size_t _SizeInWords, + _In_ const __time64_t *_Time); #if !defined (RC_INVOKED) && !defined (_INC_WTIME_S_INL) #define _INC_WTIME_S_INL @@ -117,16 +666,46 @@ extern "C" { #ifndef _USE_32BIT_TIME_T __CRT_INLINE errno_t __cdecl _wctime_s(wchar_t *_Buffer,size_t _SizeInWords,const time_t *_Time) { return _wctime64_s(_Buffer,_SizeInWords,_Time); } #endif -#endif #endif - _CRTIMP errno_t __cdecl mbsrtowcs_s(size_t *_Retval,wchar_t *_Dst,size_t _SizeInWords,const char **_PSrc,size_t _N,mbstate_t *_State); - _CRTIMP errno_t __cdecl wcrtomb_s(size_t *_Retval,char *_Dst,size_t _SizeInBytes,wchar_t _Ch,mbstate_t *_State); - _CRTIMP errno_t __cdecl wcsrtombs_s(size_t *_Retval,char *_Dst,size_t _SizeInBytes,const wchar_t **_Src,size_t _Size,mbstate_t *_State); +#endif /* _WTIME_S_DEFINED */ + + _CRTIMP + errno_t + __cdecl + mbsrtowcs_s( + _Out_opt_ size_t *_Retval, + _Out_writes_opt_z_(_SizeInWords) wchar_t *_Dst, + _In_ size_t _SizeInWords, + _Inout_ _Deref_prepost_opt_valid_ const char **_PSrc, + _In_ size_t _N, + _Out_opt_ mbstate_t *_State); + + _CRTIMP + errno_t + __cdecl + wcrtomb_s( + _Out_opt_ size_t *_Retval, + _Out_writes_opt_z_(_SizeInBytes) char *_Dst, + _In_ size_t _SizeInBytes, + _In_ wchar_t _Ch, + _Out_opt_ mbstate_t *_State); + + _CRTIMP + errno_t + __cdecl + wcsrtombs_s( + _Out_opt_ size_t *_Retval, + _Out_writes_bytes_to_opt_(_SizeInBytes, *_Retval) char *_Dst, + _In_ size_t _SizeInBytes, + _Inout_ _Deref_prepost_z_ const wchar_t **_Src, + _In_ size_t _Size, + _Out_opt_ mbstate_t *_State); #ifdef __cplusplus } #endif -#endif -#endif +#endif /* MINGW_HAS_SECURE_API */ + +#endif /* _INC_WCHAR_S */