Обработчики команд управления в консоли

Каждый консольный процесс имеет собственный список функций обработчика элементов управления, вызываемых системой, когда процесс получает сигнал CTRL+C, CTRL+BREAK или CTRL+CLOSE . Изначально список обработчиков элементов управления для каждого процесса содержит только функцию обработчика по умолчанию, которая вызывает функцию ExitProcess . Консольный процесс может добавлять или удалять дополнительные функции HandlerRoutine, вызывая функцию SetConsoleCtrlHandler. Эта функция не влияет на списки обработчиков элементов управления для других процессов. Когда консольный процесс получает любой из сигналов управления, он вызывает функции обработчика на последней зарегистрированной, первой вызываемой основе, пока один из обработчиков не возвращает TRUE. Если ни один из обработчиков не возвращает значение TRUE, вызывается обработчик по умолчанию.

Параметр dwCtrlType функции определяет, какой сигнал управления был получен, а возвращаемое значение указывает, был ли обработан сигнал.

Новый поток запускается внутри клиентского процесса командной строки для запуска подпрограмм обработчика. Дополнительные сведения о значениях времени ожидания и действии этого потока см. в документации по функции HandlerRoutine.

Пример функции обработчика элементов управления см. в разделе "Регистрация функции обработчика элементов управления".

Обратите внимание, что вызов AttachConsole, AllocConsole или FreeConsole сбрасывает таблицу обработчиков элементов управления в процессе клиента в исходное состояние.