105 lines
2.6 KiB
C
105 lines
2.6 KiB
C
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Copyright (c) 1996 Microsoft Corporation
|
||
|
//
|
||
|
// Module Name:
|
||
|
// BaseCmdT.h
|
||
|
//
|
||
|
// Abstract:
|
||
|
// Definition of the CBaseCmdTarget class.
|
||
|
//
|
||
|
// Implementation File:
|
||
|
// BaseCmdT.cpp
|
||
|
//
|
||
|
// Author:
|
||
|
// David Potter (davidp) December 11, 1996
|
||
|
//
|
||
|
// Revision History:
|
||
|
//
|
||
|
// Notes:
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef _BASECMDT_H_
|
||
|
#define _BASECMDT_H_
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Include Files
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Forward Class Declarations
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
class CBaseCmdTarget;
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// External Class Declarations
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CBaseCmdTarget command target
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
class CBaseCmdTarget : public CCmdTarget
|
||
|
{
|
||
|
DECLARE_DYNCREATE(CBaseCmdTarget)
|
||
|
|
||
|
// Construction
|
||
|
public:
|
||
|
CBaseCmdTarget(void) { m_nReferenceCount = 0; } // protected constructor used by dynamic creation
|
||
|
|
||
|
// Attributes
|
||
|
protected:
|
||
|
ULONG m_nReferenceCount;
|
||
|
|
||
|
public:
|
||
|
ULONG NReferenceCount(void) const { return m_nReferenceCount; }
|
||
|
|
||
|
// Operations
|
||
|
public:
|
||
|
ULONG AddRef(void)
|
||
|
{
|
||
|
return ++m_nReferenceCount;
|
||
|
}
|
||
|
ULONG Release(void)
|
||
|
{
|
||
|
ULONG nReferenceCount;
|
||
|
|
||
|
ASSERT(m_nReferenceCount != 0);
|
||
|
|
||
|
nReferenceCount = --m_nReferenceCount;
|
||
|
if (m_nReferenceCount == 0)
|
||
|
delete this;
|
||
|
|
||
|
return nReferenceCount;
|
||
|
}
|
||
|
|
||
|
// Overrides
|
||
|
public:
|
||
|
// ClassWizard generated virtual function overrides
|
||
|
//{{AFX_VIRTUAL(CBaseCmdTarget)
|
||
|
//}}AFX_VIRTUAL
|
||
|
|
||
|
// Implementation
|
||
|
protected:
|
||
|
// Generated message map functions
|
||
|
//{{AFX_MSG(CBaseCmdTarget)
|
||
|
//}}AFX_MSG
|
||
|
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
|
||
|
}; //*** class CBaseCmdTarget
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Global Functions
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Global Variables
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#endif // _BASECMDT_H_
|