UINT XChar2XDigit(_TCHAR chIn)
{
///return (ch >= _T('0') && ch <= _T('9')) ? (ch - _T('0')) : (f3dutil::ToUpper(ch) - _T('A') + 10);
BYTE ch = static_cast<BYTE>(chIn);
if (ch >= '0' && ch <= '9')
return static_cast<UINT>(ch - '0');
if (ch >= 'A' && ch <= 'F')
return static_cast<UINT>((ch - 'A') + 10);
if (ch >= 'a' && ch <= 'f')
return static_cast<UINT>((ch - 'a') + 10);
return (UINT)-1;
}