[BRANCHES]
[reactos.git] / reactos / dll / win32 / devmgr / precomp.h
1 #ifndef __DEVMGR_H
2 #define __DEVMGR_H
3
4 #include <stdarg.h>
5
6 #define WIN32_NO_STATUS
7 #include <windef.h>
8 #include <winbase.h>
9 #include <winreg.h>
10 #include <winnls.h>
11 #include <winuser.h>
12 #include <wchar.h>
13 #include <regstr.h>
14 #include <setupapi.h>
15 #include <cfgmgr32.h>
16 #include <dll/devmgr/devmgr.h>
17
18 #include "resource.h"
19
20 extern HINSTANCE hDllInstance;
21
22 ULONG DbgPrint(PCCH Format,...);
23
24 typedef INT_PTR (WINAPI *PPROPERTYSHEETW)(LPCPROPSHEETHEADERW);
25 typedef HPROPSHEETPAGE (WINAPI *PCREATEPROPERTYSHEETPAGEW)(LPCPROPSHEETPAGEW);
26 typedef BOOL (WINAPI *PDESTROYPROPERTYSHEETPAGE)(HPROPSHEETPAGE);
27
28 typedef struct _DEVADVPROP_INFO
29 {
30 HWND hWndGeneralPage;
31 HWND hWndParent;
32 WNDPROC ParentOldWndProc;
33 HICON hDevIcon;
34
35 HDEVINFO DeviceInfoSet;
36 SP_DEVINFO_DATA DeviceInfoData;
37 HDEVINFO CurrentDeviceInfoSet;
38 SP_DEVINFO_DATA CurrentDeviceInfoData;
39 DEVINST ParentDevInst;
40 HMACHINE hMachine;
41 LPCWSTR lpMachineName;
42
43 HINSTANCE hComCtl32;
44 PCREATEPROPERTYSHEETPAGEW pCreatePropertySheetPageW;
45 PDESTROYPROPERTYSHEETPAGE pDestroyPropertySheetPage;
46
47 DWORD PropertySheetType;
48 DWORD nDevPropSheets;
49 HPROPSHEETPAGE *DevPropSheets;
50
51 union
52 {
53 UINT Flags;
54 struct
55 {
56 UINT Extended : 1;
57 UINT FreeDevPropSheets : 1;
58 UINT CanDisable : 1;
59 UINT DeviceStarted : 1;
60 UINT DeviceUsageChanged : 1;
61 UINT CloseDevInst : 1;
62 UINT IsAdmin : 1;
63 UINT DoDefaultDevAction : 1;
64 UINT PageInitialized : 1;
65 UINT ShowRemotePages : 1;
66 UINT HasDriverPage : 1;
67 UINT HasResourcePage : 1;
68 UINT HasPowerPage : 1;
69 };
70 };
71
72 WCHAR szDevName[255];
73 WCHAR szTemp[255];
74 WCHAR szDeviceID[1];
75 /* struct may be dynamically expanded here! */
76 } DEVADVPROP_INFO, *PDEVADVPROP_INFO;
77
78
79 typedef struct _ENUMDRIVERFILES_CONTEXT
80 {
81 HWND hDriversListView;
82 UINT nCount;
83 } ENUMDRIVERFILES_CONTEXT, *PENUMDRIVERFILES_CONTEXT;
84
85 #define PM_INITIALIZE (WM_APP + 0x101)
86
87
88
89 /* HWRESOURCE.C */
90
91 INT_PTR
92 CALLBACK
93 ResourcesProcDriverDlgProc(IN HWND hwndDlg,
94 IN UINT uMsg,
95 IN WPARAM wParam,
96 IN LPARAM lParam);
97
98 /* ADVPROP.C */
99
100 INT_PTR
101 DisplayDeviceAdvancedProperties(IN HWND hWndParent,
102 IN LPCWSTR lpDeviceID OPTIONAL,
103 IN HDEVINFO DeviceInfoSet,
104 IN PSP_DEVINFO_DATA DeviceInfoData,
105 IN HINSTANCE hComCtl32,
106 IN LPCWSTR lpMachineName,
107 IN DWORD dwFlags);
108
109 /* DEVPRBLM.C */
110
111 BOOL
112 ShowDeviceProblemWizard(IN HWND hWndParent OPTIONAL,
113 IN HDEVINFO hDevInfo,
114 IN PSP_DEVINFO_DATA DevInfoData,
115 IN HMACHINE hMachine OPTIONAL);
116
117 /* MISC.C */
118
119
120 INT
121 LengthOfStrResource(IN HINSTANCE hInst,
122 IN UINT uID);
123
124 DWORD
125 LoadAndFormatString(IN HINSTANCE hInstance,
126 IN UINT uID,
127 OUT LPWSTR *lpTarget,
128 ...);
129
130 DWORD
131 LoadAndFormatStringsCat(IN HINSTANCE hInstance,
132 IN UINT *uID,
133 IN UINT nIDs,
134 OUT LPWSTR *lpTarget,
135 ...);
136
137 LPARAM
138 ListViewGetSelectedItemData(IN HWND hwnd);
139
140 LPWSTR
141 ConvertMultiByteToUnicode(IN LPCSTR lpMultiByteStr,
142 IN UINT uCodePage);
143
144 HINSTANCE
145 LoadAndInitComctl32(VOID);
146
147 BOOL
148 GetDeviceManufacturerString(IN HDEVINFO DeviceInfoSet,
149 IN PSP_DEVINFO_DATA DeviceInfoData,
150 OUT LPWSTR szBuffer,
151 IN DWORD BufferSize);
152
153 BOOL
154 GetDeviceLocationString(IN HDEVINFO DeviceInfoSet,
155 IN PSP_DEVINFO_DATA DeviceInfoData,
156 IN DEVINST dnParentDevInst OPTIONAL,
157 OUT LPWSTR szBuffer,
158 IN DWORD BufferSize);
159
160 BOOL
161 GetDeviceStatusString(IN DEVINST DevInst,
162 IN HMACHINE hMachine,
163 OUT LPWSTR szBuffer,
164 IN DWORD BufferSize);
165
166 BOOL
167 GetDriverProviderString(IN HDEVINFO DeviceInfoSet,
168 IN PSP_DEVINFO_DATA DeviceInfoData,
169 OUT LPWSTR szBuffer,
170 IN DWORD BufferSize);
171
172 BOOL
173 GetDriverVersionString(IN HDEVINFO DeviceInfoSet,
174 IN PSP_DEVINFO_DATA DeviceInfoData,
175 OUT LPWSTR szBuffer,
176 IN DWORD BufferSize);
177
178 BOOL
179 GetDriverDateString(IN HDEVINFO DeviceInfoSet,
180 IN PSP_DEVINFO_DATA DeviceInfoData,
181 OUT LPWSTR szBuffer,
182 IN DWORD BufferSize);
183
184 BOOL
185 IsDeviceHidden(IN DEVINST DevInst,
186 IN HMACHINE hMachine,
187 OUT BOOL *IsHidden);
188
189 BOOL
190 IsDriverInstalled(IN DEVINST DevInst,
191 IN HMACHINE hMachine,
192 OUT BOOL *Installed);
193
194 BOOL
195 CanDisableDevice(IN DEVINST DevInst,
196 IN HMACHINE hMachine,
197 OUT BOOL *CanDisable);
198
199 BOOL
200 IsDeviceStarted(IN DEVINST DevInst,
201 IN HMACHINE hMachine,
202 OUT BOOL *IsStarted);
203
204 BOOL
205 EnableDevice(IN HDEVINFO DeviceInfoSet,
206 IN PSP_DEVINFO_DATA DevInfoData OPTIONAL,
207 IN BOOL bEnable,
208 IN DWORD HardwareProfile OPTIONAL,
209 OUT BOOL *bNeedReboot OPTIONAL);
210
211 BOOL
212 GetDeviceTypeString(IN PSP_DEVINFO_DATA DeviceInfoData,
213 OUT LPWSTR szBuffer,
214 IN DWORD BufferSize);
215
216 BOOL
217 GetDeviceDescriptionString(IN HDEVINFO DeviceInfoSet,
218 IN PSP_DEVINFO_DATA DeviceInfoData,
219 OUT LPWSTR szBuffer,
220 IN DWORD BufferSize);
221
222 BOOL
223 FindCurrentDriver(IN HDEVINFO DeviceInfoSet,
224 IN PSP_DEVINFO_DATA DeviceInfoData,
225 OUT PSP_DRVINFO_DATA DriverInfoData);
226
227 #endif /* __DEVMGR_H */