cmperr.h 982 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #pragma once
  6. enum
  7. {
  8. #undef LSC_ERROR_MSG
  9. #define LSC_ERROR_MSG(err, name, str) name = MAKE_HR(err),
  10. #include "perrors.h"
  11. #undef LSC_ERROR_MSG
  12. MWUNUSED_ENUM
  13. };
  14. class ParseExceptionObject
  15. {
  16. public:
  17. ParseExceptionObject(HRESULT hr) : m_hr(hr) {}
  18. HRESULT GetError() { return m_hr; }
  19. private:
  20. HRESULT m_hr;
  21. };
  22. typedef void (*ErrorCallback)(void *data, HRESULT hr);
  23. class ErrHandler
  24. {
  25. public:
  26. HRESULT m_hr;
  27. void *m_data;
  28. ErrorCallback m_callback;
  29. __declspec(noreturn) void Throw(HRESULT hr);
  30. #if DEBUG
  31. BOOL fInited;
  32. ErrHandler()
  33. { fInited = FALSE; }
  34. #endif //DEBUG
  35. };