public:
void CLOSEHANDLE( HANDLE x )
{
  if( x != NULL )
  {
    CloseHandle(x);
    x = NULL;
  }
}

void CLOSESOCKET( SOCKET x )
{
  if( x != INVALID_SOCKET )
  {
    closesocket( x );
    x = INVALID_SOCKET;
  }
}

void CLOSEEVENT( HANDLE x )
{
  if( x != NULL )
  {
    SetEvent( x );
    CloseHandle( x );
    x = NULL;
  }
}

void CLOSETHREAD( HANDLE x )
{
  DWORD dwCode = 0;
 
  if( x != NULL )
  {
    if( GetExitCodeThread( x, &dwCode ) )
    {
      if( dwCode == STILL_ACTIVE )
      {
        WaitForSingleObject( x, 5000 );
        if( GetExitCodeThread( x, &dwCode ) )
        {
          if( dwCode == STILL_ACTIVE )
          {
            TerminateThread( x, dwCode );
          }
        }
      }
    }
    CloseHandle( x );
    x = NULL;
  }
}
 
2006/08/10 13:01 2006/08/10 13:01

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요