[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 bool SetFlags(
42 _In_ DWORD Flags,
43 _In_ DWORD FlagsEx
44 );
45
46 bool RemoveFlags(
47 _In_ DWORD Flags,
48 _In_ DWORD FlagsEx
49 );
50
51 DWORD GetFlags(
52 );
53 };
54