home *** CD-ROM | disk | FTP | other *** search
- ///////////////////////////////////////////////////////////////////////
- //
- // TVSTACK.H
- //
- //
- // Copyright 1986-1996 Microsoft Corporation. All Rights Reserved.
- ///////////////////////////////////////////////////////////////////////
-
-
- #define StackSize 64
-
- class CTIStack
- {
-
- public:
- CTIStack() { m_ptos = m_ahti; m_pMax = m_ahti + StackSize - 1;}
- ~CTIStack() {};
-
- BOOL Push(HTREEITEM hti);
- HTREEITEM Pop(void);
- BOOL IsEmpty(void);
-
- private:
- HTREEITEM m_ahti[StackSize];
- HTREEITEM *m_ptos;
- HTREEITEM *m_pMax;
- };
-
- inline BOOL CTIStack::Push(HTREEITEM hti)
- {
- Assert(m_ptos >= m_ahti);
- Assert(m_ptos <= m_pMax);
-
- if(m_ptos == m_pMax)
- return FALSE;
-
- *m_ptos++ = hti;
- return TRUE;
- }
-
- inline BOOL CTIStack::IsEmpty(void)
- {
- Assert(m_ptos >= m_ahti);
- Assert(m_ptos <= m_pMax);
-
- return (m_ptos == m_ahti);
- }
-
- inline HTREEITEM CTIStack::Pop(void)
- {
- Assert(m_ptos > m_ahti);
- Assert(m_ptos <= m_pMax);
-
- if(m_ptos == m_ahti)
- return NULL;
-
- return *--m_ptos;
- }
-
-