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.

100 lines
2.8 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000-2002 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // Logger.h
  7. //
  8. // Description:
  9. // ClCfgSrv Logger definition.
  10. //
  11. // Maintained By:
  12. // David Potter (DavidP) 11-DEC-2000
  13. //
  14. //////////////////////////////////////////////////////////////////////////////
  15. // Make sure that this file is included only once per compile path.
  16. #pragma once
  17. //////////////////////////////////////////////////////////////////////////////
  18. // Forward Class Definitions
  19. //////////////////////////////////////////////////////////////////////////////
  20. class CClCfgSrvLogger;
  21. //////////////////////////////////////////////////////////////////////////////
  22. // Constant Definitions
  23. //////////////////////////////////////////////////////////////////////////////
  24. //////////////////////////////////////////////////////////////////////////////
  25. //++
  26. //
  27. // class CClCfgSrvLogger
  28. //
  29. // Description:
  30. // Manages a logging stream to a file.
  31. //
  32. //--
  33. //////////////////////////////////////////////////////////////////////////////
  34. class CClCfgSrvLogger
  35. : public ILogger
  36. {
  37. private:
  38. // IUnknown
  39. LONG m_cRef; // Reference counter.
  40. private: // Methods
  41. //
  42. // Constructors, destructors, and initializers
  43. //
  44. CClCfgSrvLogger( void );
  45. ~CClCfgSrvLogger( void );
  46. STDMETHOD( HrInit )( void );
  47. // Private copy constructor to prevent copying.
  48. CClCfgSrvLogger( const CClCfgSrvLogger & );
  49. // Private assignment operator to prevent copying.
  50. CClCfgSrvLogger & operator=( const CClCfgSrvLogger & );
  51. public: // Methods
  52. //
  53. // Public, non interface methods.
  54. //
  55. static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
  56. static HRESULT
  57. S_HrLogStatusReport(
  58. ILogger * plLogger
  59. , LPCWSTR pcszNodeNameIn
  60. , CLSID clsidTaskMajorIn
  61. , CLSID clsidTaskMinorIn
  62. , ULONG ulMinIn
  63. , ULONG ulMaxIn
  64. , ULONG ulCurrentIn
  65. , HRESULT hrStatusIn
  66. , LPCWSTR pcszDescriptionIn
  67. , FILETIME * pftTimeIn
  68. , LPCWSTR pcszReferenceIn
  69. );
  70. //
  71. // IUnknown Interfaces
  72. //
  73. STDMETHOD( QueryInterface )( REFIID riidIn, void ** ppvOut );
  74. STDMETHOD_( ULONG, AddRef )( void );
  75. STDMETHOD_( ULONG, Release )( void );
  76. //
  77. // ILogger
  78. //
  79. STDMETHOD( LogMsg )( DWORD nLogEntryTypeIn, LPCWSTR pcszMsgIn );
  80. }; //*** class CClCfgSrvLogger
  81. //////////////////////////////////////////////////////////////////////////////
  82. // Global Function Prototypes
  83. //////////////////////////////////////////////////////////////////////////////