Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642//// corecrt_wstring.h//// Copyright (c) Microsoft Corporation. All rights reserved.//// This file declares the wide character (wchar_t) string functionality, shared// by <string.h> and <wchar.h>.//#pragma once
#include <corecrt.h>#include <vcruntime_string.h>
#pragma warning(push)#pragma warning(disable: _UCRT_DISABLED_WARNINGS)_UCRT_DISABLE_CLANG_WARNINGS
#ifndef __midl
_CRT_BEGIN_C_HEADER
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Secure Alternatives////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#if __STDC_WANT_SECURE_LIB__
_Check_return_wat_ _ACRTIMP errno_t __cdecl wcscat_s( _Inout_updates_z_(_SizeInWords) wchar_t* _Destination, _In_ rsize_t _SizeInWords, _In_z_ wchar_t const* _Source );
_Check_return_wat_ _ACRTIMP errno_t __cdecl wcscpy_s( _Out_writes_z_(_SizeInWords) wchar_t* _Destination, _In_ rsize_t _SizeInWords, _In_z_ wchar_t const* _Source );
_Check_return_wat_ _ACRTIMP errno_t __cdecl wcsncat_s( _Inout_updates_z_(_SizeInWords) wchar_t* _Destination, _In_ rsize_t _SizeInWords, _In_reads_or_z_(_MaxCount) wchar_t const* _Source, _In_ rsize_t _MaxCount );
_Check_return_wat_ _ACRTIMP errno_t __cdecl wcsncpy_s( _Out_writes_z_(_SizeInWords) wchar_t* _Destination, _In_ rsize_t _SizeInWords, _In_reads_or_z_(_MaxCount) wchar_t const* _Source, _In_ rsize_t _MaxCount );
_Check_return_ _ACRTIMP wchar_t* __cdecl wcstok_s( _Inout_opt_z_ wchar_t* _String, _In_z_ wchar_t const* _Delimiter, _Inout_ _Deref_prepost_opt_z_ wchar_t** _Context );
#endif // __STDC_WANT_SECURE_LIB__
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Wide-Character <string.h> Functions////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC #pragma push_macro("_wcsdup") #undef _wcsdup#endif
_Check_return__ACRTIMP _CRTALLOCATOR wchar_t* __cdecl _wcsdup( _In_z_ wchar_t const* _String );
#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC #pragma pop_macro("_wcsdup")#endif
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, wcscat_s, wchar_t, _Destination, _In_z_ wchar_t const*, _Source )
#ifndef RC_INVOKED __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcscat, _Inout_updates_z_(_String_length_(_Destination) + _String_length_(_Source) + 1), wchar_t, _Destination, _In_z_ wchar_t const*, _Source )#endif
_Check_return__ACRTIMP int __cdecl wcscmp( _In_z_ wchar_t const* _String1, _In_z_ wchar_t const* _String2 );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, wcscpy_s, wchar_t, _Destination, _In_z_ wchar_t const*, _Source )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcscpy, _Out_writes_z_(_String_length_(_Source) + 1), wchar_t, _Destination, _In_z_ wchar_t const*, _Source )
_Check_return__ACRTIMP size_t __cdecl wcscspn( _In_z_ wchar_t const* _String, _In_z_ wchar_t const* _Control );
_Check_return__ACRTIMP size_t __cdecl wcslen( _In_z_ wchar_t const* _String );
_Check_return__When_( _MaxCount > _String_length_(_Source), _Post_satisfies_(return == _String_length_(_Source)))_When_( _MaxCount <= _String_length_(_Source), _Post_satisfies_(return == _MaxCount))_ACRTIMP size_t __cdecl wcsnlen( _In_reads_or_z_(_MaxCount) wchar_t const* _Source, _In_ size_t _MaxCount );
#if __STDC_WANT_SECURE_LIB__ && !defined(__midl)
_Check_return_ _When_( _MaxCount > _String_length_(_Source), _Post_satisfies_(return == _String_length_(_Source)) ) _When_( _MaxCount <= _String_length_(_Source), _Post_satisfies_(return == _MaxCount) ) static __inline size_t __CRTDECL wcsnlen_s( _In_reads_or_z_(_MaxCount) wchar_t const* _Source, _In_ size_t _MaxCount ) { return (_Source == 0) ? 0 : wcsnlen(_Source, _MaxCount); }
#endif // __STDC_WANT_SECURE_LIB__ && !defined(__midl)
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( errno_t, wcsncat_s, _Prepost_z_ wchar_t, _Destination, _In_reads_or_z_(_Count) wchar_t const*, _Source, _In_ size_t, _Count )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcsncat, wcsncat_s, _Inout_updates_z_(_Size) wchar_t, _Inout_updates_z_(_Count), wchar_t, _Destination, _In_reads_or_z_(_Count) wchar_t const*, _Source, _In_ size_t, _Count )
_Check_return__ACRTIMP int __cdecl wcsncmp( _In_reads_or_z_(_MaxCount) wchar_t const* _String1, _In_reads_or_z_(_MaxCount) wchar_t const* _String2, _In_ size_t _MaxCount );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( errno_t, wcsncpy_s, wchar_t, _Destination, _In_reads_or_z_(_Count) wchar_t const*, _Source, _In_ size_t, _Count )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcsncpy, wcsncpy_s, _Pre_notnull_ _Post_maybez_ wchar_t, _Out_writes_(_Count) _Post_maybez_, wchar_t, _Destination, _In_reads_or_z_(_Count) wchar_t const*, _Source, _In_ size_t, _Count )
_Check_return__ACRTIMP wchar_t _CONST_RETURN* __cdecl wcspbrk( _In_z_ wchar_t const* _String, _In_z_ wchar_t const* _Control );
_Check_return__ACRTIMP size_t __cdecl wcsspn( _In_z_ wchar_t const* _String, _In_z_ wchar_t const* _Control );
_Check_return_ _CRT_INSECURE_DEPRECATE(wcstok_s)_ACRTIMP wchar_t* __cdecl wcstok( _Inout_opt_z_ wchar_t* _String, _In_z_ wchar_t const* _Delimiter, _Inout_opt_ _Deref_prepost_opt_z_ wchar_t** _Context );
#if !defined RC_INVOKED && !defined __midl
#if defined _CRT_NON_CONFORMING_WCSTOK #define _WCSTOK_DEPRECATED _CRT_INSECURE_DEPRECATE(wcstok_s) #else #define _WCSTOK_DEPRECATED _CRT_DEPRECATE_TEXT( \ "wcstok has been changed to conform with the ISO C standard, " \ "adding an extra context parameter. To use the legacy Microsoft " \ "wcstok, define _CRT_NON_CONFORMING_WCSTOK.") #endif
_Check_return_ _CRT_INSECURE_DEPRECATE(wcstok_s) static __inline wchar_t* __CRTDECL _wcstok( _Inout_opt_z_ wchar_t* const _String, _In_z_ wchar_t const* const _Delimiter ) { return wcstok(_String, _Delimiter, 0); }
#if defined _CRT_NON_CONFORMING_WCSTOK && !defined __cplusplus #define wcstok _wcstok #endif
#if defined __cplusplus && !defined _CRT_NO_INLINE_DEPRECATED_WCSTOK extern "C++" _Check_return_ _WCSTOK_DEPRECATED inline wchar_t* __CRTDECL wcstok( _Inout_opt_z_ wchar_t* _String, _In_z_ wchar_t const* _Delimiter ) throw() { return wcstok(_String, _Delimiter, 0); } #endif
#endif // !defined RC_INVOKED && !defined __midl
_Ret_z__Check_return_ _CRT_INSECURE_DEPRECATE(_wcserror_s)_ACRTIMP wchar_t* __cdecl _wcserror( _In_ int _ErrorNumber );
_Check_return_wat__ACRTIMP errno_t __cdecl _wcserror_s( _Out_writes_opt_z_(_SizeInWords) wchar_t* _Buffer, _In_ size_t _SizeInWords, _In_ int _ErrorNumber );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, _wcserror_s, wchar_t, _Buffer, _In_ int, _Error )
_Ret_z__Success_(return != 0)_Check_return_ _CRT_INSECURE_DEPRECATE(__wcserror_s)_ACRTIMP wchar_t* __cdecl __wcserror( _In_opt_z_ wchar_t const* _String );
_Check_return_wat_ _ACRTIMP_ALT errno_t __cdecl __wcserror_s( _Out_writes_opt_z_(_SizeInWords) wchar_t* _Buffer, _In_ size_t _SizeInWords, _In_z_ wchar_t const* _ErrorMessage );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, __wcserror_s, wchar_t, _Buffer, _In_z_ wchar_t const*, _ErrorMessage )
_Check_return_ _ACRTIMP int __cdecl _wcsicmp( _In_z_ wchar_t const* _String1, _In_z_ wchar_t const* _String2 );
_Check_return_ _ACRTIMP int __cdecl _wcsicmp_l( _In_z_ wchar_t const* _String1, _In_z_ wchar_t const* _String2, _In_opt_ _locale_t _Locale );
_Check_return_ _ACRTIMP int __cdecl _wcsnicmp( _In_reads_or_z_(_MaxCount) wchar_t const* _String1, _In_reads_or_z_(_MaxCount) wchar_t const* _String2, _In_ size_t _MaxCount );
_Check_return_ _ACRTIMP int __cdecl _wcsnicmp_l( _In_reads_or_z_(_MaxCount) wchar_t const* _String1, _In_reads_or_z_(_MaxCount) wchar_t const* _String2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale );
_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcsnset_s( _Inout_updates_z_(_SizeInWords) wchar_t* _Destination, _In_ size_t _SizeInWords, _In_ wchar_t _Value, _In_ size_t _MaxCount );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( errno_t, _wcsnset_s, _Prepost_z_ wchar_t, _Destination, _In_ wchar_t, _Value, _In_ size_t, _MaxCount )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsnset, _wcsnset_s, _Inout_updates_z_(_Size) wchar_t, _Inout_updates_z_(_MaxCount), wchar_t, _String, _In_ wchar_t, _Value, _In_ size_t, _MaxCount )
_ACRTIMP wchar_t* __cdecl _wcsrev( _Inout_z_ wchar_t* _String );
_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcsset_s( _Inout_updates_z_(_SizeInWords) wchar_t* _Destination, _In_ size_t _SizeInWords, _In_ wchar_t _Value );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, _wcsset_s, _Prepost_z_ wchar_t, _String, _In_ wchar_t, _Value )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsset, _wcsset_s, _Inout_updates_z_(_Size) wchar_t, _Inout_z_, wchar_t, _String, _In_ wchar_t, _Value )
_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcslwr_s( _Inout_updates_z_(_SizeInWords) wchar_t* _String, _In_ size_t _SizeInWords );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( errno_t, _wcslwr_s, _Prepost_z_ wchar_t, _String )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcslwr, _Inout_z_, wchar_t, _String )
_Check_return_wat__ACRTIMP errno_t __cdecl _wcslwr_s_l( _Inout_updates_z_(_SizeInWords) wchar_t* _String, _In_ size_t _SizeInWords, _In_opt_ _locale_t _Locale );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, _wcslwr_s_l, _Prepost_z_ wchar_t, _String, _In_opt_ _locale_t, _Locale )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcslwr_l, _wcslwr_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_, wchar_t, _String, _In_opt_ _locale_t, _Locale )
_Check_return_wat__ACRTIMP errno_t __cdecl _wcsupr_s( _Inout_updates_z_(_Size) wchar_t* _String, _In_ size_t _Size );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( errno_t, _wcsupr_s, _Prepost_z_ wchar_t, _String )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsupr, _Inout_z_, wchar_t, _String )
_Check_return_wat__ACRTIMP errno_t __cdecl _wcsupr_s_l( _Inout_updates_z_(_Size) wchar_t* _String, _In_ size_t _Size, _In_opt_ _locale_t _Locale );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, _wcsupr_s_l, _Prepost_z_ wchar_t, _String, _In_opt_ _locale_t, _Locale )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsupr_l, _wcsupr_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_, wchar_t, _String, _In_opt_ _locale_t, _Locale )
_Success_(return < _MaxCount)_Check_return_opt__ACRTIMP size_t __cdecl wcsxfrm( _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t* _Destination, _In_z_ wchar_t const* _Source, _In_ _In_range_(<= ,_CRT_INT_MAX) size_t _MaxCount );
_Success_(return < _MaxCount)_Check_return_opt__ACRTIMP size_t __cdecl _wcsxfrm_l( _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t* _Destination, _In_z_ wchar_t const* _Source, _In_ _In_range_(<= ,_CRT_INT_MAX) size_t _MaxCount, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP int __cdecl wcscoll( _In_z_ wchar_t const* _String1, _In_z_ wchar_t const* _String2 );
_Check_return__ACRTIMP int __cdecl _wcscoll_l( _In_z_ wchar_t const* _String1, _In_z_ wchar_t const* _String2, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP int __cdecl _wcsicoll( _In_z_ wchar_t const* _String1, _In_z_ wchar_t const* _String2 );
_Check_return__ACRTIMP int __cdecl _wcsicoll_l( _In_z_ wchar_t const* _String1, _In_z_ wchar_t const* _String2, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP int __cdecl _wcsncoll( _In_reads_or_z_(_MaxCount) wchar_t const* _String1, _In_reads_or_z_(_MaxCount) wchar_t const* _String2, _In_ size_t _MaxCount );
_Check_return__ACRTIMP int __cdecl _wcsncoll_l( _In_reads_or_z_(_MaxCount) wchar_t const* _String1, _In_reads_or_z_(_MaxCount) wchar_t const* _String2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP int __cdecl _wcsnicoll( _In_reads_or_z_(_MaxCount) wchar_t const* _String1, _In_reads_or_z_(_MaxCount) wchar_t const* _String2, _In_ size_t _MaxCount );
_Check_return__ACRTIMP int __cdecl _wcsnicoll_l( _In_reads_or_z_(_MaxCount) wchar_t const* _String1, _In_reads_or_z_(_MaxCount) wchar_t const* _String2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale );
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Inline C++ Overloads////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#ifdef __cplusplusextern "C++" {
_Check_return_ _When_(return != NULL, _Ret_range_(_String, _String+_String_length_(_String)-1)) inline wchar_t* __CRTDECL wcschr(_In_z_ wchar_t* _String, wchar_t _C) { return const_cast<wchar_t*>(wcschr(static_cast<wchar_t const*>(_String), _C)); }
_Check_return_ inline wchar_t* __CRTDECL wcspbrk(_In_z_ wchar_t* _String, _In_z_ wchar_t const* _Control) { return const_cast<wchar_t*>(wcspbrk(static_cast<wchar_t const*>(_String), _Control)); }
_Check_return_ inline wchar_t* __CRTDECL wcsrchr(_In_z_ wchar_t* _String, _In_ wchar_t _C) { return const_cast<wchar_t*>(wcsrchr(static_cast<wchar_t const*>(_String), _C)); }
_Check_return_ _Ret_maybenull_ _When_(return != NULL, _Ret_range_(_String, _String+_String_length_(_String)-1)) inline wchar_t* __CRTDECL wcsstr(_In_z_ wchar_t* _String, _In_z_ wchar_t const*_SubStr) { return const_cast<wchar_t*>(wcsstr(static_cast<wchar_t const*>(_String), _SubStr)); }
}#endif // __cplusplus
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Non-Standard Names////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES #if defined _DEBUG && defined _CRTDBG_MAP_ALLOC #pragma push_macro("wcsdup") #undef wcsdup #endif
_Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsdup) _ACRTIMP wchar_t* __cdecl wcsdup( _In_z_ wchar_t const* _String );
#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC #pragma pop_macro("wcsdup") #endif
// Declarations of functions defined in oldnames.lib: #define wcswcs wcsstr
_Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsicmp) _ACRTIMP int __cdecl wcsicmp( _In_z_ wchar_t const* _String1, _In_z_ wchar_t const* _String2 );
_Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsnicmp) _ACRTIMP int __cdecl wcsnicmp( _In_reads_or_z_(_MaxCount) wchar_t const* _String1, _In_reads_or_z_(_MaxCount) wchar_t const* _String2, _In_ size_t _MaxCount );
_CRT_NONSTDC_DEPRECATE(_wcsnset) _Ret_z_ _ACRTIMP wchar_t* __cdecl wcsnset( _Inout_updates_z_(_MaxCount) wchar_t* _String, _In_ wchar_t _Value, _In_ size_t _MaxCount );
_CRT_NONSTDC_DEPRECATE(_wcsrev) _Ret_z_ _ACRTIMP wchar_t* __cdecl wcsrev( _Inout_z_ wchar_t* _String );
_CRT_NONSTDC_DEPRECATE(_wcsset) _Ret_z_ _ACRTIMP wchar_t* __cdecl wcsset( _Inout_z_ wchar_t* _String, _In_ wchar_t _Value );
_CRT_NONSTDC_DEPRECATE(_wcslwr) _Ret_z_ _ACRTIMP wchar_t* __cdecl wcslwr( _Inout_z_ wchar_t* _String );
_CRT_NONSTDC_DEPRECATE(_wcsupr) _Ret_z_ _ACRTIMP wchar_t* __cdecl wcsupr( _Inout_z_ wchar_t* _String );
_Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsicoll) _ACRTIMP int __cdecl wcsicoll( _In_z_ wchar_t const* _String1, _In_z_ wchar_t const* _String2 );
#endif // _CRT_INTERNAL_NONSTDC_NAMES
_CRT_END_C_HEADER
#endif // !__midl_UCRT_RESTORE_CLANG_WARNINGS#pragma warning(pop) // _UCRT_DISABLED_WARNINGS