/*********************************************************************** * COPYRIGHT: GPL v3 * FILENAME : CtrlHandler.c * * DESCRIPTION : * CtrlHandler.exe shows how to handle Ctrl + Break, Ctrl + C * and other console signals. They will stop, in a controlled * way the main infinite loop. * * FUNCTIONS : * BOOL SignalHandler( cntrlSignal ): Handles the signals received * * PROGRAMMERS : Víctor Martínez Calvo (victor.martinez@reactos.org) * * **/ #include #include BOOL exitFlag; BOOL WINAPI CtrlHandler(DWORD cntrlEvent){ exitFlag = TRUE; switch (cntrlEvent){ case CTRL_C_EVENT: printf("CTRL+C signal received \n"); return TRUE; case CTRL_BREAK_EVENT: printf("CTRL+BREAK signal received. \n"); return TRUE; case CTRL_CLOSE_EVENT: printf("Close signal received. \n"); return TRUE; default: printf("Other Event received. \n"); return TRUE; } } int main (void) { DOUBLE dCount = 0; //SetConsoleCtrlHandler(NULL, TRUE); //Add a event handler SetConsoleCtrlHandler(CtrlHandler, TRUE); //Disable CTRL_C_EVENT signal while(!exitFlag) { // Replace this dumb task with yours. Sleep(1000); dCount++; } printf("Number of loops: %.0f \n Stopping the program \n", dCount); return 0; }