函数原型: BOOL SetConsoleCtrlHandler( PHANDLER_ROUTINE HandlerRoutine, // 回调函数
BOOL Add // 表示添加还是删除);
功能:向系统添加或删除回调函数。
说明:利用它可以设置钩子函数,当控制台窗口发生事件时,事件首先发送给钩子函数,你可以在钩子函数中对事件处理。
例子:
BOOL CtrlHandler(DWORD fdwCtrlType)
{
switch (fdwCtrlType)
{
case CTRL_C_EVENT:
case CTRL_CLOSE_EVENT:
case CTRL_BREAK_EVENT:
case CTRL_LOGOFF_EVENT:
case CTRL_SHUTDOWN_EVENT:
return FALSE;
}
}
int __cdecl main( int nArgumentCount, LPCTSTR ArgumentStr[] )
{
BOOL fSuccess;
fSuccess = ::SetConsoleCtrlHandler( (PHANDLER_ROUTINE)CtrlHandler, TRUE);
if (! fSuccess)
{
fprintf( stderr, "Could not set control handler");
return ( 1 );
}
}