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.