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;
}
}
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;
}
}
덧글을 달아 주세요