wctomb_s_l
errno_t __cdecl wctomb_s_l(int *SizeConverted, char *MbCh, size_t SizeInBytes, wchar_t WCh, _locale_t Locale){
errno_t result;
UINT64 BytesInUnicodeString;
UINT64 BytesInMultiByteString;
wchar_t UnicodeString;
UnicodeString = WCh;
if( MbCh || !*(_QWORD *)&SizeInBytes )
{
if( SizeConverted )
*SizeConverted = -1;
if( *(_QWORD *)&SizeInBytes > 0x7FFFFFFFui64 )
{
xHalTimerWatchdogStop(0i64, 0i64);
return 22;
}
if( MbCh )
{
LODWORD(BytesInMultiByteString) = 0;
LODWORD(BytesInUnicodeString) = 2;
if( RtlUnicodeToMultiByteN(
MbCh,
SizeInBytes,
(PULONG)&BytesInMultiByteString,
&UnicodeString,
BytesInUnicodeString) < 0 )
{
result = 42;
gbl_errno = 42;
return result;
}
if( SizeConverted )
*SizeConverted = BytesInMultiByteString;
}
else if( SizeConverted )
{
*SizeConverted = _mb_cur_max;
}
}
else if( SizeConverted )
{
*SizeConverted = 0;
}
return 0;
}Referenced by:
No references.