home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / winbase / winnt / perftool / perfdlls / perfgen / perfmsg.h < prev    next >
C/C++ Source or Header  |  1997-10-05  |  4KB  |  106 lines

  1. /*++ BUILD Version: 0001    // Increment this if a change has global effects
  2.  
  3. Copyright (c) 1995-1997 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     perfmsg.h  
  8.  
  9. Abstract:
  10.  
  11.     This file provides the macros and definitions used by the extensible
  12.     counters for reporting events to the event logging facility
  13.  
  14. Author:
  15.  
  16.     Bob Watson  28-Jul-1995
  17.  
  18. Revision History:
  19.  
  20.  
  21. --*/
  22. #ifndef  _PERFMSG_H_
  23. #define  _PERFMSG_H_
  24. //
  25. // Report error message ID's for Counters
  26. //
  27.  
  28. #define APP_NAME  "perfgen"
  29.  
  30. //
  31. // The constant below defines how many (if any) messages will be reported
  32. // to the event logger. As the number goes up in value more and more events
  33. // will be reported. The purpose of this is to allow lots of messages during
  34. // development and debugging (e.g. a message level of 3) to a minimum of
  35. // messages (e.g. operational messages with a level of 1) or no messages if
  36. // message logging inflicts too much of a performance penalty. Right now
  37. // this is a compile time constant, but could later become a registry entry.
  38. //
  39. //    Levels:  LOG_NONE = No event log messages ever
  40. //             LOG_USER = User event log messages (e.g. errors)
  41. //             LOG_DEBUG = Minimum Debugging 
  42. //             LOG_VERBOSE = Maximum Debugging 
  43. //
  44.  
  45. #define  LOG_NONE     0
  46. #define  LOG_USER     1
  47. #define  LOG_DEBUG    2
  48. #define  LOG_VERBOSE  3
  49.  
  50. #define  MESSAGE_LEVEL_DEFAULT  LOG_USER
  51.  
  52. // define macros
  53. //
  54. // Format for event log calls without corresponding insertion strings is:
  55. //    REPORT_xxx (message_value, message_level)
  56. //       where:   
  57. //          xxx is the severity to be displayed in the event log
  58. //          message_value is the numeric ID from above
  59. //          message_level is the "filtering" level of error reporting
  60. //             using the error levels above.
  61. //
  62. // if the message has a corresponding insertion string whose symbol conforms
  63. // to the format CONSTANT = numeric value and CONSTANT_S = string constant for
  64. // that message, then the 
  65. // 
  66. //    REPORT_xxx_STRING (message_value, message_level)
  67. //
  68. // macro may be used.
  69. //
  70.  
  71. //
  72. // REPORT_SUCCESS was intended to show Success in the error log, rather it
  73. // shows "N/A" so for now it's the same as information, though it could 
  74. // (should) be changed  in the future
  75. //
  76.  
  77.  
  78. #define REPORT_SUCCESS(i,l) (MESSAGE_LEVEL >= l ? ReportEvent (hEventLog, EVENTLOG_INFORMATION_TYPE, \
  79.    0, i, (PSID)NULL, 0, 0, NULL, (PVOID)NULL) : FALSE)
  80.  
  81. #define REPORT_INFORMATION(i,l) (MESSAGE_LEVEL >= l ? ReportEvent (hEventLog, EVENTLOG_INFORMATION_TYPE, \
  82.    0, i, (PSID)NULL, 0, 0, NULL, (PVOID)NULL) : FALSE)
  83.  
  84. #define REPORT_WARNING(i,l) (MESSAGE_LEVEL >= l ? ReportEvent (hEventLog, EVENTLOG_WARNING_TYPE, \
  85.    0, i, (PSID)NULL, 0, 0, NULL, (PVOID)NULL) : FALSE)
  86.  
  87. #define REPORT_ERROR(i,l) (MESSAGE_LEVEL >= l ? ReportEvent (hEventLog, EVENTLOG_ERROR_TYPE, \
  88.    0, i, (PSID)NULL, 0, 0, NULL, (PVOID)NULL) : FALSE)
  89.  
  90. #define REPORT_INFORMATION_DATA(i,l,d,s) (MESSAGE_LEVEL >= l ? ReportEvent (hEventLog, EVENTLOG_INFORMATION_TYPE, \
  91.    0, i, (PSID)NULL, 0, s, NULL, (PVOID)(d)) : FALSE)
  92.  
  93. #define REPORT_WARNING_DATA(i,l,d,s) (MESSAGE_LEVEL >= l ? ReportEvent (hEventLog, EVENTLOG_WARNING_TYPE, \
  94.    0, i, (PSID)NULL, 0, s, NULL, (PVOID)(d)) : FALSE)
  95.  
  96. #define REPORT_ERROR_DATA(i,l,d,s) (MESSAGE_LEVEL >= l ? ReportEvent (hEventLog, EVENTLOG_ERROR_TYPE, \
  97.    0, i, (PSID)NULL, 0, s, NULL, (PVOID)(d)) : FALSE)
  98.  
  99. // External Variables
  100.  
  101. extern HANDLE hEventLog;   // handle to event log
  102. extern DWORD  dwLogUsers;  // counter of event log using routines
  103. extern DWORD  MESSAGE_LEVEL; // event logging detail level
  104.  
  105. #endif //_PERFMSG_H_
  106.