56 char *_Pstate = (
char *)&
_State;
62 unsigned char *_Ptr = (
unsigned char *)_Mid1;
64 unsigned short _Ch0, _Ch1;
67 _Ch0 = (
unsigned short)(_Ptr[1] << 8 | _Ptr[0]);
69 _Ch0 = (
unsigned short)(_Ptr[0] << 8 | _Ptr[1]);
72 unsigned char _Default_endian =
77 _Ch0 = (
unsigned short)(_Ptr[1] << 8 | _Ptr[0]);
79 _Ch0 = (
unsigned short)(_Ptr[0] << 8 | _Ptr[1]);
81 || (_Ch0 != 0xfeff && _Ch0 != 0xfffe))
82 *_Pstate = _Default_endian;
86 *_Pstate = (
char)(_Ch0 == 0xfeff
88 : (
unsigned char)(3 - _Default_endian));
90 _First2, _Last2, _Mid2);
92 if (_Ans == _Mybase::partial)
101 if (_Ch0 < 0xd800 || 0xdc00 <= _Ch0)
111 _Ch1 = (
unsigned short)(_Ptr[3] << 8 | _Ptr[2]);
113 _Ch1 = (
unsigned short)(_Ptr[2] << 8 | _Ptr[3]);
115 if (_Ch1 < 0xdc00 || 0xe000 <= _Ch1)
116 return (_Mybase::error);
119 _Ch = (
unsigned long)(_Ch0 - 0xd800 + 0x0040) << 10
124 return (_Mybase::error);
125 *_Mid2++ = (_Elem)_Ch;
128 return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok);
_In_ long
Definition: corecrt_wstdlib.h:88
virtual result do_in(_Statype &_State, const _Byte *_First1, const _Byte *_Last1, const _Byte *&_Mid1, _Elem *_First2, _Elem *_Last2, _Elem *&_Mid2) const
Definition: utf16:52
#define _BIG_FIRST
Definition: codecvt:20
_Check_return_ _In_ wchar_t _Ch
Definition: vcruntime_string.h:89
_In_ size_t _Deref_pre_opt_z_ char const _In_ size_t _Inout_ mbstate_t * _State
Definition: wchar.h:78
_Check_return_ _In_z_ wchar_t const * _Mode
Definition: corecrt_wstdio.h:133
unsigned char
Definition: mbstring.h:107
_Mybase::result result
Definition: utf16:36
#define _LITTLE_FIRST
Definition: codecvt:19