2016-08-28 13:38:16 -04:00
|
|
|
|
2016-07-31 14:46:22 -04:00
|
|
|
|
|
|
|
namespace Components
|
|
|
|
{
|
|
|
|
class Exception : public Component
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
Exception();
|
2016-08-28 14:52:47 -04:00
|
|
|
~Exception();
|
2016-08-15 10:40:30 -04:00
|
|
|
|
2016-09-16 05:04:28 -04:00
|
|
|
#if defined(DEBUG) || defined(FORCE_UNIT_TESTS)
|
2016-08-27 12:18:03 -04:00
|
|
|
const char* GetName() { return "Exception"; };
|
2016-08-15 10:40:30 -04:00
|
|
|
#endif
|
2016-08-28 13:38:16 -04:00
|
|
|
static LPTOP_LEVEL_EXCEPTION_FILTER Hook();
|
2016-07-31 14:46:22 -04:00
|
|
|
|
|
|
|
private:
|
|
|
|
static LONG WINAPI ExceptionFilter(LPEXCEPTION_POINTERS ExceptionInfo);
|
|
|
|
static LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilterStub(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
|
|
|
|
|
2016-08-28 14:52:47 -04:00
|
|
|
static Utils::Hook SetFilterHook;
|
2016-07-31 14:46:22 -04:00
|
|
|
};
|
|
|
|
}
|