Leaked source code of windows server 2003
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.

67 lines
1.9 KiB

  1. //+--------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1997 - 1998.
  5. //
  6. // File: macros.hxx
  7. //
  8. // Contents: Miscellaneous useful macros
  9. //
  10. // History: 09-08-1997 DavidMun Created
  11. //
  12. //---------------------------------------------------------------------------
  13. #ifndef __MACROS_HXX__
  14. #define __MACROS_HXX__
  15. #define ARRAYLEN(a) (sizeof(a) / sizeof((a)[0]))
  16. #define CHECK_NULL(pwz) (pwz) ? (pwz) : L"NULL"
  17. #define BREAK_ON_FAIL_LRESULT(lr) \
  18. if ((lr) != ERROR_SUCCESS) \
  19. { \
  20. DBG_OUT_LRESULT(lr); \
  21. break; \
  22. }
  23. #define BREAK_ON_FAIL_HRESULT(hr) \
  24. if (FAILED(hr)) \
  25. { \
  26. DBG_OUT_HRESULT(hr); \
  27. break; \
  28. }
  29. #define BREAK_ON_FAIL_NTSTATUS(nts) \
  30. if (NT_ERROR(nts)) \
  31. { \
  32. DBG_OUT_HRESULT(nts); \
  33. break; \
  34. }
  35. #define BREAK_ON_FAIL_PROCESS_RESULT(npr) \
  36. if (NAME_PROCESSING_FAILED(npr)) \
  37. { \
  38. break; \
  39. }
  40. #define RETURN_ON_FAIL_HRESULT(hr) \
  41. if (FAILED(hr)) \
  42. { \
  43. DBG_OUT_HRESULT(hr); \
  44. return; \
  45. }
  46. #define RETURN_HR_ON_FAIL_HRESULT(hr) \
  47. if (FAILED(hr)) \
  48. { \
  49. DBG_OUT_HRESULT(hr); \
  50. return hr; \
  51. }
  52. #define HRESULT_FROM_LASTERROR HRESULT_FROM_WIN32(GetLastError())
  53. #endif // __MACROS_HXX__