#include
#include
bool ctrlhandler( DWORD fdwctrltype )
{
switch( fdwctrltype )
{
// handle the ctrl-c signal.
case CTRL_C_EVENT:
printf( "ctrl-c event " );
return( true );
// ctrl-close: confirm that the user wants to exit.
case CTRL_CLOSE_EVENT:
printf( "ctrl-close event " );
return( true );
// pass other signals to the next handler.
case CTRL_BREAK_EVENT:
printf( "ctrl-break event " );
return false;
case CTRL_LOGOFF_EVENT:
printf( "ctrl-logoff event " );
return false;
case CTRL_SHUTDOWN_EVENT:
printf( "ctrl-shutdown event " );
return false;
default:
return false;
}
}
void main( void )
{
if( SetConsoleCtrlHandler( (PHANDLER_ROUTINE) ctrlhandler, true ) )
{
printf( " the control handler is installed. " );
printf( " -- now try pressing ctrl+c or ctrl+break, or" );
printf( " try logging off or closing the console... " );
printf( " (...waiting in a loop for events...) " );
while( 1 ){ Sleep(100);}
}
else
printf( " error: could not set control handler");
}
#include
bool ctrlhandler( DWORD fdwctrltype )
{
switch( fdwctrltype )
{
// handle the ctrl-c signal.
case CTRL_C_EVENT:
printf( "ctrl-c event " );
return( true );
// ctrl-close: confirm that the user wants to exit.
case CTRL_CLOSE_EVENT:
printf( "ctrl-close event " );
return( true );
// pass other signals to the next handler.
case CTRL_BREAK_EVENT:
printf( "ctrl-break event " );
return false;
case CTRL_LOGOFF_EVENT:
printf( "ctrl-logoff event " );
return false;
case CTRL_SHUTDOWN_EVENT:
printf( "ctrl-shutdown event " );
return false;
default:
return false;
}
}
void main( void )
{
if( SetConsoleCtrlHandler( (PHANDLER_ROUTINE) ctrlhandler, true ) )
{
printf( " the control handler is installed. " );
printf( " -- now try pressing ctrl+c or ctrl+break, or" );
printf( " try logging off or closing the console... " );
printf( " (...waiting in a loop for events...) " );
while( 1 ){ Sleep(100);}
}
else
printf( " error: could not set control handler");
}