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