mirror of https://github.com/tongzx/nt5src
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.
69 lines
2.0 KiB
69 lines
2.0 KiB
///////////////////////////////////////////////////////////////////////////////
|
|
// Declaration of class CFileNode
|
|
|
|
#ifndef __FILE_NODE__
|
|
#define __FILE_NODE__
|
|
|
|
#include "utils.h"
|
|
|
|
class CPNode
|
|
{
|
|
// Construction and Destruction
|
|
public:
|
|
CPNode(LPCTSTR szName );
|
|
virtual ~CPNode();
|
|
// Data members
|
|
protected:
|
|
TCHAR m_szName[MAX_PATH];
|
|
TCHAR m_szPath[MAX_PATH];
|
|
BOOL m_bRemovable;
|
|
CPNode *m_pNext;
|
|
// Operations
|
|
public:
|
|
HRESULT Insert(CPNode* pNewNode);
|
|
CPNode* GetNext() const;
|
|
HRESULT SetStr( LPTSTR lpszMember, LPCTSTR lpszNew);
|
|
HRESULT SetName(LPCTSTR lpszName) { return SetStr( m_szName, lpszName ); };
|
|
LPCTSTR GetName() const;
|
|
HRESULT SetPath(LPCTSTR lpszPath) { return SetStr( m_szPath, lpszPath ); };
|
|
LPCTSTR GetPath() const;
|
|
void SetRemovable( BOOL bRemovable ) { m_bRemovable = bRemovable; };
|
|
BOOL GetRemovable(void) { return m_bRemovable; };
|
|
};
|
|
|
|
class CPackageNode : public CPNode
|
|
{
|
|
// Construction and Destruction
|
|
public:
|
|
CPackageNode(LPCTSTR szName, LPCTSTR szNamespace = NULL, LPCTSTR szPath = NULL);
|
|
virtual ~CPackageNode();
|
|
// Data members
|
|
protected:
|
|
TCHAR m_szNamespace[MAX_PATH];
|
|
BOOL m_fIsSystemClass;
|
|
// Operations
|
|
public:
|
|
CPackageNode* GetNextPackageNode() const { return (CPackageNode *)m_pNext; };
|
|
HRESULT SetNamespace(LPCTSTR lpszNamespace) { return SetStr( m_szNamespace, lpszNamespace ); };
|
|
LPCTSTR GetNamespace() const;
|
|
HRESULT SetIsSystemClass(BOOL fIsSystemClass) { m_fIsSystemClass = fIsSystemClass; return S_OK; };
|
|
BOOL GetIsSystemClass() { return m_fIsSystemClass; };
|
|
};
|
|
|
|
class CFileNode : public CPNode
|
|
{
|
|
// Construction and Destruction
|
|
public:
|
|
CFileNode(LPCTSTR szName, LPCTSTR szSection, LPCTSTR szPath = NULL);
|
|
virtual ~CFileNode();
|
|
// Data members
|
|
protected:
|
|
TCHAR m_szSection[MAX_PATH];
|
|
// Operations
|
|
public:
|
|
CFileNode* GetNextFileNode() const { return (CFileNode *)m_pNext; };
|
|
HRESULT SetSection(LPCTSTR lpszSection) { return SetStr( m_szSection, lpszSection ); };
|
|
LPCTSTR GetSection() const;
|
|
};
|
|
|
|
#endif
|