[DEVMGR]
[reactos.git] / reactos / dll / win32 / devmgr / devmgmt / DeviceNode.h
1 #pragma once
2 #include "Node.h"
3
4 class CDeviceNode : public CNode
5 {
6 private:
7 SP_DEVINFO_DATA m_DevinfoData;
8 HDEVINFO m_hDevInfo;
9 DEVINST m_DevInst;
10 ULONG m_Status;
11 ULONG m_ProblemNumber;
12 int m_OverlayImage;
13
14 public:
15 CDeviceNode(
16 _In_opt_ DEVINST Device,
17 _In_ PSP_CLASSIMAGELIST_DATA ImageListData
18 );
19
20 ~CDeviceNode();
21
22 virtual bool SetupNode();
23
24 DEVINST GetDeviceInst() { return m_DevInst; }
25 int GetOverlayImage() { return m_OverlayImage; }
26
27 bool HasProblem();
28 bool IsHidden();
29 bool CanDisable();
30 bool IsDisabled();
31 bool IsStarted();
32 bool IsInstalled();
33 bool CanUninstall();
34
35 bool EnableDevice(
36 _In_ bool Enable,
37 _Out_ bool &NeedsReboot
38 );
39
40 private:
41 void Cleanup(
42 );
43
44 bool SetFlags(
45 _In_ DWORD Flags,
46 _In_ DWORD FlagsEx
47 );
48
49 bool RemoveFlags(
50 _In_ DWORD Flags,
51 _In_ DWORD FlagsEx
52 );
53
54 DWORD GetFlags(
55 );
56 };
57