|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
HandlerRoutine
A HandlerRoutine function is a function that a console process specifies to handle control signals received by the process. The function can have any name.
BOOL HandlerRoutine(
DWORD dwCtrlType // control signal type );
Parameters
dwCtrlType
Indicates the type of control signal received by the handler. This value is one of the following:
Signal Description CTRL_C_EVENT A CTRL+C signal was received, either from keyboard input or from a signal generated by the GenerateConsoleCtrlEvent function. CTRL_BREAK_EVENT A CTRL+BREAK signal was received, either from keyboard input or from a signal generated by GenerateConsoleCtrlEvent. CTRL_CLOSE_EVENT A signal that the system sends to all processes attached to a console when the user closes the console (either by choosing the Close command from the console window's System menu, or by choosing the End Task command from the Task List). CTRL_LOGOFF_EVENT A signal that the system sends to all console processes when a user is logging off. This signal does not indicate which user is logging off, so no assumptions can be made. CTRL_SHUTDOWN_EVENT A signal that the system sends to all console processes when the system is shutting down.
Return Values
If the function handles the control signal, it should return TRUE. If it returns FALSE, the next handler function in the list of handlers for this process is used.
Remarks
Each console process has its own list of HandlerRoutine functions. Initially, this list contains only a default handler function that calls ExitProcess. A console process adds or removes additional handler functions by calling the SetConsoleCtrlHandler function, which does not affect the list of handler functions for other processes. When a console process receives any of the control signals, its handler functions are called on a last-registered, first-called basis until one of the handlers returns TRUE. If none of the handlers returns TRUE, the default handler is called.
The CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT signals give the process an opportunity to clean up before termination. A HandlerRoutine called to handle any of these signals can do one of the following after performing any cleanup operations:
· Call the ExitProcess function to terminate the process. · Return FALSE. If none of the registered handler functions returns TRUE, the default handler terminates the process. · Return TRUE. In this case, no other handler functions are called, and the system displays a pop-up dialog box that asks the user whether to terminate the process. The system also displays the dialog box if the process does not respond within a certain time-out period (5 seconds for CTRL_CLOSE_EVENT, and 20 seconds for CTRL_LOGOFF_EVENT and CTRL_SHUTDOWN_EVENT).
A process can use the SetProcessShutdownParameters function to prevent the CTRL_LOGOFF_EVENT and CTRL_SHUTDOWN_EVENT dialog box from being displayed. In this case, the system just terminates the process when a HandlerRoutine returns TRUE or when the time-out period elapses.
See Also
ExitProcess, GenerateConsoleCtrlEvent, GetProcessShutdownParameters, SetConsoleCtrlHandler, SetProcessShutdownParameters
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
HandlerRoutine
Функция HandlerRoutine является функцией, что консольный процесс определяет, чтобы оперировать управляющие сигналы получал процессом. Функция может иметь любое имя.
BOOL HandlerRoutine(
УПРАВЛЯЮЩИЙ сигнальный тип DWORD dwCtrlType // );
Параметры
dwCtrlType
Указывает тип управляющего сигнала полученного вручителем. Эта величина - одно из следующего:
Описание Сигнала CTRL_C_EVENT сигнал CTRL+C был получен, или с ввода данных с клавиатуры или с сигнала сгенерированного функцией GenerateConsoleCtrlEvent. CTRL_BREAK_EVENT сигнал CTRL+BREAK был получен, или с ввода данных с клавиатуры или с сигнала сгенерированного GenerateConsoleCtrlEvent. CTRL_CLOSE_EVENT сигнализировать, что система посылается во все процессы приложенные к консоли когда пользователь закрывает консоль (также выбирая Закрытую команду из меню Системы консольного окна, или выбирая Конечную команду Задачи из Списка Задачи). CTRL_LOGOFF_EVENT сигнализировать, что система посылается во все консольные процессы когда пользователь регистрируется. Этот сигнал не указывает, что какой пользователь регистрирует, так что никакие предположения не могут быть сделаны. CTRL_SHUTDOWN_EVENT сигнализировать, что система посылается во все консольные процессы когда система отключает.
Обратные Величины
Если функция оперирует управляющий сигнал, она должна возвращать ИСТИНУ. Если это возвращает ЛОЖЬ, следующая функция вручителя в списке вручителей для этого процесса использована.
Замечания
Каждый консольный процесс имеет собственный список функций HandlerRoutine. Первоначально, этот список содержит только по умолчанию функцию вручителя, которая называет ExitProcess. Консольный процесс добавляет или удаляет дополнительные функции вручителя вызывая функцию SetConsoleCtrlHandler, какое не влияет на список функций вручителя для других процессов. Когда консольный процесс получает любой из управляющих сигналов, функции вручителя посещены последний раз-зарегистрированное, сначала-назвавшее основу до одну из ИСТИНЫ возврата вручителей. Если ни одна из ИСТИНЫ возврата вручителей, по умолчанию вручитель назван.
CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, И сигналы CTRL_SHUTDOWN_EVENT дают процессу возможность наводить порядок перед завершением. HandlerRoutine Названное, чтобы оперировать любой из этих сигналов может делать одним из следующего после выполнения любых операций очистки:
Вызов функция ExitProcess, чтобы завершать процесс. Обратная ЛОЖЬ. Если ни один из возврата функций зарегистрированной ИСТИНЫ вручителя, по умолчанию вручитель завершает процесс. Обратная ИСТИНА. В этом случае, никакие другие функции вручителя не названы, и система отображает управляющего диалогового блока, который спрашивает пользователя завершать процесс. Система также отображает диалогового блока если процесс не отвечает в пределах определенного периода задержки (5 секунд для CTRL_CLOSE_EVENT, и 20 секунд для CTRL_LOGOFF_EVENT и CTRL_SHUTDOWN_EVENT).
Процесс может использовать функцию SetProcessShutdownParameters, чтобы предохранять CTRL_LOGOFF_EVENT и диалогового блока CTRL_SHUTDOWN_EVENT от отображенное. В этом случае, система просто завершает процесс когда ИСТИНА возврата HandlerRoutine или когда период задержки истекает.
Смотри Также
ExitProcess, GenerateConsoleCtrlEvent, GetProcessShutdownParameters, SetConsoleCtrlHandler, SetProcessShutdownParameters
|
|
|
|
| |