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.
|
|
#ifndef __CCOOKIE__H__
#define __CCOOKIE_H__
/*++
Copyright (C) Microsoft Corporation
Module Name:
ccookie.h
Abstract:
definition and implementation for CCookie class
Author:
William Hsieh (williamh) created
Revision History:
--*/
class CCookie; class CResultItem; class CScopeItem;
class CCookie { public: CCookie(COOKIE_TYPE ct) : m_pScopeItem(NULL), m_pResultItem(NULL), m_Type(ct), m_pChild(NULL), m_pSibling(NULL), m_pParent(NULL), m_Flags(0), m_lParam(0) { }
~CCookie() { //
// Delete the subtree
//
if (m_pChild) { delete m_pChild; } if (m_pSibling) { delete m_pSibling; } } void SetScopeItem(CScopeItem* pScopeItem) { //
// Can only set it onece or memory leak could occur
//
ASSERT(NULL == m_pScopeItem); m_pScopeItem = pScopeItem; } void SetResultItem(CResultItem* pResultItem) { //
// Can only set once or memory leak could occur
//
ASSERT(NULL == m_pResultItem); m_pResultItem = pResultItem; } COOKIE_TYPE GetType() { return m_Type; } CScopeItem* GetScopeItem() { return m_pScopeItem; } CResultItem* GetResultItem() { return m_pResultItem; } CCookie* GetChild() { return m_pChild; } CCookie* GetSibling() { return m_pSibling; } CCookie* GetParent() { return m_pParent; } void SetChild(CCookie* pCookie) { m_pChild = pCookie; } void SetSibling(CCookie* pCookie) { m_pSibling = pCookie; } void SetParent(CCookie* pCookie) { m_pParent = pCookie; } BOOL IsScopeItem() { return (!m_pResultItem && m_pScopeItem); } DWORD IsFlagsOn(DWORD Flags) { return (m_Flags & Flags); } void TurnOnFlags(DWORD Flags) { m_Flags |= Flags; } void TurnOffFlags(DWORD Flags) { m_Flags &= ~Flags; } LPARAM m_lParam;
private: COOKIE_TYPE m_Type; CScopeItem* m_pScopeItem; CResultItem* m_pResultItem; CCookie* m_pParent; CCookie* m_pSibling; CCookie* m_pChild; DWORD m_Flags; }; #endif // __CCOOKIE_H__
|