//判断文件类型
DWORD CHXScriptReal::CheckFileType( HANDLE hFile )
{
HXScriptFileCheck sfc;
DWORD dwcbSize;
if( ReadFile( hFile, &sfc, sizeof( sfc ), &dwcbSize, NULL ) && ( dwcbSize > sizeof( sfc )))
{
if( IsBinFile( &sfc ))
return HXSF_CODETYPE_BIN;
}
if( dwcbSize >= 3 && sfc.byBom[ 0 ] == 0xEF && sfc.byBom[ 1 ] == 0xBB && sfc.byBom[ 2 ] == 0xBF )
{
SetFilePointer( hFile, 3, NULL, FILE_BEGIN );
return HXSF_CODETYPE_UTF8;
}
else if( dwcbSize >= 2 && sfc.byBom[ 0 ] == 0xFF && sfc.byBom[ 1 ] == 0xFE )
{
SetFilePointer( hFile, 2, NULL, FILE_BEGIN );
return HXSF_CODETYPE_UNICODE;
}
else if( dwcbSize >= 2 && sfc.byBom[ 0 ] == 0xFE && sfc.byBom[ 1 ] == 0xFF )
{
SetFilePointer( hFile, 2, NULL, FILE_BEGIN );
return HXSF_CODETYPE_UNICODE_BIGENDIAN;
}
else
{
SetFilePointer( hFile, 0, NULL, FILE_BEGIN );
return HXSF_CODETYPE_ANSI;
}
}DWORD CHXScriptReal::CheckFileTyp