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.

117 lines
3.9 KiB

  1. ////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // debug.c
  4. //
  5. ////////////////////////////////////////////////////////////////////////////////
  6. #include "priv.h"
  7. #pragma hdrstop
  8. #ifdef DEBUG
  9. #ifndef WINNT
  10. #include <windows.h>
  11. #include "debug.h"
  12. #endif
  13. void
  14. _Assert
  15. (DWORD dw, LPSTR lpszExp, LPSTR lpszFile, DWORD dwLine)
  16. {
  17. DWORD dwT;
  18. TCHAR lpszT[256];
  19. StringCchPrintf(lpszT, ARRAYSIZE(lpszT), TEXT("Assertion %hs Failed.\n\n%hs, line# %ld\n\nYes to continue, No to debug, Cancel to exit"), lpszExp, lpszFile, dwLine);
  20. dwT = MessageBox (GetFocus(), lpszT, TEXT("Assertion Failed!"), MB_YESNOCANCEL);
  21. switch (dwT)
  22. {
  23. case IDCANCEL :
  24. //exit (1);
  25. FatalExit(1);
  26. case IDNO :
  27. DebugTrap;
  28. }
  29. }
  30. void
  31. _AssertSz
  32. (DWORD dw, LPSTR lpszExp, LPTSTR lpsz, LPSTR lpszFile, DWORD dwLine)
  33. {
  34. DWORD dwT;
  35. TCHAR lpszT[512];
  36. StringCchPrintf(lpszT, ARRAYSIZE(lpszT), TEXT("Assertion %hs Failed.\n\n%s\n%hs, line# %ld\n\nYes to continue, No to debug, Cancel to exit"), lpszExp, lpsz, lpszFile, dwLine);
  37. dwT = MessageBox (GetFocus(), lpszT, TEXT("Assertion Failed!"), MB_YESNOCANCEL);
  38. switch (dwT)
  39. {
  40. case IDCANCEL:
  41. //exit (1);
  42. FatalExit(1);
  43. case IDNO :
  44. DebugTrap;
  45. }
  46. }
  47. #ifdef LOTS_O_DEBUG
  48. #include <windows.h>
  49. #include <winerror.h>
  50. #include <oleauto.h>
  51. #include "debug.h"
  52. void
  53. _DebugHr
  54. (HRESULT hr, LPTSTR lpszFile, DWORD dwLine)
  55. {
  56. TCHAR szHRESULT[512];
  57. switch (hr) {
  58. case S_OK :
  59. return;
  60. case STG_E_INVALIDNAME:
  61. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tBogus filename\n\n%s, line# %ld\n"),lpszFile, dwLine);
  62. break;
  63. case STG_E_INVALIDFUNCTION :
  64. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tInvalid Function\n\n%s, line# %ld\n"),lpszFile, dwLine);
  65. break;
  66. case STG_E_FILENOTFOUND:
  67. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tFile not found\n\n%s, line# %ld\n"),lpszFile, dwLine);
  68. break;
  69. case STG_E_INVALIDFLAG:
  70. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tBogus flag\n\n%s, line# %ld\n"),lpszFile, dwLine);
  71. break;
  72. case STG_E_INVALIDPOINTER:
  73. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tBogus pointer\n\n%s, line# %ld\n"),lpszFile, dwLine);
  74. break;
  75. case STG_E_ACCESSDENIED:
  76. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tAccess Denied\n\n%s, line# %ld\n"),lpszFile, dwLine);
  77. break;
  78. case STG_E_INSUFFICIENTMEMORY :
  79. case E_OUTOFMEMORY :
  80. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tInsufficient Memory\n\n%s, line# %ld\n"),lpszFile, dwLine);
  81. break;
  82. case E_INVALIDARG :
  83. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tInvalid argument\n\n%s, line# %ld\n"),lpszFile, dwLine);
  84. break;
  85. case TYPE_E_UNKNOWNLCID:
  86. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tUnknown LCID\n\n%s, line# %ld\n"),lpszFile, dwLine);
  87. break;
  88. case TYPE_E_CANTLOADLIBRARY:
  89. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tCan't load typelib or dll\n\n%s, line# %ld\n"),lpszFile, dwLine);
  90. break;
  91. case TYPE_E_INVDATAREAD:
  92. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tCan't read file\n\n%s, line# %ld\n"),lpszFile, dwLine);
  93. break;
  94. case TYPE_E_INVALIDSTATE:
  95. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tTypelib couldn't be opened\n\n%s, line# %ld\n"),lpszFile, dwLine);
  96. break;
  97. case TYPE_E_IOERROR:
  98. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tI/O error\n\n%s, line# %ld\n"),lpszFile, dwLine);
  99. break;
  100. default:
  101. StringCchPrintf(szHRESULT, ARRAYSIZE(szHRESULT), TEXT("\tUnknown HRESULT %lx (%ld) \n\n%s, line# %ld\n"),hr, hr, lpszFile, dwLine);
  102. }
  103. MessageBox (GetFocus(), szHRESULT, NULL, MB_OK);
  104. return;
  105. }
  106. #endif // LOTS_O_DEBUG
  107. #endif // DEBUG