Reactos
1#pragma once
2
3#define DISPLAY_NAME_LEN 256
4
5enum NodeType
6{
7 RootNode,
8 ClassNode,
9 DeviceNode,
10 ResourceNode,
11 ResourceTypeNode
12};
13
14class CNode
15{
16protected:
17 NodeType m_NodeType;
18 PSP_CLASSIMAGELIST_DATA m_ImageListData;
19 LPWSTR m_DeviceId;
20 WCHAR m_DisplayName[DISPLAY_NAME_LEN];
21 GUID m_ClassGuid;
22 INT m_ClassImage;
23
24public:
25 CNode(
26 _In_ NodeType Type,
27 _In_ PSP_CLASSIMAGELIST_DATA ImageListData
28 );
29
30 CNode(
31 _In_ const CNode& Node
32 );
33
34 virtual ~CNode();
35
36 virtual bool SetupNode() = 0;
37
38 NodeType GetNodeType() { return m_NodeType; }
39 LPGUID GetClassGuid() { return &m_ClassGuid; }
40 LPWSTR GetDisplayName() { return m_DisplayName; }
41 INT GetClassImage() { return m_ClassImage; }
42 LPWSTR GetDeviceId() { return m_DeviceId; }
43 bool HasProperties() { return (m_DeviceId != NULL); }
44};
45