[CRT] crtdefs.h: Wrap localeinfo_struct in ifdef
[reactos.git] / dll / win32 / devmgr / devmgmt / DeviceNode.h
1 #pragma once
2 #include "Node.h"
3
4 enum IconOverlays
5 {
6 OverlayProblem = 1,
7 OverlayDisabled,
8 OverlayInfo
9 };
10
11 class CDeviceNode : public CNode
12 {
13 private:
14 SP_DEVINFO_DATA m_DevinfoData;
15 DEVINST m_DevInst;
16 HDEVINFO m_hDevInfo;
17
18 ULONG m_Status;
19 ULONG m_ProblemNumber;
20 int m_OverlayImage;
21
22 public:
23 CDeviceNode(
24 _In_opt_ DEVINST Device,
25 _In_ PSP_CLASSIMAGELIST_DATA ImageListData
26 );
27
28 ~CDeviceNode();
29
30 CDeviceNode(
31 _In_ const CDeviceNode &Node
32 );
33
34 virtual bool SetupNode();
35
36 DEVINST GetDeviceInst() { return m_DevInst; }
37 int GetOverlayImage() { return m_OverlayImage; }
38
39 bool HasProblem();
40 bool IsHidden();
41 bool CanDisable();
42 virtual bool IsDisabled();
43 bool IsStarted();
44 bool IsInstalled();
45 bool CanUninstall();
46 virtual bool CanUpdate() { return true; } // unimplemented
47
48 bool EnableDevice(
49 _In_ bool Enable,
50 _Out_ bool &NeedsReboot
51 );
52
53 bool UninstallDevice(
54 );
55
56 private:
57 void Cleanup(
58 );
59
60 bool SetFlags(
61 _In_ DWORD Flags,
62 _In_ DWORD FlagsEx
63 );
64
65 bool RemoveFlags(
66 _In_ DWORD Flags,
67 _In_ DWORD FlagsEx
68 );
69
70 DWORD GetFlags(
71 );
72 };
73