Manipuladores de controle do console

Cada processo de console tem sua própria lista de funções de manipulador de controle que são chamadas pelo sistema quando o processo recebe um sinal CTRL+C, CTRL+BREAK ou CTRL+FECHAR. Inicialmente, a lista de manipuladores de controle para cada processo contém somente uma função de manipulador padrão que chama a função ExitProcess. Um processo de console pode adicionar ou remover funções HandlerRoutine adicionais ao chamar a função SetConsoleCtrlHandler. Essa função não afeta as listas de manipuladores de controle para outros processos. Quando um processo de console recebe um dos sinais de controle, suas funções de manipulador são chamadas com base no último registrado, primeiro chamado, até que um dos manipuladores retorne TRUE. Se nenhum dos manipuladores retornar TRUE, o manipulador padrão será chamado.

O parâmetro dwCtrlType da função identifica o sinal de controle recebido e o valor de retorno indica se o sinal foi manipulado.

Uma nova conversa é iniciada dentro do processo do cliente de linha de comando para executar as rotinas do manipulador. Veja mais informações sobre os valores de tempo limite e a ação dessa conversa na documentação da função HandlerRoutine.

Para ver um exemplo de função de manipulador de controle, confira Registrar uma função de manipulador de controle.

Observe que chamar AttachConsole, AllocConsole ou FreeConsole redefinirá a tabela de manipuladores de controle no processo do cliente para o estado inicial.