TRACES.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  File Name 
  4. //      TRACES.H
  5. //
  6. //  Description
  7. //      Function declaration for the API's in TRACES.CPP
  8. //
  9. //  Author
  10. //      Irving De la Cruz
  11. //
  12. //  Revision: 1.3
  13. //
  14. // Written for Microsoft Windows Developer Support
  15. // Copyright (c) 1994-1996 Microsoft Corporation. All rights reserved.
  16. //
  17. #ifndef _TRACES_H
  18. #define _TRACES_H
  19. ///////////////////////////////////////////////////////////////////////////////
  20. //  Function prototype for the debug functions used to trace and log output 
  21. //  messages
  22. //
  23. #include <OBJBASE.H>
  24. #define TRACES_CONSOLE              0x00000001
  25. #define TRACES_LOG_FILE             0x00000002
  26. #define TRACES_NO_COM_OUTPUT        0x00000004
  27. #define TRACES_NO_ASSERTS           0x00000008
  28. #define TRACES_NO_ASSERT_DIALOG     0x00000010
  29. #ifdef __cplusplus
  30. extern "C"
  31. {
  32. #endif // __cplusplus
  33. #ifdef ENABLE_DEBUG_OUTPUT
  34. void WINAPI InitTraces (DWORD dwFlags);
  35. void WINAPI UnInitTraces ();
  36. void WINAPI  TraceFn1 (LPSTR);
  37. void WINAPI  TraceFn2 (LPSTR, ULONG);
  38. void WINAPI  TraceFn3 (LPSTR);
  39. void __cdecl TraceFn4 (BOOL, LPSTR, ...);
  40. void WINAPI  TraceIO  (ULONG);
  41. void WINAPI  TraceIO2 (LPSTR, ULONG);
  42. #ifndef TRACES_NO_MAPI
  43. void WINAPI TraceProp (ULONG);
  44. #else
  45. #define TraceProp(a)
  46. #endif // TRACES_NO_MAPI
  47. #define TraceString1(a,b)           TraceFn4 (FALSE, a, b)
  48. #define TraceString2(a,b,c)         TraceFn4 (FALSE, a, b, c)
  49. #define TraceString3(a,b,c,d)       TraceFn4 (FALSE, a, b, c, d)
  50. #define TraceString4(a,b,c,d,e)     TraceFn4 (FALSE, a, b, c, d, e)
  51. #define TraceMessage(a)             TraceFn1 (a)
  52. #define TraceMessageIf(a, b)        {if (b) TraceFn1 (a); }
  53. #define TraceRaw(a)                 TraceFn3 (a)
  54. // These functions will trace only if the error is non-zero
  55. #define TraceRPCError(a,b)          {if (b) TraceFn4 (FALSE, "%s, RPC error: %d",a, b);}
  56. #define TraceSysError(a,b)          {if (b) TraceFn4 (FALSE, "%s, Systen Error: %d",a, b);}
  57. #define TraceResult(a, b)           {if (b) TraceFn2 (a, b);}
  58. #define TraceDebugger(a,b)          TraceFn4 (TRUE, a, b)
  59. void WINAPI AssertStatement (LPSTR, ULONG);
  60. void WINAPI AssertStatementWithMsg (LPSTR, LPSTR, ULONG);
  61. #ifndef ASSERT
  62. #define ASSERT(a)           {if (!(a)) AssertStatement (__FILE__, __LINE__);}
  63. #endif // ASSERT
  64. #define ASSERTMSG(a, b)     {if (!(a)) AssertStatementWithMsg (b, __FILE__, __LINE__);}
  65. #ifndef VERIFY
  66. #define VERIFY(a)       ASSERT(a)
  67. #endif // VERIFY
  68. #ifdef  DISABLE_INFO_TRACES
  69. #define TraceInfoMessage(a)
  70. #else  // DISABLE_INFO_TRACES
  71. #define TraceInfoMessage(a)     TraceFn1 (a)
  72. #endif // DISABLE_INFO_TRACES
  73. #else // ENABLE_DEBUG_OUTPUT
  74. #define TraceMessage(a)
  75. #define TraceMessageIf(a, b)
  76. #define TraceInfoMessage(a)
  77. #define TraceResult(a, b)
  78. #define TraceIO(a)              a
  79. #define TraceIO2(a, b)
  80. #define TraceProp(a)
  81. #define TraceRPCError(a,b)
  82. #define TraceSysError(a,b)
  83. #define TraceString1(a,b)
  84. #define TraceString2(a,b,c)
  85. #define TraceString3(a,b,c,d)
  86. #define TraceString4(a,b,c,d,e)
  87. #define TraceRaw(a)
  88. #define TraceDebugger(a,b)
  89. #ifndef ASSERT
  90. #define ASSERT(a)
  91. #endif // ASSERT
  92. #define ASSERTMSG(a, b)
  93. #ifndef VERIFY
  94. #define VERIFY(a)               a
  95. #endif // VERIFY
  96. #define InitTraces(a)
  97. #define UnInitTraces()
  98. #endif // ENABLE_DEBUG_OUTPUT
  99. #define AssertSz(a, b)      ASSERTMSG(a, b)
  100. #ifdef __cplusplus
  101. }
  102. #endif // __cplusplus
  103. #endif // _TRACES_H
  104. // End of file for TRACES.H