添加或删除應用程式定義的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