Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#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();
|