添加或删除应用程序定义的HandlerRoutine从调用进程的处理函数列表功能。
Win32 API
功能:
函数原型:
BOOL SetConsoleCtrlHandler(
PHANDLER_ROUTINE HandlerRoutine, // 回调函数
BOOL Add // 表示添加还是删除
);
返回值:BOOL类型
参数
参数HandlerRoutine:一个应用程序定义的指针HandlerRoutine 功能要添加或删除。 这个参数可以是NULL。
参数Add:如果此参数为TRUE,处理程序添加,如果是假的,该处理程序将被删除。
返回值:
如果函数失败,返回值为0.否则,返回一个非0值。 若想获得更多错误信息,调用GetLastError函数 。
说白了,就是一个系统调用。
第一个参数是函数指针,就是上面的那个函数。第二个参数是标志,如果为TRUE那么就安装钩子,如果为FALSE那么删除钩子。
利用Windows API 拦截Console的手动关闭事件的消息,来实现,下面我给出的是一个完整的事例:
参考:http://msdn.microsoft.com/en-us/library/ms686016(v=vs.85).aspx