struct Flag64

来源:互联网 发布:mac电脑大小写怎么切换 编辑:程序博客网 时间:2024/06/11 16:25

struct Flag64
{
 UINT m_uLowFlags ;
 UINT m_uHighFlags ;

 Flag64()
 {
  CleanUp( ) ;
 }

 BOOL isSetBit( INT bit ) const
 {
  if(bit<32)
  {
   if ( m_uLowFlags & (1<<bit) )
    return TRUE;
  }
  else
  {
   if ( m_uHighFlags & (1<<(bit-32)) )
    return TRUE;
  }

  return FALSE;
 }

 VOID UpdateBits( INT bit, BOOL& bUpdate )
 {
  if(bit<32)
  {
   if ( bUpdate )
    m_uLowFlags |= (1<<(INT)bit);
   else
    m_uLowFlags &= (~(1<<(INT)bit));
  }
  else
  {
   if ( bUpdate )
    m_uHighFlags |= (1<<(INT)(bit-32));
   else
    m_uHighFlags &= (~(1<<(INT)(bit-32)));
  }
 }

 VOID CleanUp( )
 {
  m_uLowFlags = 0;
  m_uHighFlags =  0;
 }
};