windows-nt/Source/XPSP1/NT/net/config/inc/ncexcept.h

120 lines
2.9 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#ifndef DBG
#define NETCFG_TRY try {
#define NETCFG_CATCH(hr) ; } \
catch (bad_alloc a) \
{ \
hr = E_OUTOFMEMORY; \
} \
catch (HRESULT hrCaught) \
{ \
hr = hrCaught; \
} \
catch (...) \
{ \
hr = E_FAIL; \
}
#define NETCFG_CATCH_NOHR ; } \
catch (bad_alloc a) \
{ \
} \
catch (HRESULT hrCaught) \
{ \
}
#define NETCFG_CATCH_AND_RETHROW ; } \
catch (...) \
{ \
throw; \
}
#else // #ifndef DBG
#define NETCFG_TRY {
#define NETCFG_CATCH(hr) ; }
#define NETCFG_CATCH_NOHR ; }
#define NETCFG_CATCH_AND_RETHROW ; }
/*
#define NETCFG_CATCH(hr) ; } \
catch (bad_alloc a) \
{ \
hr = E_OUTOFMEMORY; \
TraceException(hr, "bad_alloc"); \
AssertSzWithDbgPromptIgnore(FALSE, "A bad_alloc exception occurred"); \
throw; \
} \
catch (HRESULT hrCaught) \
{ \
TraceException(hr, "HRESULT"); \
hr = hrCaught; \
CHAR szTemp[MAX_PATH]; \
sprintf(szTemp, "An HRESULT exception occurred (0x%08x)", hr); \
AssertSzWithDbgPromptIgnore(FALSE, szTemp); \
throw; \
} \
catch (...) \
{ \
TraceException(E_FAIL, "HRESULT"); \
hr = E_FAIL; \
AssertSzWithDbgPromptIgnore(FALSE, "A general exception occurred."); \
throw; \
}
#define NETCFG_CATCH_NOHR ; } \
catch (bad_alloc a) \
{ \
TraceException(E_OUTOFMEMORY, "bad_alloc"); \
AssertSzWithDbgPromptIgnore(FALSE, "A bad_alloc exception occurred"); \
throw; \
} \
catch (HRESULT hrCaught) \
{ \
TraceException(hrCaught, "HRESULT"); \
CHAR szTemp[MAX_PATH]; \
sprintf(szTemp, "An HRESULT exception occurred (0x%08x)", hrCaught); \
AssertSzWithDbgPromptIgnore(FALSE, szTemp); \
throw; \
}
#define NETCFG_CATCH_AND_RETHROW } \
catch (bad_alloc a) \
{ \
TraceException(E_OUTOFMEMORY, "bad_alloc"); \
AssertSzWithDbgPromptIgnore(FALSE, "A bad_alloc exception occurred"); \
throw; \
} \
catch (HRESULT hrCaught) \
{ \
TraceException(hrCaught, "HRESULT"); \
CHAR szTemp[MAX_PATH]; \
sprintf(szTemp, "An HRESULT exception occurred (0x%08x)", hrCaught); \
AssertSzWithDbgPromptIgnore(FALSE, szTemp); \
throw; \
} \
catch (...) \
{ \
TraceException(E_FAIL, "Unknown"); \
AssertSzWithDbgPromptIgnore(FALSE, "A bad_alloc exception occurred"); \
throw; \
}
*/
#endif // ifndef DBG
class NC_SEH_Exception
{
private:
unsigned int m_uSECode;
public:
NC_SEH_Exception(unsigned int uSECode) : m_uSECode(uSECode) {}
NC_SEH_Exception() {}
~NC_SEH_Exception() {}
unsigned int getSeHNumber() { return m_uSECode; }
};
void __cdecl nc_trans_func( unsigned int uSECode, EXCEPTION_POINTERS* pExp );
void EnableCPPExceptionHandling();
void DisableCPPExceptionHandling();