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.

104 lines
2.7 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1996 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // BaseCmdT.h
  7. //
  8. // Abstract:
  9. // Definition of the CBaseCmdTarget class.
  10. //
  11. // Implementation File:
  12. // BaseCmdT.cpp
  13. //
  14. // Author:
  15. // David Potter (davidp) December 11, 1996
  16. //
  17. // Revision History:
  18. //
  19. // Notes:
  20. //
  21. /////////////////////////////////////////////////////////////////////////////
  22. #ifndef _BASECMDT_H_
  23. #define _BASECMDT_H_
  24. /////////////////////////////////////////////////////////////////////////////
  25. // Include Files
  26. /////////////////////////////////////////////////////////////////////////////
  27. /////////////////////////////////////////////////////////////////////////////
  28. // Forward Class Declarations
  29. /////////////////////////////////////////////////////////////////////////////
  30. class CBaseCmdTarget;
  31. /////////////////////////////////////////////////////////////////////////////
  32. // External Class Declarations
  33. /////////////////////////////////////////////////////////////////////////////
  34. /////////////////////////////////////////////////////////////////////////////
  35. // CBaseCmdTarget command target
  36. /////////////////////////////////////////////////////////////////////////////
  37. class CBaseCmdTarget : public CCmdTarget
  38. {
  39. DECLARE_DYNCREATE(CBaseCmdTarget)
  40. // Construction
  41. public:
  42. CBaseCmdTarget(void) { m_nReferenceCount = 0; } // protected constructor used by dynamic creation
  43. // Attributes
  44. protected:
  45. ULONG m_nReferenceCount;
  46. public:
  47. ULONG NReferenceCount(void) const { return m_nReferenceCount; }
  48. // Operations
  49. public:
  50. ULONG AddRef(void)
  51. {
  52. return ++m_nReferenceCount;
  53. }
  54. ULONG Release(void)
  55. {
  56. ULONG nReferenceCount;
  57. ASSERT(m_nReferenceCount != 0);
  58. nReferenceCount = --m_nReferenceCount;
  59. if (m_nReferenceCount == 0)
  60. delete this;
  61. return nReferenceCount;
  62. }
  63. // Overrides
  64. public:
  65. // ClassWizard generated virtual function overrides
  66. //{{AFX_VIRTUAL(CBaseCmdTarget)
  67. //}}AFX_VIRTUAL
  68. // Implementation
  69. protected:
  70. // Generated message map functions
  71. //{{AFX_MSG(CBaseCmdTarget)
  72. //}}AFX_MSG
  73. DECLARE_MESSAGE_MAP()
  74. }; //*** class CBaseCmdTarget
  75. /////////////////////////////////////////////////////////////////////////////
  76. // Global Functions
  77. /////////////////////////////////////////////////////////////////////////////
  78. /////////////////////////////////////////////////////////////////////////////
  79. // Global Variables
  80. /////////////////////////////////////////////////////////////////////////////
  81. /////////////////////////////////////////////////////////////////////////////
  82. #endif // _BASECMDT_H_