26 #ifndef INCLUDED_RegisterShutdownHandlerWin32_h_GUID_4D1BA155_D70B_4BAD_92AF_F20D02D911AA
27 #define INCLUDED_RegisterShutdownHandlerWin32_h_GUID_4D1BA155_D70B_4BAD_92AF_F20D02D911AA
29 #ifdef OSVR_USE_WIN32_SHUTDOWN_HANDLER
38 #define WIN32_LEAN_AND_MEAN
43 #ifndef OSVR_DOXYGEN_EXTERNAL
45 template <ShutdownHandler F>
46 BOOL WINAPI handlerWrapper(DWORD signalType) {
49 case CTRL_BREAK_EVENT:
50 case CTRL_CLOSE_EVENT:
51 case CTRL_LOGOFF_EVENT:
52 case CTRL_SHUTDOWN_EVENT:
60 #endif // #ifndef OSVR_DOXYGEN_EXTERNAL
67 template <ShutdownHandler F>
inline void registerShutdownHandler() {
68 SetConsoleCtrlHandler(&detail::handlerWrapper<F>, TRUE);
73 #endif // OSVR_USE_WIN32_SHUTDOWN_HANDLER
75 #endif // INCLUDED_RegisterShutdownHandlerWin32_h_GUID_4D1BA155_D70B_4BAD_92AF_F20D02D911AA