028001b743acbfaa1d4e444ee50707d955ca8921
[reactos.git] / reactos / w32api / include / setupapi.h
1 #ifndef _SETUPAPI_H_
2 #define _SETUPAPI_H_
3 #if __GNUC__ >=3
4 #pragma GCC system_header
5 #endif
6
7 #include <commctrl.h>
8 #include <pshpack1.h>
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 #ifndef _SETUPAPI_
15 #define WINSETUPAPI DECLSPEC_IMPORT
16 #else
17 #define WINSETUPAPI
18 #endif
19
20 #define LINE_LEN 256
21 #define MAX_INF_STRING_LENGTH 4096
22 #define MAX_TITLE_LEN 60
23 #define MAX_INSTRUCTION_LEN 256
24 #define MAX_LABEL_LEN 30
25 #define MAX_SERVICE_NAME_LEN 256
26 #define MAX_SUBTITLE_LEN 256
27 #define SP_MAX_MACHINENAME_LENGTH (MAX_PATH + 3)
28
29 #define COPYFLG_WARN_IF_SKIP 0x00000001
30 #define COPYFLG_NOSKIP 0x00000002
31 #define COPYFLG_NOVERSIONCHECK 0x00000004
32 #define COPYFLG_FORCE_FILE_IN_USE 0x00000008
33 #define COPYFLG_NO_OVERWRITE 0x00000010
34 #define COPYFLG_NO_VERSION_DIALOG 0x00000020
35 #define COPYFLG_OVERWRITE_OLDER_ONLY 0x00000040
36 #define COPYFLG_REPLACEONLY 0x00000400
37 #define COPYFLG_NODECOMP 0x00000800
38 #define COPYFLG_REPLACE_BOOT_FILE 0x00001000
39 #define COPYFLG_NOPRUNE 0x00002000
40 #define DELFLG_IN_USE 0x00000001
41 #define DELFLG_IN_USE1 0x00010000
42 #define DI_REMOVEDEVICE_GLOBAL 0x00000001
43 #define DI_REMOVEDEVICE_CONFIGSPECIFIC 0x00000002
44 #define DI_UNREMOVEDEVICE_CONFIGSPECIFIC 0x00000002
45 #define DI_SHOWOEM 0x00000001
46 #define DI_SHOWCOMPAT 0x00000002
47 #define DI_SHOWCLASS 0x00000004
48 #define DI_SHOWALL 0x00000007
49 #define DI_NOVCP 0x00000008
50 #define DI_DIDCOMPAT 0x00000010
51 #define DI_DIDCLASS 0x00000020
52 #define DI_AUTOASSIGNRES 0x00000040
53 #define DI_NEEDRESTART 0x00000080
54 #define DI_NEEDREBOOT 0x00000100
55 #define DI_NOBROWSE 0x00000200
56 #define DI_MULTMFGS 0x00000400
57 #define DI_DISABLED 0x00000800
58 #define DI_GENERALPAGE_ADDED 0x00001000
59 #define DI_RESOURCEPAGE_ADDED 0x00002000
60 #define DI_PROPERTIES_CHANGE 0x00004000
61 #define DI_INF_IS_SORTED 0x00008000
62 #define DI_ENUMSINGLEINF 0x00010000
63 #define DI_DONOTCALLCONFIGMG 0x00020000
64 #define DI_INSTALLDISABLED 0x00040000
65 #define DI_COMPAT_FROM_CLASS 0x00080000
66 #define DI_CLASSINSTALLPARAMS 0x00100000
67 #define DI_NODI_DEFAULTACTION 0x00200000
68 #define DI_QUIETINSTALL 0x00800000
69 #define DI_NOFILECOPY 0x01000000
70 #define DI_FORCECOPY 0x02000000
71 #define DI_DRIVERPAGE_ADDED 0x04000000
72 #define DI_USECI_SELECTSTRINGS 0x08000000
73 #define DI_OVERRIDE_INFFLAGS 0x10000000
74 #define DI_PROPS_NOCHANGEUSAGE 0x20000000
75 #define DI_NOSELECTICONS 0x40000000
76 #define DI_NOWRITE_IDS 0x80000000
77 #define DI_FLAGSEX_USEOLDINFSEARCH 0x00000001
78 #define DI_FLAGSEX_AUTOSELECTRANK0 0x00000002
79 #define DI_FLAGSEX_CI_FAILED 0x00000004
80 #define DI_FLAGSEX_DIDINFOLIST 0x00000010
81 #define DI_FLAGSEX_DIDCOMPATINFO 0x00000020
82 #define DI_FLAGSEX_FILTERCLASSES 0x00000040
83 #define DI_FLAGSEX_SETFAILEDINSTALL 0x00000080
84 #define DI_FLAGSEX_DEVICECHANGE 0x00000100
85 #define DI_FLAGSEX_ALWAYSWRITEIDS 0x00000200
86 #define DI_FLAGSEX_PROPCHANGE_PENDING 0x00000400
87 #define DI_FLAGSEX_ALLOWEXCLUDEDDRVS 0x00000800
88 #define DI_FLAGSEX_NOUIONQUERYREMOVE 0x00001000
89 #define DI_FLAGSEX_USECLASSFORCOMPAT 0x00002000
90 #define DI_FLAGSEX_OLDINF_IN_CLASSLIST 0x00004000
91 #define DI_FLAGSEX_NO_DRVREG_MODIFY 0x00008000
92 #define DI_FLAGSEX_IN_SYSTEM_SETUP 0x00010000
93 #define DI_FLAGSEX_INET_DRIVER 0x00020000
94 #define DI_FLAGSEX_APPENDDRIVERLIST 0x00040000
95 #define DI_FLAGSEX_PREINSTALLBACKUP 0x00080000
96 #define DI_FLAGSEX_BACKUPONREPLACE 0x00100000
97 #define DI_FLAGSEX_DRIVERLIST_FROM_URL 0x00200000
98 #define DI_FLAGSEX_RESERVED1 0x00400000
99 #define DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS 0x00800000
100 #define DI_FLAGSEX_POWERPAGE_ADDED 0x01000000
101 #define DIBCI_NOINSTALLCLASS 0x00000001
102 #define DIBCI_NODISPLAYCLASS 0x00000002
103 #define DICD_GENERATE_ID 0x00000001
104 #define DICD_INHERIT_CLASSDRVS 0x00000002
105 #define DICS_ENABLE 1
106 #define DICS_FLAG_GLOBAL 1
107 #define DICS_DISABLE 2
108 #define DICS_FLAG_CONFIGSPECIFIC 2
109 #define DICS_PROPCHANGE 3
110 #define DICS_START 4
111 #define DICS_FLAG_CONFIGGENERAL 4
112 #define DICS_STOP 5
113 #define DIF_SELECTDEVICE 1
114 #define DIF_INSTALLDEVICE 2
115 #define DIF_ASSIGNRESOURCES 3
116 #define DIF_PROPERTIES 4
117 #define DIF_REMOVE 5
118 #define DIF_FIRSTTIMESETUP 6
119 #define DIF_FOUNDDEVICE 7
120 #define DIF_SELECTCLASSDRIVERS 8
121 #define DIF_VALIDATECLASSDRIVERS 9
122 #define DIF_INSTALLCLASSDRIVERS 10
123 #define DIF_CALCDISKSPACE 11
124 #define DIF_DESTROYPRIVATEDATA 12
125 #define DIF_VALIDATEDRIVER 13
126 #define DIF_MOVEDEVICE 14
127 #define DIF_DETECT 15
128 #define DIF_INSTALLWIZARD 16
129 #define DIF_DESTROYWIZARDDATA 17
130 #define DIF_PROPERTYCHANGE 18
131 #define DIF_ENABLECLASS 19
132 #define DIF_DETECTVERIFY 20
133 #define DIF_INSTALLDEVICEFILES 21
134 #define DIF_UNREMOVE 22
135 #define DIF_SELECTBESTCOMPATDRV 23
136 #define DIF_ALLOW_INSTALL 24
137 #define DIF_REGISTERDEVICE 25
138 #define DIF_NEWDEVICEWIZARD_PRESELECT 26
139 #define DIF_NEWDEVICEWIZARD_SELECT 27
140 #define DIF_NEWDEVICEWIZARD_PREANALYZE 28
141 #define DIF_NEWDEVICEWIZARD_POSTANALYZE 29
142 #define DIF_NEWDEVICEWIZARD_FINISHINSTALL 30
143 #define DIF_UNUSED1 31
144 #define DIF_INSTALLINTERFACES 32
145 #define DIF_DETECTCANCEL 33
146 #define DIF_REGISTER_COINSTALLERS 34
147 #define DIF_ADDPROPERTYPAGE_ADVANCED 35
148 #define DIF_ADDPROPERTYPAGE_BASIC 36
149 #define DIF_RESERVED1 37
150 #define DIF_TROUBLESHOOTER 38
151 #define DIF_POWERMESSAGEWAKE 39
152 #define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED 40
153 #define DIF_UPDATEDRIVER_UI 41
154 #define DIF_RESERVED2 42
155 #define DIGCDP_FLAG_BASIC 0x00000001
156 #define DIGCDP_FLAG_ADVANCED 0x00000002
157 #if (_SETUPAPI_VER >= 0x0501)
158 #define DIGCDP_FLAG_REMOTE_BASIC 0x00000003
159 #define DIGCDP_FLAG_REMOTE_ADVANCED 0x00000004
160 #endif
161 #define DIGCF_DEFAULT 0x00000001
162 #define DIGCF_PRESENT 0x00000002
163 #define DIGCF_ALLCLASSES 0x00000004
164 #define DIGCF_PROFILE 0x00000008
165 #define DIGCF_DEVICEINTERFACE 0x00000010
166 #define DIGCF_INTERFACEDEVICE 0x00000010
167 #define DIOCR_INSTALLER 0x00000001
168 #define DIOCR_INTERFACE 0x00000002
169 #define DIODI_NO_ADD 0x00000001
170 #define DIOD_INHERIT_CLASSDRVS 0x00000002
171 #define DIOD_CANCEL_REMOVE 0x00000004
172 #define DIREG_DEV 0x00000001
173 #define DIREG_DRV 0x00000002
174 #define DIREG_BOTH 0x00000004
175 #define DIRID_ABSOLUTE -1
176 #define DIRID_NULL 0
177 #define DIRID_SRCPATH 1
178 #define DIRID_WINDOWS 10
179 #define DIRID_SYSTEM 11
180 #define DIRID_DRIVERS 12
181 #define DIRID_INF 17
182 #define DIRID_HELP 18
183 #define DIRID_FONTS 20
184 #define DIRID_VIEWERS 21
185 #define DIRID_COLOR 23
186 #define DIRID_APPS 24
187 #define DIRID_SHARED 25
188 #define DIRID_BOOT 30
189 #define DIRID_SYSTEM16 50
190 #define DIRID_SPOOL 51
191 #define DIRID_SPOOLDRIVERS 52
192 #define DIRID_USERPROFILE 53
193 #define DIRID_LOADER 54
194 #define DIRID_PRINTPROCESSOR 55
195 #define DIRID_COMMON_STARTMENU 16406
196 #define DIRID_COMMON_PROGRAMS 16407
197 #define DIRID_COMMON_STARTUP 16408
198 #define DIRID_COMMON_DESKTOPDIRECTORY 16409
199 #define DIRID_COMMON_FAVORITES 16415
200 #define DIRID_COMMON_APPDATA 16419
201 #define DIRID_PROGRAM_FILES 16422
202 #define DIRID_SYSTEM_X86 16425
203 #define DIRID_PROGRAM_FILES_X86 16426
204 #define DIRID_PROGRAM_FILES_COMMON 16427
205 #define DIRID_PROGRAM_FILES_COMMONX86 16428
206 #define DIRID_COMMON_TEMPLATES 16429
207 #define DIRID_COMMON_DOCUMENTS 16430
208 #define DIRID_USER 0x8000
209 #define DIRID_ABSOLUTE_16BIT 0xffff
210 #define DIRID_IOSUBSYS DIRID_DRIVERS
211 #define DIRID_DEFAULT DIRID_SYSTEM
212 #define DMI_MASK 0x00000001
213 #define DMI_BKCOLOR 0x00000002
214 #define DMI_USERECT 0x00000004
215 #define DN_ROOT_ENUMERATED 0x00000001
216 #define DN_DRIVER_LOADED 0x00000002
217 #define DN_ENUM_LOADED 0x00000004
218 #define DN_STARTED 0x00000008
219 #define DN_MANUAL 0x00000010
220 #define DN_NEED_TO_ENUM 0x00000020
221 #define DN_NOT_FIRST_TIME 0x00000040
222 #define DN_HARDWARE_ENUM 0x00000080
223 #define DN_LIAR 0x00000100
224 #define DN_HAS_MARK 0x00000200
225 #define DN_HAS_PROBLEM 0x00000400
226 #define DN_FILTERED 0x00000800
227 #define DN_MOVED 0x00001000
228 #define DN_DISABLEABLE 0x00002000
229 #define DN_REMOVABLE 0x00004000
230 #define DN_PRIVATE_PROBLEM 0x00008000
231 #define DN_MF_PARENT 0x00010000
232 #define DN_MF_CHILD 0x00020000
233 #define DN_WILL_BE_REMOVED 0x00040000
234 #define DN_NOT_FIRST_TIMEE 0x00080000
235 #define DN_STOP_FREE_RES 0x00100000
236 #define DN_REBAL_CANDIDATE 0x00200000
237 #define DN_BAD_PARTIAL 0x00400000
238 #define DN_NT_ENUMERATOR 0x00800000
239 #define DN_NT_DRIVER 0x01000000
240 #define DN_NEEDS_LOCKING 0x02000000
241 #define DN_ARM_WAKEUP 0x04000000
242 #define DN_APM_ENUMERATOR 0x08000000
243 #define DN_APM_DRIVER 0x10000000
244 #define DN_SILENT_INSTALL 0x20000000
245 #define DN_NO_SHOW_IN_DM 0x40000000
246 #define DN_BOOT_LOG_PROB 0x80000000
247 #define DNF_DUPDESC 0x00000001
248 #define DNF_OLDDRIVER 0x00000002
249 #define DNF_EXCLUDEFROMLIST 0x00000004
250 #define DNF_NODRIVER 0x00000008
251 #define DNF_LEGACYINF 0x00000010
252 #define DNF_CLASS_DRIVER 0x00000020
253 #define DNF_COMPATIBLE_DRIVER 0x00000040
254 #define DNF_INET_DRIVER 0x00000080
255 #define DNF_UNUSED1 0x00000100
256 #define DNF_INDEXED_DRIVER 0x00000200
257 #define DNF_OLD_INET_DRIVER 0x00000400
258 #define DNF_BAD_DRIVER 0x00000800
259 #define DNF_DUPPROVIDER 0x00001000
260 #define DPROMPT_SUCCESS 0
261 #define DPROMPT_CANCEL 1
262 #define DPROMPT_SKIPFILE 2
263 #define DPROMPT_BUFFERTOOSMALL 3
264 #define DPROMPT_OUTOFMEMORY 4
265 #define DRIVER_HARDWAREID_RANK 0x00000FFF
266 #define DYNAWIZ_FLAG_PAGESADDED 0x00000001
267 #define DYNAWIZ_FLAG_INSTALLDET_NEXT 0x00000002
268 #define DYNAWIZ_FLAG_INSTALLDET_PREV 0x00000004
269 #define DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT 0x00000008
270 #define ENABLECLASS_QUERY 0
271 #define ENABLECLASS_SUCCESS 1
272 #define ENABLECLASS_FAILURE 2
273 #define ERROR_EXPECTED_SECTION_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0)
274 #define ERROR_BAD_SECTION_NAME_LINE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1)
275 #define ERROR_SECTION_NAME_TOO_LONG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2)
276 #define ERROR_GENERAL_SYNTAX (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3)
277 #define ERROR_WRONG_INF_STYLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100)
278 #define ERROR_NOT_INSTALLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000)
279 #define ERROR_SECTION_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101)
280 #define ERROR_LINE_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102)
281 #define ERROR_NO_BACKUP (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x103)
282 #define ERROR_NO_ASSOCIATED_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200)
283 #define ERROR_CLASS_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201)
284 #define ERROR_DUPLICATE_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202)
285 #define ERROR_NO_DRIVER_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203)
286 #define ERROR_KEY_DOES_NOT_EXIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204)
287 #define ERROR_INVALID_DEVINST_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205)
288 #define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206)
289 #define ERROR_DEVINST_ALREADY_EXISTS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207)
290 #define ERROR_DEVINFO_NOT_REGISTERED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208)
291 #define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209)
292 #define ERROR_NO_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A)
293 #define ERROR_NO_SUCH_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B)
294 #define ERROR_CANT_LOAD_CLASS_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C)
295 #define ERROR_INVALID_CLASS_INSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D)
296 #define ERROR_DI_DO_DEFAULT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E)
297 #define ERROR_DI_NOFILECOPY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F)
298 #define ERROR_INVALID_HWPROFILE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210)
299 #define ERROR_NO_DEVICE_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211)
300 #define ERROR_DEVINFO_LIST_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212)
301 #define ERROR_DEVINFO_DATA_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213)
302 #define ERROR_DI_BAD_PATH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214)
303 #define ERROR_NO_CLASSINSTALL_PARAMS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215)
304 #define ERROR_FILEQUEUE_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216)
305 #define ERROR_BAD_SERVICE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217)
306 #define ERROR_NO_CLASS_DRIVER_LIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218)
307 #define ERROR_NO_ASSOCIATED_SERVICE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219)
308 #define ERROR_NO_DEFAULT_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A)
309 #define ERROR_DEVICE_INTERFACE_ACTIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B)
310 #define ERROR_DEVICE_INTERFACE_REMOVED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C)
311 #define ERROR_BAD_INTERFACE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D)
312 #define ERROR_NO_SUCH_INTERFACE_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E)
313 #define ERROR_INVALID_REFERENCE_STRING (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F)
314 #define ERROR_INVALID_MACHINENAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220)
315 #define ERROR_REMOTE_COMM_FAILURE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221)
316 #define ERROR_MACHINE_UNAVAILABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222)
317 #define ERROR_NO_CONFIGMGR_SERVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223)
318 #define ERROR_INVALID_PROPPAGE_PROVIDER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224)
319 #define ERROR_NO_SUCH_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225)
320 #define ERROR_DI_POSTPROCESSING_REQUIRED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226)
321 #define ERROR_INVALID_COINSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227)
322 #define ERROR_NO_COMPAT_DRIVERS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228)
323 #define ERROR_NO_DEVICE_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229)
324 #define ERROR_INVALID_INF_LOGCONFIG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A)
325 #define ERROR_DI_DONT_INSTALL (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B)
326 #define ERROR_INVALID_FILTER_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C)
327 #define ERROR_NON_WINDOWS_NT_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22D)
328 #define ERROR_NON_WINDOWS_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22E)
329 #define ERROR_NO_CATALOG_FOR_OEM_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22F)
330 #define ERROR_DEVINSTALL_QUEUE_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x230)
331 #define ERROR_NOT_DISABLEABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x231)
332 #define ERROR_CANT_REMOVE_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x232)
333 #define ERROR_INTERFACE_DEVICE_ACTIVE ERROR_DEVICE_INTERFACE_ACTIVE
334 #define ERROR_INTERFACE_DEVICE_REMOVED ERROR_DEVICE_INTERFACE_REMOVED
335 #define ERROR_NO_DEFAULT_INTERFACE_DEVICE ERROR_NO_DEFAULT_DEVICE_INTERFACE
336 #define ERROR_NO_SUCH_INTERFACE_DEVICE ERROR_NO_SUCH_DEVICE_INTERFACE
337
338 #define FILEOP_COPY 0
339 #define FILEOP_ABORT 0
340 #define FILE_COMPRESSION_NONE 0
341 #define FILEOP_RENAME 1
342 #define FILEOP_DOIT 1
343 #define FILE_COMPRESSION_WINLZA 1
344 #define FILEOP_DELETE 2
345 #define FILEOP_SKIP 2
346 #define FILE_COMPRESSION_MSZIP 2
347 #define FILEOP_BACKUP 3
348 #define FILE_COMPRESSION_NTCAB 3
349 #define FILEOP_NEWPATH 4
350 #define FILEOP_RETRY FILEOP_DOIT
351 #define FLG_ADDREG_TYPE_SZ 0x00000000
352 #define FLG_ADDREG_BINVALUETYPE 0x00000001
353 #define FLG_ADDREG_NOCLOBBER 0x00000002
354 #define FLG_ADDREG_DELVAL 0x00000004
355 #define FLG_ADDREG_APPEND 0x00000008
356 #define FLG_ADDREG_KEYONLY 0x00000010
357 #define FLG_ADDREG_OVERWRITEONLY 0x00000020
358 #if (_SETUPAPI_VER >= 0x0501)
359 #define FLG_ADDREG_64BITKEY 0x00001000
360 #define FLG_ADDREG_KEYONLY_COMMON 0x00002000
361 #define FLG_ADDREG_32BITKEY 0x00004000
362 #define FLG_ADDREG_DELREG_BIT 0x00008000
363 #endif
364 #define FLG_ADDREG_TYPE_MULTI_SZ 0x00010000
365 #define FLG_ADDREG_TYPE_EXPAND_SZ 0x00020000
366 #define FLG_ADDREG_TYPE_BINARY (0x00000000|FLG_ADDREG_BINVALUETYPE)
367 #define FLG_ADDREG_TYPE_DWORD (0x00010000|FLG_ADDREG_BINVALUETYPE)
368 #define FLG_ADDREG_TYPE_NONE (0x00020000|FLG_ADDREG_BINVALUETYPE)
369 #define FLG_ADDREG_TYPE_MASK (0xFFFF0000|FLG_ADDREG_BINVALUETYPE)
370 #define FLG_DELREG_VALUE 0x00000000
371 #if (_SETUPAPI_VER >= 0x0501)
372 #define FLG_DELREG_TYPE_MASK FLG_ADDREG_TYPE_MASK
373 #define FLG_DELREG_TYPE_SZ FLG_ADDREG_TYPE_SZ
374 #define FLG_DELREG_TYPE_MULTI_SZ FLG_ADDREG_TYPE_MULTI_SZ
375 #define FLG_DELREG_TYPE_EXPAND_SZ FLG_ADDREG_TYPE_EXPAND_SZ
376 #define FLG_DELREG_TYPE_BINARY FLG_ADDREG_TYPE_BINARY
377 #define FLG_DELREG_TYPE_DWORD FLG_ADDREG_TYPE_DWORD
378 #define FLG_DELREG_TYPE_NONE FLG_ADDREG_TYPE_NONE
379 #define FLG_DELREG_64BITKEY FLG_ADDREG_64BITKEY
380 #define FLG_DELREG_KEYONLY_COMMON FLG_ADDREG_KEYONLY_COMMON
381 #define FLG_DELREG_32BITKEY FLG_ADDREG_32BITKEY
382 #define FLG_DELREG_OPERATION_MASK 0x000000FE
383 #define FLG_DELREG_MULTI_SZ_DELSTRING (0x00000002|FLG_DELREG_TYPE_MULTI_SZ|FLG_ADDREG_DELREG_BIT)
384 #endif
385 #define FLG_BITREG_CLEARBITS 0x00000000
386 #define FLG_BITREG_SETBITS 0x00000001
387 #define FLG_PROFITEM_CURRENTUSER 0x00000001
388 #define FLG_PROFITEM_DELETE 0x00000002
389 #define FLG_PROFITEM_GROUP 0x00000004
390 #define FLG_PROFITEM_CSIDL 0x00000008
391 #define FLG_REGSVR_DLLREGISTER 0x00000001
392 #define FLG_REGSVR_DLLINSTALL 0x00000002
393 #define MIN_IDD_DYNAWIZ_RESOURCE_ID 10000
394 #define MAX_IDD_DYNAWIZ_RESOURCE_ID 11000
395 #define IDD_DYNAWIZ_FIRSTPAGE 10000
396 #define IDD_DYNAWIZ_SELECT_PREVPAGE 10001
397 #define IDD_DYNAWIZ_SELECT_NEXTPAGE 10002
398 #define IDD_DYNAWIZ_ANALYZE_PREVPAGE 10003
399 #define IDD_DYNAWIZ_ANALYZE_NEXTPAGE 10004
400 #define IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE 10006
401 #define IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE 10007
402 #define IDD_DYNAWIZ_INSTALLDETECTED_NODEVS 10008
403 #define IDD_DYNAWIZ_SELECTDEV_PAGE 10009
404 #define IDD_DYNAWIZ_ANALYZEDEV_PAGE 10010
405 #define IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE 10011
406 #define IDD_DYNAWIZ_SELECTCLASS_PAGE 10012
407 #define IDF_NOBROWSE 0x00000001
408 #define IDF_NOSKIP 0x00000002
409 #define IDF_NODETAILS 0x00000004
410 #define IDF_NOCOMPRESSED 0x00000008
411 #define IDF_CHECKFIRST 0x00000100
412 #define IDF_NOBEEP 0x00000200
413 #define IDF_NOFOREGROUND 0x00000400
414 #define IDF_WARNIFSKIP 0x00000800
415 #define IDF_OEMDISK 0x80000000
416 #define IDI_RESOURCEFIRST 159
417 #define IDI_RESOURCE 159
418 #define IDI_RESOURCELAST 161
419 #define IDI_RESOURCEOVERLAYFIRST 161
420 #define IDI_RESOURCEOVERLAYLAST 161
421 #define IDI_CONFLICT 161
422 #define IDI_PROBLEM_OVL 500
423 #define IDI_DISABLED_OVL 501
424 #define IDI_FORCED_OVL 502
425 #define IDI_CLASSICON_OVERLAYFIRST 500
426 #define IDI_CLASSICON_OVERLAYLAST 502
427 #define INF_STYLE_NONE 0x00000000
428 #define INF_STYLE_OLDNT 0x00000001
429 #define INF_STYLE_WIN4 0x00000002
430 #define INF_STYLE_CACHE_ENABLE 0x00000010
431 #define INF_STYLE_CACHE_DISABLE 0x00000020
432 #define INFINFO_INF_SPEC_IS_HINF 1
433 #define INFINFO_INF_NAME_IS_ABSOLUTE 2
434 #define INFINFO_DEFAULT_SEARCH 3
435 #define INFINFO_REVERSE_DEFAULT_SEARCH 4
436 #define INFINFO_INF_PATH_LIST_SEARCH 5
437 #define LogSevInformation 0
438 #define LogSevWarning 1
439 #define LogSevError 2
440 #define LogSevFatalError 3
441 #define LogSevMaximum 4
442 #define LogSeverity DWORD
443 #define MAX_INSTALLWIZARD_DYNAPAGES 20
444 #define NDW_INSTALLFLAG_DIDFACTDEFS 0x00000001
445 #define NDW_INSTALLFLAG_HARDWAREALLREADYIN 0x00000002
446 #define NDW_INSTALLFLAG_NEEDSHUTDOWN 0x00000200
447 #define NDW_INSTALLFLAG_EXPRESSINTRO 0x00000400
448 #define NDW_INSTALLFLAG_SKIPISDEVINSTALLED 0x00000800
449 #define NDW_INSTALLFLAG_NODETECTEDDEVS 0x00001000
450 #define NDW_INSTALLFLAG_INSTALLSPECIFIC 0x00002000
451 #define NDW_INSTALLFLAG_SKIPCLASSLIST 0x00004000
452 #define NDW_INSTALLFLAG_CI_PICKED_OEM 0x00008000
453 #define NDW_INSTALLFLAG_PCMCIAMODE 0x00010000
454 #define NDW_INSTALLFLAG_PCMCIADEVICE 0x00020000
455 #define NDW_INSTALLFLAG_USERCANCEL 0x00040000
456 #define NDW_INSTALLFLAG_KNOWNCLASS 0x00080000
457 #define NDW_INSTALLFLAG_NEEDRESTART 0x00000080
458 #define NDW_INSTALLFLAG_NEEDREBOOT 0x00000100
459 #define SETDIRID_NOT_FULL_PATH 0x00000001
460 #define SP_COPY_DELETESOURCE 0x0000001
461 #define SP_COPY_REPLACEONLY 0x0000002
462 #define SP_COPY_NEWER 0x0000004
463 #define SP_COPY_NEWER_OR_SAME 0x0000004
464 #define SP_COPY_NOOVERWRITE 0x0000008
465 #define SP_COPY_NODECOMP 0x0000010
466 #define SP_COPY_LANGUAGEAWARE 0x0000020
467 #define SP_COPY_SOURCE_ABSOLUTE 0x0000040
468 #define SP_COPY_SOURCEPATH_ABSOLUTE 0x0000080
469 #define SP_COPY_IN_USE_NEEDS_REBOOT 0x0000100
470 #define SP_COPY_FORCE_IN_USE 0x0000200
471 #define SP_COPY_NOSKIP 0x0000400
472 #define SP_COPY_FORCE_NOOVERWRITE 0x0001000
473 #define SP_COPY_FORCE_NEWER 0x0002000
474 #define SP_COPY_WARNIFSKIP 0x0004000
475 #define SP_COPY_NOBROWSE 0x0008000
476 #define SP_COPY_NEWER_ONLY 0x0010000
477 #define SP_COPY_SOURCE_SIS_MASTER 0x0020000
478 #define SP_COPY_OEMINF_CATALOG_ONLY 0x0040000
479 #define SP_COPY_REPLACE_BOOT_FILE 0x0080000
480 #define SP_COPY_NOPRUNE 0x0100000
481 #define SP_FLAG_CABINETCONTINUATION 0x0000800
482 #define SPCRP_SECURITY 23
483 #define SPCRP_SECURITY_SDS 24
484 #define SPCRP_DEVTYPE 25
485 #define SPCRP_EXCLUSIVE 26
486 #define SPCRP_CHARACTERISTICS 27
487 #define SPCRP_MAXIMUM_PROPERTY 28
488 #define SPDIT_NODRIVER 0
489 #define SPDIT_CLASSDRIVER 1
490 #define SPDIT_COMPATDRIVER 2
491 #define SPDRP_DEVICEDESC 0
492 #define SPDRP_HARDWAREID 1
493 #define SPDRP_COMPATIBLEIDS 2
494 #define SPDRP_UNUSED0 3
495 #define SPDRP_SERVICE 4
496 #define SPDRP_UNUSED1 5
497 #define SPDRP_UNUSED2 6
498 #define SPDRP_CLASS 7
499 #define SPDRP_CLASSGUID 8
500 #define SPDRP_DRIVER 9
501 #define SPDRP_CONFIGFLAGS 10
502 #define SPDRP_MFG 11
503 #define SPDRP_FRIENDLYNAME 12
504 #define SPDRP_LOCATION_INFORMATION 13
505 #define SPDRP_PHYSICAL_DEVICE_OBJECT_NAME 14
506 #define SPDRP_CAPABILITIES 15
507 #define SPDRP_UI_NUMBER 16
508 #define SPDRP_UPPERFILTERS 17
509 #define SPDRP_LOWERFILTERS 18
510 #define SPDRP_BUSTYPEGUID 19
511 #define SPDRP_LEGACYBUSTYPE 20
512 #define SPDRP_BUSNUMBER 21
513 #define SPDRP_ENUMERATOR_NAME 22
514 #define SPDRP_SECURITY 23
515 #define SPDRP_SECURITY_SDS 24
516 #define SPDRP_DEVTYPE 25
517 #define SPDRP_EXCLUSIVE 26
518 #define SPDRP_CHARACTERISTICS 27
519 #define SPDRP_ADDRESS 28
520 #define SPDRP_UI_NUMBER_DESC_FORMAT 30
521 #define SPDRP_MAXIMUM_PROPERTY 31
522 #define SPDSL_IGNORE_DISK 1
523 #define SPDSL_DISALLOW_NEGATIVE_ADJUST 2
524
525 #define SPFILENOTIFY_STARTQUEUE 1
526 #define SPFILENOTIFY_ENDQUEUE 2
527 #define SPFILENOTIFY_STARTSUBQUEUE 3
528 #define SPFILENOTIFY_ENDSUBQUEUE 4
529 #define SPFILENOTIFY_STARTDELETE 5
530 #define SPFILENOTIFY_ENDDELETE 6
531 #define SPFILENOTIFY_DELETEERROR 7
532 #define SPFILENOTIFY_STARTRENAME 8
533 #define SPFILENOTIFY_ENDRENAME 9
534 #define SPFILENOTIFY_RENAMEERROR 10
535 #define SPFILENOTIFY_STARTCOPY 11
536 #define SPFILENOTIFY_ENDCOPY 12
537 #define SPFILENOTIFY_COPYERROR 13
538 #define SPFILENOTIFY_NEEDMEDIA 14
539 #define SPFILENOTIFY_QUEUESCAN 15
540 #define SPFILENOTIFY_CABINETINFO 16
541 #define SPFILENOTIFY_FILEINCABINET 17
542 #define SPFILENOTIFY_NEEDNEWCABINET 18
543 #define SPFILENOTIFY_FILEEXTRACTED 19
544 #define SPFILENOTIFY_FILEOPDELAYED 20
545 #define SPFILENOTIFY_STARTBACKUP 21
546 #define SPFILENOTIFY_BACKUPERROR 22
547 #define SPFILENOTIFY_ENDBACKUP 23
548 #define SPFILENOTIFY_QUEUESCAN_EX 24
549 #define SPFILENOTIFY_STARTREGISTRATION 25
550 #define SPFILENOTIFY_ENDREGISTRATION 26
551 #define SPFILENOTIFY_LANGMISMATCH 0x00010000
552 #define SPFILENOTIFY_TARGETEXISTS 0x00020000
553 #define SPFILENOTIFY_TARGETNEWER 0x00040000
554 #define SPFILELOG_SYSTEMLOG 0x00000001
555 #define SPFILELOG_OEMFILE 0x00000001
556 #define SPFILELOG_FORCENEW 0x00000002
557 #define SPFILELOG_QUERYONLY 0x00000004
558 #define SPFILEQ_FILE_IN_USE 0x00000001
559 #define SPFILEQ_REBOOT_RECOMMENDED 0x00000002
560 #define SPFILEQ_REBOOT_IN_PROGRESS 0x00000004
561 #define SPINT_ACTIVE 0x00000001
562 #define SPINT_DEFAULT 0x00000002
563 #define SPINT_REMOVED 0x00000004
564 #define SPID_ACTIVE 0x00000001
565 #define SPID_DEFAULT 0x00000002
566 #define SPID_REMOVED 0x00000004
567 #define SPINST_LOGCONFIG 0x00000001
568 #define SPINST_INIFILES 0x00000002
569 #define SPINST_REGISTRY 0x00000004
570 #define SPINST_INI2REG 0x00000008
571 #define SPINST_FILES 0x00000010
572 #define SPINST_BITREG 0x00000020
573 #define SPINST_REGSVR 0x00000040
574 #define SPINST_UNREGSVR 0x00000080
575 #define SPINST_PROFILEITEMS 0x00000100
576 #if (_SETUPAPI_VER >= 0x0501)
577 #define SPINST_COPYINF 0x00000200
578 #define SPINST_ALL 0x000003ff
579 #else
580 #define SPINST_ALL 0x000001ff
581 #endif
582 #define SPINST_SINGLESECTION 0x00010000
583 #define SPINST_LOGCONFIG_IS_FORCED 0x00020000
584 #define SPINST_LOGCONFIGS_ARE_OVERRIDES 0x00040000
585 #if (_SETUPAPI_VER >= 0x0501)
586 #define SPINST_REGISTERCALLBACKAWARE 0x00080000
587 #endif
588 #define SPOST_NONE 0
589 #define SPOST_PATH 1
590 #define SPOST_URL 2
591 #define SPOST_MAX 3
592 #define SPPSR_SELECT_DEVICE_RESOURCES 1
593 #define SPPSR_ENUM_BASIC_DEVICE_PROPERTIES 2
594 #define SPPSR_ENUM_ADV_DEVICE_PROPERTIES 3
595 #define SPQ_SCAN_FILE_PRESENCE 0x00000001
596 #define SPQ_DELAYED_COPY 0x00000001
597 #define SPQ_SCAN_FILE_VALIDITY 0x00000002
598 #define SPQ_SCAN_USE_CALLBACK 0x00000004
599 #define SPQ_SCAN_USE_CALLBACKEX 0x00000008
600 #define SPQ_SCAN_INFORM_USER 0x00000010
601 #define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020
602 #define SPRDI_FIND_DUPS 0x00000001
603 #define SPSVCINST_TAGTOFRONT 0x00000001
604 #define SPSVCINST_ASSOCSERVICE 0x00000002
605 #define SPSVCINST_DELETEEVENTLOGENTRY 0x00000004
606 #define SPSVCINST_NOCLOBBER_DISPLAYNAME 0x00000008
607 #define SPSVCINST_NOCLOBBER_STARTTYPE 0x00000010
608 #define SPSVCINST_NOCLOBBER_ERRORCONTROL 0x00000020
609 #define SPSVCINST_NOCLOBBER_LOADORDERGROUP 0x00000040
610 #define SPSVCINST_NOCLOBBER_DEPENDENCIES 0x00000080
611 #define SPSVCINST_NOCLOBBER_DESCRIPTION 0x00000100
612 #define SPSVCINST_STOPSERVICE 0x00000200
613 #define SPWPT_SELECTDEVICE 0x00000001
614 #define SPWP_USE_DEVINFO_DATA 0x00000001
615 #define SRCINFO_PATH 1
616 #define SRCINFO_TAGFILE 2
617 #define SRCINFO_DESCRIPTION 3
618 #define SRCINFO_FLAGS 4
619 #define SRCLIST_TEMPORARY 0x00000001
620 #define SRCLIST_NOBROWSE 0x00000002
621 #define SRCLIST_SYSTEM 0x00000010
622 #define SRCLIST_USER 0x00000020
623 #define SRCLIST_SYSIFADMIN 0x00000040
624 #define SRCLIST_SUBDIRS 0x00000100
625 #define SRCLIST_APPEND 0x00000200
626 #define SRCLIST_NOSTRIPPLATFORM 0x00000400
627 #define SPREG_SUCCESS 0x00000000
628 #define SPREG_LOADLIBRARY 0x00000001
629 #define SPREG_GETPROCADDR 0x00000002
630 #define SPREG_REGSVR 0x00000003
631 #define SPREG_DLLINSTALL 0x00000004
632 #define SPREG_TIMEOUT 0x00000005
633 #define SPREG_UNKNOWN 0xFFFFFFFF
634
635 /* Flags for StringTableAddString and StringTableLookUpString */
636 #define ST_CASE_SENSITIVE_COMPARE 0x00000001
637
638 #ifndef RC_INVOKED
639 typedef PVOID HINF;
640 typedef PVOID HDSKSPC;
641 typedef PVOID HDEVINFO;
642 typedef PVOID HSPFILEQ;
643 typedef PVOID HSPFILELOG;
644 typedef UINT DI_FUNCTION;
645
646 typedef PVOID HSTRING_TABLE;
647
648 typedef enum {
649 SetupFileLogSourceFilename,
650 SetupFileLogChecksum,
651 SetupFileLogDiskTagfile,
652 SetupFileLogDiskDescription,
653 SetupFileLogOtherInfo,
654 SetupFileLogMax
655 } SetupFileLogInfo;
656 typedef struct _INFCONTEXT {
657 PVOID Inf;
658 PVOID CurrentInf;
659 UINT Section;
660 UINT Line;
661 } INFCONTEXT, *PINFCONTEXT;
662 typedef struct _SP_INF_INFORMATION {
663 DWORD InfStyle;
664 DWORD InfCount;
665 BYTE VersionData[ANYSIZE_ARRAY];
666 } SP_INF_INFORMATION, *PSP_INF_INFORMATION;
667 typedef struct _SP_ALTPLATFORM_INFO {
668 DWORD cbSize;
669 DWORD Platform;
670 DWORD MajorVersion;
671 DWORD MinorVersion;
672 WORD ProcessorArchitecture;
673 WORD Reserved;
674 } SP_ALTPLATFORM_INFO, *PSP_ALTPLATFORM_INFO;
675 typedef struct _SP_ORIGINAL_FILE_INFO_A {
676 DWORD cbSize;
677 CHAR OriginalInfName[MAX_PATH];
678 CHAR OriginalCatalogName[MAX_PATH];
679 } SP_ORIGINAL_FILE_INFO_A, *PSP_ORIGINAL_FILE_INFO_A;
680 typedef struct _SP_ORIGINAL_FILE_INFO_W {
681 DWORD cbSize;
682 WCHAR OriginalInfName[MAX_PATH];
683 WCHAR OriginalCatalogName[MAX_PATH];
684 } SP_ORIGINAL_FILE_INFO_W, *PSP_ORIGINAL_FILE_INFO_W;
685 typedef struct _FILEPATHS_A {
686 PCSTR Target;
687 PCSTR Source;
688 UINT Win32Error;
689 DWORD Flags;
690 } FILEPATHS_A, *PFILEPATHS_A;
691 typedef struct _FILEPATHS_W {
692 PCWSTR Target;
693 PCWSTR Source;
694 UINT Win32Error;
695 DWORD Flags;
696 } FILEPATHS_W, *PFILEPATHS_W;
697 typedef struct _SOURCE_MEDIA_A {
698 PCSTR Reserved;
699 PCSTR Tagfile;
700 PCSTR Description;
701 PCSTR SourcePath;
702 PCSTR SourceFile;
703 DWORD Flags;
704 } SOURCE_MEDIA_A, *PSOURCE_MEDIA_A;
705 typedef struct _SOURCE_MEDIA_W {
706 PCWSTR Reserved;
707 PCWSTR Tagfile;
708 PCWSTR Description;
709 PCWSTR SourcePath;
710 PCWSTR SourceFile;
711 DWORD Flags;
712 } SOURCE_MEDIA_W, *PSOURCE_MEDIA_W;
713 typedef struct _CABINET_INFO_A {
714 PCSTR CabinetPath;
715 PCSTR CabinetFile;
716 PCSTR DiskName;
717 USHORT SetId;
718 USHORT CabinetNumber;
719 } CABINET_INFO_A, *PCABINET_INFO_A;
720 typedef struct _CABINET_INFO_W {
721 PCWSTR CabinetPath;
722 PCWSTR CabinetFile;
723 PCWSTR DiskName;
724 USHORT SetId;
725 USHORT CabinetNumber;
726 } CABINET_INFO_W, *PCABINET_INFO_W;
727 typedef struct _FILE_IN_CABINET_INFO_A {
728 PCSTR NameInCabinet;
729 DWORD FileSize;
730 DWORD Win32Error;
731 WORD DosDate;
732 WORD DosTime;
733 WORD DosAttribs;
734 CHAR FullTargetName[MAX_PATH];
735 } FILE_IN_CABINET_INFO_A, *PFILE_IN_CABINET_INFO_A;
736 typedef struct _FILE_IN_CABINET_INFO_W {
737 PCWSTR NameInCabinet;
738 DWORD FileSize;
739 DWORD Win32Error;
740 WORD DosDate;
741 WORD DosTime;
742 WORD DosAttribs;
743 WCHAR FullTargetName[MAX_PATH];
744 } FILE_IN_CABINET_INFO_W, *PFILE_IN_CABINET_INFO_W;
745 typedef struct _SP_FILE_COPY_PARAMS_A {
746 DWORD cbSize;
747 HSPFILEQ QueueHandle;
748 PCSTR SourceRootPath;
749 PCSTR SourcePath;
750 PCSTR SourceFilename;
751 PCSTR SourceDescription;
752 PCSTR SourceTagfile;
753 PCSTR TargetDirectory;
754 PCSTR TargetFilename;
755 DWORD CopyStyle;
756 HINF LayoutInf;
757 PCSTR SecurityDescriptor;
758 } SP_FILE_COPY_PARAMS_A, *PSP_FILE_COPY_PARAMS_A;
759 typedef struct _SP_FILE_COPY_PARAMS_W {
760 DWORD cbSize;
761 HSPFILEQ QueueHandle;
762 PCWSTR SourceRootPath;
763 PCWSTR SourcePath;
764 PCWSTR SourceFilename;
765 PCWSTR SourceDescription;
766 PCWSTR SourceTagfile;
767 PCWSTR TargetDirectory;
768 PCWSTR TargetFilename;
769 DWORD CopyStyle;
770 HINF LayoutInf;
771 PCWSTR SecurityDescriptor;
772 } SP_FILE_COPY_PARAMS_W, *PSP_FILE_COPY_PARAMS_W;
773 typedef struct _SP_DEVINFO_DATA {
774 DWORD cbSize;
775 GUID ClassGuid;
776 DWORD DevInst;
777 ULONG_PTR Reserved;
778 } SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;
779 typedef struct _SP_DEVICE_INTERFACE_DATA {
780 DWORD cbSize;
781 GUID InterfaceClassGuid;
782 DWORD Flags;
783 ULONG_PTR Reserved;
784 } SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA;
785 /* For backward compatability */
786 typedef SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA, *PSP_INTERFACE_DEVICE_DATA;
787
788 typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A {
789 DWORD cbSize;
790 CHAR DevicePath[ANYSIZE_ARRAY];
791 } SP_DEVICE_INTERFACE_DETAIL_DATA_A, *PSP_DEVICE_INTERFACE_DETAIL_DATA_A;
792 typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W {
793 DWORD cbSize;
794 WCHAR DevicePath[ANYSIZE_ARRAY];
795 } SP_DEVICE_INTERFACE_DETAIL_DATA_W, *PSP_DEVICE_INTERFACE_DETAIL_DATA_W;
796 /* For backward compatability */
797 typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A,
798 *PSP_INTERFACE_DEVICE_DETAIL_DATA_A;
799 typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W,
800 *PSP_INTERFACE_DEVICE_DETAIL_DATA_W;
801
802 typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_A {
803 DWORD cbSize;
804 GUID ClassGuid;
805 HANDLE RemoteMachineHandle;
806 CHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
807 } SP_DEVINFO_LIST_DETAIL_DATA_A, *PSP_DEVINFO_LIST_DETAIL_DATA_A;
808 typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_W {
809 DWORD cbSize;
810 GUID ClassGuid;
811 HANDLE RemoteMachineHandle;
812 WCHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
813 } SP_DEVINFO_LIST_DETAIL_DATA_W, *PSP_DEVINFO_LIST_DETAIL_DATA_W;
814
815 typedef UINT (CALLBACK* PSP_FILE_CALLBACK_A)(PVOID,UINT,UINT_PTR,UINT_PTR);
816 typedef UINT (CALLBACK* PSP_FILE_CALLBACK_W)(PVOID,UINT,UINT_PTR,UINT_PTR);
817 typedef struct _SP_DEVINSTALL_PARAMS_A {
818 DWORD cbSize;
819 DWORD Flags;
820 DWORD FlagsEx;
821 HWND hwndParent;
822 PSP_FILE_CALLBACK_A InstallMsgHandler;
823 PVOID InstallMsgHandlerContext;
824 HSPFILEQ FileQueue;
825 ULONG_PTR ClassInstallReserved;
826 DWORD Reserved;
827 CHAR DriverPath[MAX_PATH];
828 } SP_DEVINSTALL_PARAMS_A, *PSP_DEVINSTALL_PARAMS_A;
829 typedef struct _SP_DEVINSTALL_PARAMS_W {
830 DWORD cbSize;
831 DWORD Flags;
832 DWORD FlagsEx;
833 HWND hwndParent;
834 PSP_FILE_CALLBACK_W InstallMsgHandler;
835 PVOID InstallMsgHandlerContext;
836 HSPFILEQ FileQueue;
837 ULONG_PTR ClassInstallReserved;
838 DWORD Reserved;
839 WCHAR DriverPath[MAX_PATH];
840 } SP_DEVINSTALL_PARAMS_W, *PSP_DEVINSTALL_PARAMS_W;
841 typedef struct _SP_CLASSINSTALL_HEADER {
842 DWORD cbSize;
843 DI_FUNCTION InstallFunction;
844 } SP_CLASSINSTALL_HEADER, *PSP_CLASSINSTALL_HEADER;
845 typedef struct _SP_ENABLECLASS_PARAMS {
846 SP_CLASSINSTALL_HEADER ClassInstallHeader;
847 GUID ClassGuid;
848 DWORD EnableMessage;
849 } SP_ENABLECLASS_PARAMS, *PSP_ENABLECLASS_PARAMS;
850 typedef struct _SP_MOVEDEV_PARAMS {
851 SP_CLASSINSTALL_HEADER ClassInstallHeader;
852 SP_DEVINFO_DATA SourceDeviceInfoData;
853 } SP_MOVEDEV_PARAMS, *PSP_MOVEDEV_PARAMS;
854 typedef struct _SP_PROPCHANGE_PARAMS {
855 SP_CLASSINSTALL_HEADER ClassInstallHeader;
856 DWORD StateChange;
857 DWORD Scope;
858 DWORD HwProfile;
859 } SP_PROPCHANGE_PARAMS, *PSP_PROPCHANGE_PARAMS;
860 typedef struct _SP_REMOVEDEVICE_PARAMS {
861 SP_CLASSINSTALL_HEADER ClassInstallHeader;
862 DWORD Scope;
863 DWORD HwProfile;
864 } SP_REMOVEDEVICE_PARAMS, *PSP_REMOVEDEVICE_PARAMS;
865 typedef struct _SP_UNREMOVEDEVICE_PARAMS {
866 SP_CLASSINSTALL_HEADER ClassInstallHeader;
867 DWORD Scope;
868 DWORD HwProfile;
869 } SP_UNREMOVEDEVICE_PARAMS, *PSP_UNREMOVEDEVICE_PARAMS;
870 typedef struct _SP_SELECTDEVICE_PARAMS_A {
871 SP_CLASSINSTALL_HEADER ClassInstallHeader;
872 CHAR Title[MAX_TITLE_LEN];
873 CHAR Instructions[MAX_INSTRUCTION_LEN];
874 CHAR ListLabel[MAX_LABEL_LEN];
875 CHAR SubTitle[MAX_SUBTITLE_LEN];
876 BYTE Reserved[2];
877 } SP_SELECTDEVICE_PARAMS_A, *PSP_SELECTDEVICE_PARAMS_A;
878 typedef struct _SP_SELECTDEVICE_PARAMS_W {
879 SP_CLASSINSTALL_HEADER ClassInstallHeader;
880 WCHAR Title[MAX_TITLE_LEN];
881 WCHAR Instructions[MAX_INSTRUCTION_LEN];
882 WCHAR ListLabel[MAX_LABEL_LEN];
883 WCHAR SubTitle[MAX_SUBTITLE_LEN];
884 } SP_SELECTDEVICE_PARAMS_W, *PSP_SELECTDEVICE_PARAMS_W;
885 typedef struct _SP_REGISTER_CONTROL_STATUSA {
886 DWORD cbSize;
887 PCSTR FileName;
888 DWORD Win32Error;
889 DWORD FailureCode;
890 } SP_REGISTER_CONTROL_STATUSA, *PSP_REGISTER_CONTROL_STATUSA;
891 typedef struct _SP_REGISTER_CONTROL_STATUSW {
892 DWORD cbSize;
893 PCWSTR FileName;
894 DWORD Win32Error;
895 DWORD FailureCode;
896 } SP_REGISTER_CONTROL_STATUSW, *PSP_REGISTER_CONTROL_STATUSW;
897
898 typedef BOOL (CALLBACK* PDETECT_PROGRESS_NOTIFY)(PVOID,DWORD);
899 typedef struct _SP_DETECTDEVICE_PARAMS {
900 SP_CLASSINSTALL_HEADER ClassInstallHeader;
901 PDETECT_PROGRESS_NOTIFY DetectProgressNotify;
902 PVOID ProgressNotifyParam;
903 } SP_DETECTDEVICE_PARAMS, *PSP_DETECTDEVICE_PARAMS;
904 typedef struct _SP_INSTALLWIZARD_DATA {
905 SP_CLASSINSTALL_HEADER ClassInstallHeader;
906 DWORD Flags;
907 HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
908 DWORD NumDynamicPages;
909 DWORD DynamicPageFlags;
910 DWORD PrivateFlags;
911 LPARAM PrivateData;
912 HWND hwndWizardDlg;
913 } SP_INSTALLWIZARD_DATA, *PSP_INSTALLWIZARD_DATA;
914 typedef struct _SP_NEWDEVICEWIZARD_DATA {
915 SP_CLASSINSTALL_HEADER ClassInstallHeader;
916 DWORD Flags;
917 HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
918 DWORD NumDynamicPages;
919 HWND hwndWizardDlg;
920 } SP_NEWDEVICEWIZARD_DATA, *PSP_NEWDEVICEWIZARD_DATA;
921 typedef SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA,
922 *PSP_ADDPROPERTYPAGE_DATA;
923 typedef struct _SP_TROUBLESHOOTER_PARAMS_A {
924 SP_CLASSINSTALL_HEADER ClassInstallHeader;
925 CHAR ChmFile[MAX_PATH];
926 CHAR HtmlTroubleShooter[MAX_PATH];
927 } SP_TROUBLESHOOTER_PARAMS_A, *PSP_TROUBLESHOOTER_PARAMS_A;
928 typedef struct _SP_TROUBLESHOOTER_PARAMS_W {
929 SP_CLASSINSTALL_HEADER ClassInstallHeader;
930 WCHAR ChmFile[MAX_PATH];
931 WCHAR HtmlTroubleShooter[MAX_PATH];
932 } SP_TROUBLESHOOTER_PARAMS_W, *PSP_TROUBLESHOOTER_PARAMS_W;
933 typedef struct _SP_POWERMESSAGEWAKE_PARAMS_A {
934 SP_CLASSINSTALL_HEADER ClassInstallHeader;
935 CHAR PowerMessageWake[LINE_LEN*2];
936 } SP_POWERMESSAGEWAKE_PARAMS_A, *PSP_POWERMESSAGEWAKE_PARAMS_A;
937 typedef struct _SP_POWERMESSAGEWAKE_PARAMS_W {
938 SP_CLASSINSTALL_HEADER ClassInstallHeader;
939 WCHAR PowerMessageWake[LINE_LEN*2];
940 } SP_POWERMESSAGEWAKE_PARAMS_W, *PSP_POWERMESSAGEWAKE_PARAMS_W;
941 typedef struct _SP_DRVINFO_DATA_V2_A {
942 DWORD cbSize;
943 DWORD DriverType;
944 ULONG_PTR Reserved;
945 CHAR Description[LINE_LEN];
946 CHAR MfgName[LINE_LEN];
947 CHAR ProviderName[LINE_LEN];
948 FILETIME DriverDate;
949 DWORDLONG DriverVersion;
950 } SP_DRVINFO_DATA_V2_A, *PSP_DRVINFO_DATA_V2_A;
951 typedef struct _SP_DRVINFO_DATA_V2_W {
952 DWORD cbSize;
953 DWORD DriverType;
954 ULONG_PTR Reserved;
955 WCHAR Description[LINE_LEN];
956 WCHAR MfgName[LINE_LEN];
957 WCHAR ProviderName[LINE_LEN];
958 FILETIME DriverDate;
959 DWORDLONG DriverVersion;
960 } SP_DRVINFO_DATA_V2_W, *PSP_DRVINFO_DATA_V2_W;
961 typedef struct _SP_DRVINFO_DATA_V1_A {
962 DWORD cbSize;
963 DWORD DriverType;
964 ULONG_PTR Reserved;
965 CHAR Description[LINE_LEN];
966 CHAR MfgName[LINE_LEN];
967 CHAR ProviderName[LINE_LEN];
968 } SP_DRVINFO_DATA_V1_A, *PSP_DRVINFO_DATA_V1_A;
969 typedef struct _SP_DRVINFO_DATA_V1_W {
970 DWORD cbSize;
971 DWORD DriverType;
972 ULONG_PTR Reserved;
973 WCHAR Description[LINE_LEN];
974 WCHAR MfgName[LINE_LEN];
975 WCHAR ProviderName[LINE_LEN];
976 } SP_DRVINFO_DATA_V1_W, *PSP_DRVINFO_DATA_V1_W;
977
978 #ifdef UNICODE
979 typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1;
980 typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2;
981 #else
982 typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1;
983 typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2;
984 #endif
985
986 #if USE_SP_DRVINFO_DATA_V1
987 typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A;
988 typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W;
989 typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA;
990 #else
991 typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A;
992 typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W;
993 typedef SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA;
994 #endif
995
996 typedef DWORD (CALLBACK* PSP_DETSIG_CMPPROC)(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINFO_DATA,PVOID);
997
998 typedef struct _SP_DRVINFO_DETAIL_DATA_A {
999 DWORD cbSize;
1000 FILETIME InfDate;
1001 DWORD CompatIDsOffset;
1002 DWORD CompatIDsLength;
1003 ULONG_PTR Reserved;
1004 CHAR SectionName[LINE_LEN];
1005 CHAR InfFileName[MAX_PATH];
1006 CHAR DrvDescription[LINE_LEN];
1007 CHAR HardwareID[ANYSIZE_ARRAY];
1008 } SP_DRVINFO_DETAIL_DATA_A, *PSP_DRVINFO_DETAIL_DATA_A;
1009 typedef struct _SP_DRVINFO_DETAIL_DATA_W {
1010 DWORD cbSize;
1011 FILETIME InfDate;
1012 DWORD CompatIDsOffset;
1013 DWORD CompatIDsLength;
1014 ULONG_PTR Reserved;
1015 WCHAR SectionName[LINE_LEN];
1016 WCHAR InfFileName[MAX_PATH];
1017 WCHAR DrvDescription[LINE_LEN];
1018 WCHAR HardwareID[ANYSIZE_ARRAY];
1019 } SP_DRVINFO_DETAIL_DATA_W, *PSP_DRVINFO_DETAIL_DATA_W;
1020 typedef struct _SP_DRVINSTALL_PARAMS {
1021 DWORD cbSize;
1022 DWORD Rank;
1023 DWORD Flags;
1024 DWORD_PTR PrivateData;
1025 DWORD Reserved;
1026 } SP_DRVINSTALL_PARAMS, *PSP_DRVINSTALL_PARAMS;
1027
1028
1029 typedef struct _COINSTALLER_CONTEXT_DATA {
1030 BOOL PostProcessing;
1031 DWORD InstallResult;
1032 PVOID PrivateData;
1033 } COINSTALLER_CONTEXT_DATA, *PCOINSTALLER_CONTEXT_DATA;
1034 typedef struct _SP_CLASSIMAGELIST_DATA {
1035 DWORD cbSize;
1036 HIMAGELIST ImageList;
1037 ULONG_PTR Reserved;
1038 } SP_CLASSIMAGELIST_DATA, *PSP_CLASSIMAGELIST_DATA;
1039 typedef struct _SP_PROPSHEETPAGE_REQUEST {
1040 DWORD cbSize;
1041 DWORD PageRequested;
1042 HDEVINFO DeviceInfoSet;
1043 PSP_DEVINFO_DATA DeviceInfoData;
1044 } SP_PROPSHEETPAGE_REQUEST, *PSP_PROPSHEETPAGE_REQUEST;
1045 typedef struct _SP_BACKUP_QUEUE_PARAMS_A {
1046 DWORD cbSize;
1047 CHAR FullInfPath[MAX_PATH];
1048 INT FilenameOffset;
1049 } SP_BACKUP_QUEUE_PARAMS_A, *PSP_BACKUP_QUEUE_PARAMS_A;
1050 typedef struct _SP_BACKUP_QUEUE_PARAMS_W {
1051 DWORD cbSize;
1052 WCHAR FullInfPath[MAX_PATH];
1053 INT FilenameOffset;
1054 } SP_BACKUP_QUEUE_PARAMS_W, *PSP_BACKUP_QUEUE_PARAMS_W;
1055
1056
1057 #ifdef UNICODE
1058 typedef SP_ORIGINAL_FILE_INFO_W SP_ORIGINAL_FILE_INFO, *PSP_ORIGINAL_FILE_INFO;
1059 typedef FILEPATHS_W FILEPATHS, *PFILEPATHS;
1060 typedef SOURCE_MEDIA_W SOURCE_MEDIA, *PSOURCE_MEDIA;
1061 typedef CABINET_INFO_W CABINET_INFO, *PCABINET_INFO;
1062 typedef FILE_IN_CABINET_INFO_W FILE_IN_CABINET_INFO, *PFILE_IN_CABINET_INFO;
1063 typedef SP_FILE_COPY_PARAMS_W SP_FILE_COPY_PARAMS, PSP_FILE_COPY_PARAMS;
1064 typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA,
1065 *PSP_DEVICE_INTERFACE_DETAIL_DATA;
1066 typedef SP_INTERFACE_DEVICE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA,
1067 *PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */
1068 typedef SP_DEVINFO_LIST_DETAIL_DATA_W SP_DEVINFO_LIST_DETAIL_DATA,
1069 *PSP_DEVINFO_LIST_DETAIL_DATA;
1070 typedef SP_DEVINSTALL_PARAMS_W SP_DEVINSTALL_PARAMS, *PSP_DEVINSTALL_PARAMS;
1071 typedef SP_SELECTDEVICE_PARAMS_W SP_SELECTDEVICE_PARAMS, *PSP_SELECTDEVICE_PARAMS;
1072 typedef SP_TROUBLESHOOTER_PARAMS_W SP_TROUBLESHOOTER_PARAMS,
1073 *PSP_TROUBLESHOOTER_PARAMS;
1074 typedef SP_POWERMESSAGEWAKE_PARAMS_W SP_POWERMESSAGEWAKE_PARAMS,
1075 *PSP_POWERMESSAGEWAKE_PARAMS;
1076 typedef SP_DRVINFO_DETAIL_DATA_W SP_DRVINFO_DETAIL_DATA,
1077 *PSP_DRVINFO_DETAIL_DATA;
1078 typedef SP_BACKUP_QUEUE_PARAMS_W SP_BACKUP_QUEUE_PARAMS,
1079 *PSP_BACKUP_QUEUE_PARAMS;
1080 typedef SP_REGISTER_CONTROL_STATUSW SP_REGISTER_CONTROL_STATUS, *PSP_REGISTER_CONTROL_STATUS;
1081 #else
1082 typedef SP_ORIGINAL_FILE_INFO_A SP_ORIGINAL_FILE_INFO, *PSP_ORIGINAL_FILE_INFO;
1083 typedef FILEPATHS_A FILEPATHS, *PFILEPATHS;
1084 typedef SOURCE_MEDIA_A SOURCE_MEDIA, *PSOURCE_MEDIA;
1085 typedef CABINET_INFO_A CABINET_INFO, *PCABINET_INFO;
1086 typedef FILE_IN_CABINET_INFO_A FILE_IN_CABINET_INFO, *PFILE_IN_CABINET_INFO;
1087 typedef SP_FILE_COPY_PARAMS_A SP_FILE_COPY_PARAMS, *PSP_FILE_COPY_PARAMS;
1088 typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_DEVICE_INTERFACE_DETAIL_DATA,
1089 *PSP_DEVICE_INTERFACE_DETAIL_DATA;
1090 typedef SP_INTERFACE_DEVICE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA,
1091 *PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */
1092 typedef SP_DEVINFO_LIST_DETAIL_DATA_A SP_DEVINFO_LIST_DETAIL_DATA,
1093 *PSP_DEVINFO_LIST_DETAIL_DATA;
1094 typedef SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS, *PSP_DEVINSTALL_PARAMS;
1095 typedef SP_SELECTDEVICE_PARAMS_A SP_SELECTDEVICE_PARAMS,
1096 *PSP_SELECTDEVICE_PARAMS;
1097 typedef SP_TROUBLESHOOTER_PARAMS_A SP_TROUBLESHOOTER_PARAMS,
1098 *PSP_TROUBLESHOOTER_PARAMS;
1099 typedef SP_POWERMESSAGEWAKE_PARAMS_A SP_POWERMESSAGEWAKE_PARAMS,
1100 *PSP_POWERMESSAGEWAKE_PARAMS;
1101 typedef SP_DRVINFO_DETAIL_DATA_A SP_DRVINFO_DETAIL_DATA,
1102 *PSP_DRVINFO_DETAIL_DATA;
1103 typedef SP_BACKUP_QUEUE_PARAMS_A SP_BACKUP_QUEUE_PARAMS,
1104 *PSP_BACKUP_QUEUE_PARAMS;
1105 typedef SP_REGISTER_CONTROL_STATUSA SP_REGISTER_CONTROL_STATUS, *PSP_REGISTER_CONTROL_STATUS;
1106 #endif /* UNICODE */
1107
1108
1109 WINSETUPAPI LONG WINAPI AddTagToGroupOrderList(PCWSTR, DWORD, DWORD);
1110 WINSETUPAPI VOID WINAPI AssertFail(LPSTR, UINT, LPSTR);
1111 WINSETUPAPI DWORD WINAPI CaptureAndConvertAnsiArg(PCSTR, PWSTR*);
1112 WINSETUPAPI DWORD WINAPI CaptureStringArg(PCWSTR, PWSTR*);
1113 WINSETUPAPI VOID WINAPI CenterWindowRelativeToParent(HWND);
1114 WINSETUPAPI BOOL WINAPI ConcatenatePaths(LPWSTR, LPCWSTR, DWORD, LPDWORD);
1115 WINSETUPAPI BOOL WINAPI DelayedMove(PCWSTR, PCWSTR);
1116 WINSETUPAPI BOOL WINAPI DoesUserHavePrivilege(PCWSTR);
1117 WINSETUPAPI PWSTR WINAPI DuplicateString(PCWSTR);
1118 WINSETUPAPI BOOL WINAPI EnablePrivilege(PCWSTR, BOOL);
1119 WINSETUPAPI BOOL WINAPI FileExists(PCWSTR, PWIN32_FIND_DATAW);
1120 WINSETUPAPI DWORD WINAPI GetSetFileTimestamp(PCWSTR, PFILETIME, PFILETIME, PFILETIME, BOOLEAN);
1121 WINSETUPAPI BOOL WINAPI GetVersionInfoFromImage(LPWSTR, PULARGE_INTEGER, LPWORD);
1122 WINSETUPAPI BOOL WINAPI IsUserAdmin(VOID);
1123 WINSETUPAPI PWSTR WINAPI MultiByteToUnicode(PCSTR, UINT);
1124 WINSETUPAPI VOID WINAPI MyFree(PVOID);
1125 WINSETUPAPI PWSTR WINAPI MyGetFileTitle(PCWSTR);
1126 WINSETUPAPI PVOID WINAPI MyMalloc(DWORD);
1127 WINSETUPAPI PVOID WINAPI MyRealloc(PVOID, DWORD);
1128 WINSETUPAPI DWORD WINAPI OpenAndMapForRead(PCWSTR, PDWORD, PHANDLE, PHANDLE, PVOID*);
1129 WINSETUPAPI LONG WINAPI QueryRegistryValue(HKEY, PCWSTR, PBYTE*, PDWORD, PDWORD);
1130 WINSETUPAPI DWORD WINAPI RetreiveFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR*);
1131
1132 WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT);
1133 WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT);
1134 WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,UINT,PVOID,UINT);
1135 WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,UINT,PVOID,UINT);
1136 WINSETUPAPI BOOL WINAPI SetupAddToDiskSpaceListA(HDSKSPC,PCSTR,LONGLONG,UINT,PVOID,UINT);
1137 WINSETUPAPI BOOL WINAPI SetupAddToDiskSpaceListW(HDSKSPC,PCWSTR,LONGLONG,UINT,PVOID,UINT);
1138 WINSETUPAPI BOOL WINAPI SetupAddToSourceListA(DWORD,PCSTR);
1139 WINSETUPAPI BOOL WINAPI SetupAddToSourceListW(DWORD,PCWSTR);
1140 WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListA(HDSKSPC,LPCSTR,LONGLONG,PVOID,UINT);
1141 WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListW(HDSKSPC,LPCWSTR,LONGLONG,PVOID,UINT);
1142 WINSETUPAPI UINT WINAPI SetupBackupErrorA(HWND,PCSTR,PCSTR,PCSTR,UINT,DWORD);
1143 WINSETUPAPI UINT WINAPI SetupBackupErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD);
1144 WINSETUPAPI BOOL WINAPI SetupCancelTemporary(VOID);
1145 WINSETUPAPI BOOL WINAPI SetupCloseFileQueue(HSPFILEQ);
1146 WINSETUPAPI VOID WINAPI SetupCloseInfFile(HINF);
1147 WINSETUPAPI VOID WINAPI SetupCloseLog(VOID);
1148 WINSETUPAPI BOOL WINAPI SetupCommitFileQueueA(HWND,HSPFILEQ,PSP_FILE_CALLBACK_A,PVOID);
1149 WINSETUPAPI BOOL WINAPI SetupCommitFileQueueW(HWND,HSPFILEQ,PSP_FILE_CALLBACK_W,PVOID);
1150 WINSETUPAPI UINT WINAPI SetupCopyErrorA(HWND,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,UINT,DWORD,PSTR,DWORD,PDWORD);
1151 WINSETUPAPI UINT WINAPI SetupCopyErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD,PWSTR,DWORD,PDWORD);
1152 WINSETUPAPI BOOL WINAPI SetupCopyOEMInfA(PCSTR,PCSTR,DWORD,DWORD,PSTR,DWORD,PDWORD,PSTR*);
1153 WINSETUPAPI BOOL WINAPI SetupCopyOEMInfW(PCWSTR,PCWSTR,DWORD,DWORD,PWSTR,DWORD,PDWORD,PWSTR*);
1154 WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListA(PVOID,DWORD,UINT);
1155 WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListW(PVOID,DWORD,UINT);
1156 WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileA(PCSTR,PCSTR,PUINT);
1157 WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileW(PCWSTR,PCWSTR,PUINT);
1158 WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackA(PVOID,UINT,UINT_PTR,UINT_PTR);
1159 WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackW(PVOID,UINT,UINT_PTR,UINT_PTR);
1160 WINSETUPAPI UINT WINAPI SetupDeleteErrorA(HWND,PCSTR,PCSTR,UINT,DWORD);
1161 WINSETUPAPI UINT WINAPI SetupDeleteErrorW(HWND,PCWSTR,PCWSTR,UINT,DWORD);
1162 WINSETUPAPI BOOL WINAPI SetupDestroyDiskSpaceList(HDSKSPC);
1163 WINSETUPAPI BOOL WINAPI SetupDiAskForOEMDisk(HDEVINFO,PSP_DEVINFO_DATA);
1164 WINSETUPAPI BOOL WINAPI SetupDiBuildClassInfoList(DWORD,LPGUID,DWORD,PDWORD);
1165 WINSETUPAPI BOOL WINAPI SetupDiBuildClassInfoListExA(DWORD,LPGUID,DWORD,PDWORD,PCSTR,PVOID);
1166 WINSETUPAPI BOOL WINAPI SetupDiBuildClassInfoListExW(DWORD,LPGUID,DWORD,PDWORD,PCWSTR,PVOID);
1167 WINSETUPAPI BOOL WINAPI SetupDiBuildDriverInfoList(HDEVINFO,PSP_DEVINFO_DATA,DWORD);
1168 WINSETUPAPI BOOL WINAPI SetupDiCallClassInstaller(DI_FUNCTION,HDEVINFO,PSP_DEVINFO_DATA);
1169 WINSETUPAPI BOOL WINAPI SetupDiCancelDriverInfoSearch(HDEVINFO);
1170 WINSETUPAPI BOOL WINAPI SetupDiChangeState(HDEVINFO,PSP_DEVINFO_DATA);
1171 WINSETUPAPI BOOL WINAPI SetupDiClassGuidsFromNameA(PCSTR,LPGUID,DWORD,PDWORD);
1172 WINSETUPAPI BOOL WINAPI SetupDiClassGuidsFromNameW(PCWSTR,LPGUID,DWORD,PDWORD);
1173 WINSETUPAPI BOOL WINAPI SetupDiClassGuidsFromNameExA(PCSTR,LPGUID,DWORD,PDWORD,PCSTR,PVOID);
1174 WINSETUPAPI BOOL WINAPI SetupDiClassGuidsFromNameExW(PCWSTR,LPGUID,DWORD,PDWORD,PCWSTR,PVOID);
1175 WINSETUPAPI BOOL WINAPI SetupDiClassNameFromGuidA(CONST GUID*,PSTR,DWORD,PDWORD);
1176 WINSETUPAPI BOOL WINAPI SetupDiClassNameFromGuidW(CONST GUID*,PWSTR,DWORD,PDWORD);
1177 WINSETUPAPI BOOL WINAPI SetupDiClassNameFromGuidExA(CONST GUID*,PSTR,DWORD,PDWORD,PCSTR,PVOID);
1178 WINSETUPAPI BOOL WINAPI SetupDiClassNameFromGuidExW(CONST GUID*,PWSTR,DWORD,PDWORD,PCWSTR,PVOID);
1179 WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInfoA(HDEVINFO,PCSTR,CONST GUID*,PCSTR,HWND,DWORD,PSP_DEVINFO_DATA);
1180 WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInfoW(HDEVINFO,PCWSTR,CONST GUID*,PCWSTR,HWND,DWORD,PSP_DEVINFO_DATA);
1181 WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoList(CONST GUID*,HWND);
1182 WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExA(CONST GUID*,HWND,PCSTR,PVOID);
1183 WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExW(CONST GUID*,HWND,PCWSTR,PVOID);
1184 WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInterfaceA(HDEVINFO,PSP_DEVINFO_DATA,CONST GUID*,PCSTR,DWORD,PSP_DEVICE_INTERFACE_DATA);
1185 WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInterfaceW(HDEVINFO,PSP_DEVINFO_DATA,CONST GUID*,PCWSTR,DWORD,PSP_DEVICE_INTERFACE_DATA);
1186 WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyA(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM,HINF,PCSTR);
1187 WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyW(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM,HINF,PCWSTR);
1188 WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,HINF,PCSTR);
1189 WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,HINF,PCWSTR);
1190 WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInfo(HDEVINFO,PSP_DEVINFO_DATA);
1191 WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInterfaceData(HDEVINFO,PSP_DEVICE_INTERFACE_DATA);
1192 WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInterfaceRegKey(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD);
1193 WINSETUPAPI BOOL WINAPI SetupDiDeleteDevRegKey(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD);
1194 WINSETUPAPI BOOL WINAPI SetupDiDestroyClassImageList(PSP_CLASSIMAGELIST_DATA);
1195 WINSETUPAPI BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO);
1196 WINSETUPAPI BOOL WINAPI SetupDiDestroyDriverInfoList(HDEVINFO,PSP_DEVINFO_DATA,DWORD);
1197 WINSETUPAPI INT WINAPI SetupDiDrawMiniIcon(HDC,RECT,INT,DWORD);
1198 WINSETUPAPI BOOL WINAPI SetupDiEnumDeviceInfo(HDEVINFO,DWORD,PSP_DEVINFO_DATA);
1199 WINSETUPAPI BOOL WINAPI SetupDiEnumDeviceInterfaces(HDEVINFO,PSP_DEVINFO_DATA,CONST GUID*,DWORD,PSP_DEVICE_INTERFACE_DATA);
1200 WINSETUPAPI BOOL WINAPI SetupDiEnumDriverInfoA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,PSP_DRVINFO_DATA_A);
1201 WINSETUPAPI BOOL WINAPI SetupDiEnumDriverInfoW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,PSP_DRVINFO_DATA_W);
1202 WINSETUPAPI BOOL WINAPI SetupDiGetActualSectionToInstallA(HINF,PCSTR,PSTR,DWORD,PDWORD,PSTR*);
1203 WINSETUPAPI BOOL WINAPI SetupDiGetActualSectionToInstallExA(HINF,PCSTR,PSP_ALTPLATFORM_INFO,PSTR,DWORD,PDWORD,PSTR*,PVOID);
1204 WINSETUPAPI BOOL WINAPI SetupDiGetActualSectionToInstallExW(HINF,PCWSTR,PSP_ALTPLATFORM_INFO,PWSTR,DWORD,PDWORD,PWSTR*,PVOID);
1205 WINSETUPAPI BOOL WINAPI SetupDiGetActualSectionToInstallW(HINF,PCWSTR,PWSTR,DWORD,PDWORD,PWSTR*);
1206 WINSETUPAPI BOOL WINAPI SetupDiGetClassBitmapIndex(CONST GUID*,PINT);
1207 WINSETUPAPI BOOL WINAPI SetupDiGetClassDescriptionA(CONST GUID*,PSTR,DWORD,PDWORD);
1208 WINSETUPAPI BOOL WINAPI SetupDiGetClassDescriptionW(CONST GUID*,PWSTR,DWORD,PDWORD);
1209 WINSETUPAPI BOOL WINAPI SetupDiGetClassDescriptionExA(CONST GUID*,PSTR,DWORD,PDWORD,PCSTR,PVOID);
1210 WINSETUPAPI BOOL WINAPI SetupDiGetClassDescriptionExW(CONST GUID*,PWSTR,DWORD,PDWORD,PCWSTR,PVOID);
1211 WINSETUPAPI BOOL WINAPI SetupDiGetClassDevPropertySheetsA(HDEVINFO,PSP_DEVINFO_DATA,LPPROPSHEETHEADERA,DWORD,PDWORD,DWORD);
1212 WINSETUPAPI BOOL WINAPI SetupDiGetClassDevPropertySheetsW(HDEVINFO,PSP_DEVINFO_DATA,LPPROPSHEETHEADERW,DWORD,PDWORD,DWORD);
1213 WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsA(CONST GUID*,PCSTR,HWND,DWORD);
1214 WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsW(CONST GUID*,PCWSTR,HWND,DWORD);
1215 WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExA(CONST GUID*,PCSTR,HWND,DWORD,HDEVINFO,PCSTR,PVOID);
1216 WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExW(CONST GUID*,PCWSTR,HWND,DWORD,HDEVINFO,PCWSTR,PVOID);
1217 WINSETUPAPI BOOL WINAPI SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA,CONST GUID*,PINT);
1218 WINSETUPAPI BOOL WINAPI SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA);
1219 WINSETUPAPI BOOL WINAPI SetupDiGetClassImageListExA(PSP_CLASSIMAGELIST_DATA,PCSTR,PVOID);
1220 WINSETUPAPI BOOL WINAPI SetupDiGetClassImageListExW(PSP_CLASSIMAGELIST_DATA,PCWSTR,PVOID);
1221 WINSETUPAPI BOOL WINAPI SetupDiGetClassInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD,PDWORD);
1222 WINSETUPAPI BOOL WINAPI SetupDiGetClassInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD,PDWORD);
1223 WINSETUPAPI BOOL WINAPI SetupDiGetClassRegistryPropertyA(LPGUID,DWORD,PDWORD,PBYTE,DWORD,PDWORD,PCSTR,PVOID);
1224 WINSETUPAPI BOOL WINAPI SetupDiGetClassRegistryPropertyW(LPGUID,DWORD,PDWORD,PBYTE,DWORD,PDWORD,PCWSTR,PVOID);
1225 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListClass(HDEVINFO,LPGUID);
1226 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListDetailA(HDEVINFO,PSP_DEVINFO_LIST_DETAIL_DATA_A);
1227 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListDetailW(HDEVINFO,PSP_DEVINFO_LIST_DETAIL_DATA_W);
1228 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_A);
1229 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_W);
1230 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstanceIdA(HDEVINFO,PSP_DEVINFO_DATA,PSTR,DWORD,PDWORD);
1231 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstanceIdW(HDEVINFO,PSP_DEVINFO_DATA,PWSTR,DWORD,PDWORD);
1232 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInterfaceAlias(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,CONST GUID*,PSP_DEVICE_INTERFACE_DATA);
1233 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInterfaceDetailA(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,PSP_DEVICE_INTERFACE_DETAIL_DATA_A,DWORD,PDWORD,PSP_DEVINFO_DATA);
1234 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,PSP_DEVICE_INTERFACE_DETAIL_DATA_W,DWORD,PDWORD,PSP_DEVINFO_DATA);
1235 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceRegistryPropertyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PDWORD,PBYTE,DWORD,PDWORD);
1236 WINSETUPAPI BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PDWORD,PBYTE,DWORD,PDWORD);
1237 WINSETUPAPI BOOL WINAPI SetupDiGetDriverInfoDetailA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINFO_DETAIL_DATA_A,DWORD,PDWORD);
1238 WINSETUPAPI BOOL WINAPI SetupDiGetDriverInfoDetailW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINFO_DETAIL_DATA_W,DWORD,PDWORD);
1239 WINSETUPAPI BOOL WINAPI SetupDiGetDriverInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINSTALL_PARAMS);
1240 WINSETUPAPI BOOL WINAPI SetupDiGetDriverInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINSTALL_PARAMS);
1241 WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameA(DWORD,PSTR,DWORD,PDWORD);
1242 WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameExA(DWORD,PSTR,DWORD,PDWORD,PCSTR,PVOID);
1243 WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameExW(DWORD,PWSTR,DWORD,PDWORD,PCWSTR,PVOID);
1244 WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameW(DWORD,PWSTR,DWORD,PDWORD);
1245 WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileList(PDWORD,DWORD,PDWORD,PDWORD);
1246 WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileListExA(PDWORD,DWORD,PDWORD,PDWORD,PCSTR,PVOID);
1247 WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileListExW(PDWORD,DWORD,PDWORD,PDWORD,PCWSTR,PVOID);
1248 WINSETUPAPI BOOL WINAPI SetupDiGetINFClassA(PCSTR,LPGUID,PSTR,DWORD,PDWORD);
1249 WINSETUPAPI BOOL WINAPI SetupDiGetINFClassW(PCWSTR,LPGUID,PWSTR,DWORD,PDWORD);
1250 WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDevice(HDEVINFO,PSP_DEVINFO_DATA);
1251 WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A);
1252 WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W);
1253 WINSETUPAPI HPROPSHEETPAGE WINAPI SetupDiGetWizardage(HDEVINFO,PSP_DEVINFO_DATA,PSP_INSTALLWIZARD_DATA,DWORD,DWORD);
1254 WINSETUPAPI BOOL WINAPI SetupDiInstallClassA(HWND,PCSTR,DWORD,HSPFILEQ);
1255 WINSETUPAPI BOOL WINAPI SetupDiInstallClassW(HWND,PCWSTR,DWORD,HSPFILEQ);
1256 WINSETUPAPI BOOL WINAPI SetupDiInstallClassExA(HWND,PCSTR,DWORD,HSPFILEQ,CONST GUID*,PVOID,PVOID);
1257 WINSETUPAPI BOOL WINAPI SetupDiInstallClassExW(HWND,PCWSTR,DWORD,HSPFILEQ,CONST GUID*,PVOID,PVOID);
1258 WINSETUPAPI BOOL WINAPI SetupDiInstallDevice(HDEVINFO,PSP_DEVINFO_DATA);
1259 WINSETUPAPI BOOL WINAPI SetupDiInstallDeviceInterfaces(HDEVINFO,PSP_DEVINFO_DATA);
1260 WINSETUPAPI BOOL WINAPI SetupDiInstallDriverFiles(HDEVINFO,PSP_DEVINFO_DATA);
1261 WINSETUPAPI BOOL WINAPI SetupDiLoadClassIcon(CONST GUID*,HICON*,PINT);
1262 WINSETUPAPI BOOL WINAPI SetupDiMoveDuplicateDevice(HDEVINFO,PSP_DEVINFO_DATA);
1263 WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKey(CONST GUID*,REGSAM);
1264 WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExA(CONST GUID*,REGSAM,DWORD,PCSTR,PVOID);
1265 WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExW(CONST GUID*,REGSAM,DWORD,PCWSTR,PVOID);
1266 WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInfoA(HDEVINFO,PCSTR,HWND,DWORD,PSP_DEVINFO_DATA);
1267 WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInfoW(HDEVINFO,PCWSTR,HWND,DWORD,PSP_DEVINFO_DATA);
1268 WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInterfaceA(HDEVINFO,PCSTR,DWORD,PSP_DEVICE_INTERFACE_DATA);
1269 WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInterfaceW(HDEVINFO,PCWSTR,DWORD,PSP_DEVICE_INTERFACE_DATA);
1270 WINSETUPAPI HKEY WINAPI SetupDiOpenDeviceInterfaceRegKey(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM);
1271 WINSETUPAPI HKEY WINAPI SetupDiOpenDevRegKey(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,REGSAM);
1272 WINSETUPAPI BOOL WINAPI SetupDiRegisterCoDeviceInstallers(HDEVINFO,PSP_DEVINFO_DATA);
1273 WINSETUPAPI BOOL WINAPI SetupDiRegisterDeviceInfo(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PSP_DETSIG_CMPPROC,PVOID,PSP_DEVINFO_DATA);
1274 WINSETUPAPI BOOL WINAPI SetupDiRemoveDevice(HDEVINFO,PSP_DEVINFO_DATA);
1275 WINSETUPAPI BOOL WINAPI SetupDiRemoveDeviceInterface(HDEVINFO,PSP_DEVICE_INTERFACE_DATA);
1276 WINSETUPAPI BOOL WINAPI SetupDiSelectBestCompatDrv(HDEVINFO,PSP_DEVINFO_DATA);
1277 WINSETUPAPI BOOL WINAPI SetupDiSelectDevice(HDEVINFO,PSP_DEVINFO_DATA);
1278 WINSETUPAPI BOOL WINAPI SetupDiSelectOEMDrv(HWND,HDEVINFO,PSP_DEVINFO_DATA);
1279 WINSETUPAPI BOOL WINAPI SetupDiSetClassInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD);
1280 WINSETUPAPI BOOL WINAPI SetupDiSetClassInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD);
1281 WINSETUPAPI BOOL WINAPI SetupDiSetClassRegistryPropertyA(LPGUID,DWORD,CONST BYTE*,DWORD,PCSTR,PVOID);
1282 WINSETUPAPI BOOL WINAPI SetupDiSetClassRegistryPropertyW(LPGUID,DWORD,CONST BYTE*,DWORD,PCWSTR,PVOID);
1283 WINSETUPAPI BOOL WINAPI SetupDiSetDeviceInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_A);
1284 WINSETUPAPI BOOL WINAPI SetupDiSetDeviceInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_W);
1285 WINSETUPAPI BOOL WINAPI SetupDiSetDeviceRegistryPropertyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,CONST BYTE*,DWORD);
1286 WINSETUPAPI BOOL WINAPI SetupDiSetDeviceRegistryPropertyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,CONST BYTE*,DWORD);
1287 WINSETUPAPI BOOL WINAPI SetupDiSetDriverInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINSTALL_PARAMS);
1288 WINSETUPAPI BOOL WINAPI SetupDiSetDriverInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINSTALL_PARAMS);
1289 WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDevice(HDEVINFO,PSP_DEVINFO_DATA);
1290 WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDriverA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A);
1291 WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDriverW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W);
1292 WINSETUPAPI BOOL WINAPI SetupDiUnremoveDevice(HDEVINFO,PSP_DEVINFO_DATA);
1293 WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListA(HDSKSPC,PVOID,DWORD,UINT);
1294 WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListW(HDSKSPC,PVOID,DWORD,UINT);
1295 WINSETUPAPI BOOL WINAPI SetupFindFirstLineA(HINF,PCSTR,PCSTR,PINFCONTEXT);
1296 WINSETUPAPI BOOL WINAPI SetupFindFirstLineW(HINF,PCWSTR,PCWSTR,PINFCONTEXT);
1297 WINSETUPAPI BOOL WINAPI SetupFindNextLine(PINFCONTEXT,PINFCONTEXT);
1298 WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineA(PINFCONTEXT,PCSTR,PINFCONTEXT);
1299 WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineW(PINFCONTEXT,PCWSTR,PINFCONTEXT);
1300 WINSETUPAPI BOOL WINAPI SetupFreeA(PCSTR**,UINT);
1301 WINSETUPAPI BOOL WINAPI SetupFreeW(PCWSTR**,UINT);
1302 WINSETUPAPI BOOL WINAPI SetupGetBackupInformationA(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_A);
1303 WINSETUPAPI BOOL WINAPI SetupGetBackupInformationW(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_W);
1304 WINSETUPAPI BOOL WINAPI SetupGetBinaryField(PINFCONTEXT,DWORD,PBYTE,DWORD,LPDWORD);
1305 WINSETUPAPI DWORD WINAPI SetupGetFieldCount(PINFCONTEXT);
1306 WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoA(PCSTR,PSTR*,PDWORD,PDWORD,PUINT);
1307 WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoW(PCWSTR,PWSTR*,PDWORD,PDWORD,PUINT);
1308 WINSETUPAPI BOOL WINAPI SetupGetInfFileListA(PCSTR,DWORD,PSTR,DWORD,PDWORD);
1309 WINSETUPAPI BOOL WINAPI SetupGetInfFileListW(PCWSTR,DWORD,PWSTR,DWORD,PDWORD);
1310 WINSETUPAPI BOOL WINAPI SetupGetInfInformationA(LPCVOID,DWORD,PSP_INF_INFORMATION,DWORD,PDWORD);
1311 WINSETUPAPI BOOL WINAPI SetupGetInfInformationW(LPCVOID,DWORD,PSP_INF_INFORMATION,DWORD,PDWORD);
1312 WINSETUPAPI BOOL WINAPI SetupGetIntField(PINFCONTEXT,DWORD,PINT);
1313 WINSETUPAPI BOOL WINAPI SetupGetLineByIndexA(HINF,PCSTR,DWORD,PINFCONTEXT);
1314 WINSETUPAPI BOOL WINAPI SetupGetLineByIndexW(HINF,PCWSTR,DWORD,PINFCONTEXT);
1315 WINSETUPAPI LONG WINAPI SetupGetLineCountA(HINF,PCSTR);
1316 WINSETUPAPI LONG WINAPI SetupGetLineCountW(HINF,PCWSTR);
1317 WINSETUPAPI BOOL WINAPI SetupGetLineTextA(PINFCONTEXT,HINF,PCSTR,PCSTR,PSTR,DWORD,PDWORD);
1318 WINSETUPAPI BOOL WINAPI SetupGetLineTextW(PINFCONTEXT,HINF,PCWSTR,PCWSTR,PWSTR,DWORD,PDWORD);
1319 WINSETUPAPI BOOL WINAPI SetupGetMultiSzFieldA(PINFCONTEXT,DWORD,PSTR,DWORD,LPDWORD);
1320 WINSETUPAPI BOOL WINAPI SetupGetMultiSzFieldW(PINFCONTEXT,DWORD,PWSTR,DWORD,LPDWORD);
1321 WINSETUPAPI BOOL WINAPI SetupGetSourceFileLocationA(HINF,PINFCONTEXT,PCSTR,PUINT,PSTR,DWORD,PDWORD);
1322 WINSETUPAPI BOOL WINAPI SetupGetSourceFileLocationW(HINF,PINFCONTEXT,PCWSTR,PUINT,PWSTR,DWORD,PDWORD);
1323 WINSETUPAPI BOOL WINAPI SetupGetSourceFileSizeA(HINF,PINFCONTEXT,PCSTR,PCSTR,PDWORD,UINT);
1324 WINSETUPAPI BOOL WINAPI SetupGetSourceFileSizeW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PDWORD,UINT);
1325 WINSETUPAPI BOOL WINAPI SetupGetSourceInfoA(HINF,UINT,UINT,PSTR,DWORD,PDWORD);
1326 WINSETUPAPI BOOL WINAPI SetupGetSourceInfoW(HINF,UINT,UINT,PWSTR,DWORD,PDWORD);
1327 WINSETUPAPI BOOL WINAPI SetupGetStringFieldA(PINFCONTEXT,DWORD,PSTR,DWORD,PDWORD);
1328 WINSETUPAPI BOOL WINAPI SetupGetStringFieldW(PINFCONTEXT,DWORD,PWSTR,DWORD,PDWORD);
1329 WINSETUPAPI BOOL WINAPI SetupGetTargetPathA(HINF,PINFCONTEXT,PCSTR,PSTR,DWORD,PDWORD);
1330 WINSETUPAPI BOOL WINAPI SetupGetTargetPathW(HINF,PINFCONTEXT,PCWSTR,PWSTR,DWORD,PDWORD);
1331 WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallback(HWND);
1332 WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallbackEx(HWND,HWND,UINT,DWORD,PVOID);
1333 WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogA(PCSTR,DWORD);
1334 WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogW(PCWSTR,DWORD);
1335 WINSETUPAPI BOOL WINAPI SetupInstallFileA(HINF,PINFCONTEXT,PCSTR,PCSTR,PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID);
1336 WINSETUPAPI BOOL WINAPI SetupInstallFileW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID);
1337 WINSETUPAPI BOOL WINAPI SetupInstallFileExA(HINF,PINFCONTEXT,PCSTR,PCSTR,PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID,PBOOL);
1338 WINSETUPAPI BOOL WINAPI SetupInstallFileExW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID,PBOOL);
1339 WINSETUPAPI BOOL WINAPI SetupInstallFilesFromInfSectionA(HINF,HINF,HSPFILEQ,PCSTR,PCSTR,UINT);
1340 WINSETUPAPI BOOL WINAPI SetupInstallFilesFromInfSectionW(HINF,HINF,HSPFILEQ,PCWSTR,PCWSTR,UINT);
1341 WINSETUPAPI BOOL WINAPI SetupInstallFromInfSectionA(HWND,HINF,PCSTR,UINT,HKEY,PCSTR,UINT,PSP_FILE_CALLBACK_A,PVOID,HDEVINFO,PSP_DEVINFO_DATA);
1342 WINSETUPAPI BOOL WINAPI SetupInstallFromInfSectionW(HWND,HINF,PCWSTR,UINT,HKEY,PCWSTR,UINT,PSP_FILE_CALLBACK_W,PVOID,HDEVINFO,PSP_DEVINFO_DATA);
1343 WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionA(HINF,PCSTR,DWORD);
1344 WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionW(HINF,PCWSTR,DWORD);
1345 WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionExA(HINF,PCSTR,DWORD,HDEVINFO,PSP_DEVINFO_DATA,PVOID,PVOID);
1346 WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionExW(HINF,PCWSTR,DWORD,HDEVINFO,PSP_DEVINFO_DATA,PVOID,PVOID);
1347 WINSETUPAPI BOOL WINAPI SetupIterateCabinetA(PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID);
1348 WINSETUPAPI BOOL WINAPI SetupIterateCabinetW(PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID);
1349 WINSETUPAPI BOOL WINAPI SetupLogErrorA(LPCSTR,LogSeverity);
1350 WINSETUPAPI BOOL WINAPI SetupLogErrorW(LPCWSTR,LogSeverity);
1351 WINSETUPAPI BOOL WINAPI SetupLogFileA(HSPFILELOG,PCSTR,PCSTR,PCSTR,DWORD,PCSTR,PCSTR,PCSTR,DWORD);
1352 WINSETUPAPI BOOL WINAPI SetupLogFileW(HSPFILELOG,PCWSTR,PCWSTR,PCWSTR,DWORD,PCWSTR,PCWSTR,PCWSTR,DWORD);
1353 WINSETUPAPI BOOL WINAPI SetupOpenAppendInfFileA(PCSTR,HINF,PUINT);
1354 WINSETUPAPI BOOL WINAPI SetupOpenAppendInfFileW(PCWSTR,HINF,PUINT);
1355 WINSETUPAPI HSPFILEQ WINAPI SetupOpenFileQueue(VOID);
1356 WINSETUPAPI HINF WINAPI SetupOpenInfFileA(PCSTR,PCSTR,DWORD,PUINT);
1357 WINSETUPAPI HINF WINAPI SetupOpenInfFileW(PCWSTR,PCWSTR,DWORD,PUINT);
1358 WINSETUPAPI BOOL WINAPI SetupOpenLog(BOOL);
1359 WINSETUPAPI HINF WINAPI SetupOpenMasterInf(VOID);
1360 WINSETUPAPI UINT WINAPI SetupPromptForDiskA(HWND,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,DWORD,PSTR,DWORD,PDWORD);
1361 WINSETUPAPI UINT WINAPI SetupPromptForDiskW(HWND,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,DWORD,PWSTR,DWORD,PDWORD);
1362 WINSETUPAPI INT WINAPI SetupPromptReboot(HSPFILEQ,HWND,BOOL);
1363 WINSETUPAPI BOOL WINAPI SetupQueryA(DWORD,PCSTR**,PUINT);
1364 WINSETUPAPI BOOL WINAPI SetupQueryW(DWORD,PCWSTR**,PUINT);
1365 WINSETUPAPI BOOL WINAPI SetupQueryDrivesInDiskSpaceListA(HDSKSPC,PSTR,DWORD,PDWORD);
1366 WINSETUPAPI BOOL WINAPI SetupQueryDrivesInDiskSpaceListW(HDSKSPC,PWSTR,DWORD,PDWORD);
1367 WINSETUPAPI BOOL WINAPI SetupQueryFileLogA(HSPFILELOG,PCSTR,PCSTR,SetupFileLogInfo,PSTR,DWORD,PDWORD);
1368 WINSETUPAPI BOOL WINAPI SetupQueryFileLogW(HSPFILELOG,PCWSTR,PCWSTR,SetupFileLogInfo,PWSTR,DWORD,PDWORD);
1369 WINSETUPAPI BOOL WINAPI SetupQueryInfFileInformationA(PSP_INF_INFORMATION,UINT,PSTR,DWORD,PDWORD);
1370 WINSETUPAPI BOOL WINAPI SetupQueryInfFileInformationW(PSP_INF_INFORMATION,UINT,PWSTR,DWORD,PDWORD);
1371 WINSETUPAPI BOOL WINAPI SetupQueryInfOriginalFileInformationA(PSP_INF_INFORMATION,UINT,PSP_ALTPLATFORM_INFO,PSP_ORIGINAL_FILE_INFO_A);
1372 WINSETUPAPI BOOL WINAPI SetupQueryInfOriginalFileInformationW(PSP_INF_INFORMATION,UINT,PSP_ALTPLATFORM_INFO,PSP_ORIGINAL_FILE_INFO_W);
1373 WINSETUPAPI BOOL WINAPI SetupQueryInfVersionInformationA(PSP_INF_INFORMATION,UINT,PSTR,PSTR,DWORD,PDWORD);
1374 WINSETUPAPI BOOL WINAPI SetupQueryInfVersionInformationW(PSP_INF_INFORMATION,UINT,PCWSTR,PWSTR,DWORD,PDWORD);
1375 WINSETUPAPI BOOL WINAPI SetupQuerySpaceRequiredOnDriveA(HDSKSPC,PCSTR,LONGLONG*,PVOID,UINT);
1376 WINSETUPAPI BOOL WINAPI SetupQuerySpaceRequiredOnDriveW(HDSKSPC,PCWSTR,LONGLONG*,PVOID,UINT);
1377 WINSETUPAPI BOOL WINAPI SetupQueueCopyA(HSPFILEQ,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,DWORD);
1378 WINSETUPAPI BOOL WINAPI SetupQueueCopyW(HSPFILEQ,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,DWORD);
1379 WINSETUPAPI BOOL WINAPI SetupQueueCopyIndirectA(PSP_FILE_COPY_PARAMS_A);
1380 WINSETUPAPI BOOL WINAPI SetupQueueCopyIndirectW(PSP_FILE_COPY_PARAMS_W);
1381 WINSETUPAPI BOOL WINAPI SetupQueueCopySectionA(HSPFILEQ,PCSTR,HINF,HINF,PCSTR,DWORD);
1382 WINSETUPAPI BOOL WINAPI SetupQueueCopySectionW(HSPFILEQ,PCWSTR,HINF,HINF,PCWSTR,DWORD);
1383 WINSETUPAPI BOOL WINAPI SetupQueueDefaultCopyA(HSPFILEQ,HINF,PCSTR,PCSTR,PCSTR,DWORD);
1384 WINSETUPAPI BOOL WINAPI SetupQueueDefaultCopyW(HSPFILEQ,HINF,PCWSTR,PCWSTR,PCWSTR,DWORD);
1385 WINSETUPAPI BOOL WINAPI SetupQueueDeleteA(HSPFILEQ,PCSTR,PCSTR);
1386 WINSETUPAPI BOOL WINAPI SetupQueueDeleteW(HSPFILEQ,PCWSTR,PCWSTR);
1387 WINSETUPAPI BOOL WINAPI SetupQueueDeleteSectionA(HSPFILEQ,HINF,HINF,PCSTR);
1388 WINSETUPAPI BOOL WINAPI SetupQueueDeleteSectionW(HSPFILEQ,HINF,HINF,PCWSTR);
1389 WINSETUPAPI BOOL WINAPI SetupQueueRenameA(HSPFILEQ,PCSTR,PCSTR,PCSTR,PCSTR);
1390 WINSETUPAPI BOOL WINAPI SetupQueueRenameW(HSPFILEQ,PCWSTR,PCWSTR,PCWSTR,PCWSTR);
1391 WINSETUPAPI BOOL WINAPI SetupQueueRenameSectionA(HSPFILEQ,HINF,HINF,PCSTR);
1392 WINSETUPAPI BOOL WINAPI SetupQueueRenameSectionW(HSPFILEQ,HINF,HINF,PCWSTR);
1393 WINSETUPAPI BOOL WINAPI SetupRemoveFileLogEntryA(HSPFILELOG,PCSTR,PCSTR);
1394 WINSETUPAPI BOOL WINAPI SetupRemoveFileLogEntryW(HSPFILELOG,PCWSTR,PCWSTR);
1395 WINSETUPAPI BOOL WINAPI SetupRemoveFromDiskSpaceListA(HDSKSPC,PCSTR,UINT,PVOID,UINT);
1396 WINSETUPAPI BOOL WINAPI SetupRemoveFromDiskSpaceListW(HDSKSPC,PCWSTR,UINT,PVOID,UINT);
1397 WINSETUPAPI BOOL WINAPI SetupRemoveFromSourceListA(DWORD,PCSTR);
1398 WINSETUPAPI BOOL WINAPI SetupRemoveFromSourceListW(DWORD,PCWSTR);
1399 WINSETUPAPI BOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT);
1400 WINSETUPAPI BOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT);
1401 WINSETUPAPI BOOL WINAPI SetupRemoveSectionFromDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,UINT,PVOID,UINT);
1402 WINSETUPAPI BOOL WINAPI SetupRemoveSectionFromDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,UINT,PVOID,UINT);
1403 WINSETUPAPI UINT WINAPI SetupRenameErrorA(HWND,PCSTR,PCSTR,PCSTR,UINT,DWORD);
1404 WINSETUPAPI UINT WINAPI SetupRenameErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD);
1405 WINSETUPAPI BOOL WINAPI SetupScanFileQueueA(HSPFILEQ,DWORD,HWND,PSP_FILE_CALLBACK_A,PVOID,PDWORD);
1406 WINSETUPAPI BOOL WINAPI SetupScanFileQueueW(HSPFILEQ,DWORD,HWND,PSP_FILE_CALLBACK_W,PVOID,PDWORD);
1407 WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdA(HINF,DWORD,PCSTR);
1408 WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdW(HINF,DWORD,PCWSTR);
1409 WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdExA(HINF,DWORD,PCSTR,DWORD,DWORD,PVOID);
1410 WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdExW(HINF,DWORD,PCWSTR,DWORD,DWORD,PVOID);
1411 WINSETUPAPI BOOL WINAPI SetupSetFileQueueAlternatePlatformA(HSPFILEQ,PSP_ALTPLATFORM_INFO,PCSTR);
1412 WINSETUPAPI BOOL WINAPI SetupSetFileQueueAlternatePlatformW(HSPFILEQ,PSP_ALTPLATFORM_INFO,PCWSTR);
1413 WINSETUPAPI BOOL WINAPI SetupSetPlatformPathOverrideA(PCSTR);
1414 WINSETUPAPI BOOL WINAPI SetupSetPlatformPathOverrideW(PCWSTR);
1415 WINSETUPAPI BOOL WINAPI SetupSetSourceListA(DWORD,PCSTR*,UINT);
1416 WINSETUPAPI BOOL WINAPI SetupSetSourceListW(DWORD,PCWSTR*,UINT);
1417 WINSETUPAPI VOID WINAPI SetupTermDefaultQueueCallback(PVOID);
1418 WINSETUPAPI BOOL WINAPI SetupTerminateFileLog(HSPFILELOG);
1419
1420 WINSETUPAPI DWORD WINAPI StampFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR);
1421
1422 WINSETUPAPI DWORD WINAPI StringTableAddString(HSTRING_TABLE, LPWSTR, DWORD);
1423 WINSETUPAPI DWORD WINAPI StringTableAddStringEx(HSTRING_TABLE, LPWSTR, DWORD, LPVOID, DWORD);
1424 WINSETUPAPI VOID WINAPI StringTableDestroy(HSTRING_TABLE);
1425 WINSETUPAPI HSTRING_TABLE WINAPI StringTableDuplicate(HSTRING_TABLE);
1426 WINSETUPAPI BOOL WINAPI StringTableGetExtraData(HSTRING_TABLE, DWORD, LPVOID, DWORD);
1427 WINSETUPAPI HSTRING_TABLE WINAPI StringTableInitialize(VOID);
1428 WINSETUPAPI HSTRING_TABLE WINAPI StringTableInitializeEx(DWORD, DWORD);
1429 WINSETUPAPI DWORD WINAPI StringTableLookUpString(HSTRING_TABLE, LPWSTR, DWORD);
1430 WINSETUPAPI DWORD WINAPI StringTableLookUpStringEx(HSTRING_TABLE, LPWSTR, DWORD, LPVOID, LPDWORD);
1431 WINSETUPAPI BOOL WINAPI StringTableSetExtraData(HSTRING_TABLE, DWORD, LPVOID, DWORD);
1432 WINSETUPAPI LPWSTR WINAPI StringTableStringFromId(HSTRING_TABLE, DWORD);
1433 WINSETUPAPI BOOL WINAPI StringTableStringFromIdEx(HSTRING_TABLE, DWORD, LPWSTR, LPDWORD);
1434 WINSETUPAPI VOID WINAPI StringTableTrim(HSTRING_TABLE);
1435
1436 WINSETUPAPI DWORD WINAPI TakeOwnershipOfFile(PCWSTR);
1437 WINSETUPAPI PSTR WINAPI UnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage);
1438 WINSETUPAPI BOOL WINAPI UnmapAndCloseFile(HANDLE, HANDLE, PVOID);
1439
1440
1441 /* for backward compatability */
1442 #define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW
1443 #define SetupDiCreateInterfaceDeviceRegKeyW SetupDiCreateDeviceInterfaceRegKeyW
1444 #define SetupDiOpenInterfaceDeviceW SetupDiOpenDeviceInterfaceW
1445 #define SetupDiGetInterfaceDeviceDetailW SetupDiGetDeviceInterfaceDetailW
1446 #define SetupDiCreateInterfaceDeviceA SetupDiCreateDeviceInterfaceA
1447 #define SetupDiCreateInterfaceDeviceRegKeyA SetupDiCreateDeviceInterfaceRegKeyA
1448 #define SetupDiOpenInterfaceDeviceA SetupDiOpenDeviceInterfaceA
1449 #define SetupDiGetInterfaceDeviceDetailA SetupDiGetDeviceInterfaceDetailA
1450
1451 #ifdef UNICODE
1452 #define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_W
1453 #define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListW
1454 #define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListW
1455 #define SetupAddToDiskSpaceList SetupAddToDiskSpaceListW
1456 #define SetupAddToSourceList SetupAddToSourceListW
1457 #define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListW
1458 #define SetupBackupError SetupBackupErrorW
1459 #define SetupCommitFileQueue SetupCommitFileQueueW
1460 #define SetupCopyError SetupCopyErrorW
1461 #define SetupCopyOEMInf SetupCopyOEMInfW
1462 #define SetupCreateDiskSpaceList SetupCreateDiskSpaceListW
1463 #define SetupDecompressOrCopyFile SetupDecompressOrCopyFileW
1464 #define SetupDefaultQueueCallback SetupDefaultQueueCallbackW
1465 #define SetupDeleteError SetupDeleteErrorW
1466 #define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExW
1467 #define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExW
1468 #define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameW
1469 #define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExW
1470 #define SetupDiClassNameFromGuid SetupDiClassNameFromGuidW
1471 #define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExW
1472 #define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoW
1473 #define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyW
1474 #define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyW
1475 #define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceW
1476 #define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceW
1477 #define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyW
1478 #define SetupDiEnumDriverInfo SetupDiEnumDriverInfoW
1479 #define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallW
1480 #define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExW
1481 #define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExW
1482 #define SetupDiGetClassDescription SetupDiGetClassDescriptionW
1483 #define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsW
1484 #define SetupDiGetClassDevsEx SetupDiGetClassDevsExW
1485 #define SetupDiGetClassDevs SetupDiGetClassDevsW
1486 #define SetupDiGetClassImageListEx SetupDiGetClassImageListExW
1487 #define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsW
1488 #define SetupDiGetClassRegistryProperty SetupDiGetClassRegistryPropertyW
1489 #define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailW
1490 #define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsW
1491 #define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdW
1492 #define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailW
1493 #define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailW
1494 #define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyW
1495 #define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailW
1496 #define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsW
1497 #define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExW
1498 #define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameW
1499 #define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExW
1500 #define SetupDiGetINFClass SetupDiGetINFClassW
1501 #define SetupDiGetSelectedDriver SetupDiGetSelectedDriverW
1502 #define SetupDiInstallClassEx SetupDiInstallClassExW
1503 #define SetupDiInstallClass SetupDiInstallClassW
1504 #define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExW
1505 #define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoW
1506 #define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceW
1507 #define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceW
1508 #define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsW
1509 #define SetupDiSetClassRegistryProperty SetupDiSetClassRegistryPropertyW
1510 #define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsW
1511 #define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyW
1512 #define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsW
1513 #define SetupDiSetSelectedDriver SetupDiSetSelectedDriverW
1514 #define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListW
1515 #define SetupFindFirstLine SetupFindFirstLineW
1516 #define SetupFindNextMatchLine SetupFindNextMatchLineW
1517 #define SetupFreeSourceList SetupFreeSourceListW
1518 #define SetupGetBackupInformation SetupGetBackupInformationW
1519 #define SetupGetFileCompressionInfo SetupGetFileCompressionInfoW
1520 #define SetupGetInfFileList SetupGetInfFileListW
1521 #define SetupGetInfInformation SetupGetInfInformationW
1522 #define SetupGetLineByIndex SetupGetLineByIndexW
1523 #define SetupGetLineCount SetupGetLineCountW
1524 #define SetupGetLineText SetupGetLineTextW
1525 #define SetupGetMultiSzField SetupGetMultiSzFieldW
1526 #define SetupGetSourceFileLocation SetupGetSourceFileLocationW
1527 #define SetupGetSourceFileSize SetupGetSourceFileSizeW
1528 #define SetupGetSourceInfo SetupGetSourceInfoW
1529 #define SetupGetStringField SetupGetStringFieldW
1530 #define SetupGetTargetPath SetupGetTargetPathW
1531 #define SetupInitializeFileLog SetupInitializeFileLogW
1532 #define SetupInstallFileEx SetupInstallFileExW
1533 #define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionW
1534 #define SetupInstallFile SetupInstallFileW
1535 #define SetupInstallFromInfSection SetupInstallFromInfSectionW
1536 #define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExW
1537 #define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionW
1538 #define SetupIterateCabinet SetupIterateCabinetW
1539 #define SetupLogError SetupLogErrorW
1540 #define SetupLogFile SetupLogFileW
1541 #define SetupOpenAppendInfFile SetupOpenAppendInfFileW
1542 #define SetupOpenInfFile SetupOpenInfFileW
1543 #define SetupPromptForDisk SetupPromptForDiskW
1544 #define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListW
1545 #define SetupQueryFileLog SetupQueryFileLogW
1546 #define SetupQueryInfFileInformation SetupQueryInfFileInformationW
1547 #define SetupQueryInfOriginalFileInformation SetupQueryInfOriginalFileInformationW
1548 #define SetupQueryInfVersionInformation SetupQueryInfVersionInformationW
1549 #define SetupQuerySourceList SetupQuerySourceListW
1550 #define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveW
1551 #define SetupQueueCopyIndirect SetupQueueCopyIndirectW
1552 #define SetupQueueCopySection SetupQueueCopySectionW
1553 #define SetupQueueCopy SetupQueueCopyW
1554 #define SetupQueueDefaultCopy SetupQueueDefaultCopyW
1555 #define SetupQueueDeleteSection SetupQueueDeleteSectionW
1556 #define SetupQueueDelete SetupQueueDeleteW
1557 #define SetupQueueRenameSection SetupQueueRenameSectionW
1558 #define SetupQueueRename SetupQueueRenameW
1559 #define SetupRemoveFileLogEntry SetupRemoveFileLogEntryW
1560 #define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListW
1561 #define SetupRemoveFromSourceList SetupRemoveFromSourceListW
1562 #define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListW
1563 #define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListW
1564 #define SetupRenameError SetupRenameErrorW
1565 #define SetupScanFileQueue SetupScanFileQueueW
1566 #define SetupSetDirectoryIdEx SetupSetDirectoryIdExW
1567 #define SetupSetDirectoryId SetupSetDirectoryIdW
1568 #define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformW
1569 #define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideW
1570 #define SetupSetSourceList SetupSetSourceListW
1571 #else
1572 #define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_A
1573 #define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListA
1574 #define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListA
1575 #define SetupAddToDiskSpaceList SetupAddToDiskSpaceListA
1576 #define SetupAddToSourceList SetupAddToSourceListA
1577 #define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListA
1578 #define SetupBackupError SetupBackupErrorA
1579 #define SetupCommitFileQueue SetupCommitFileQueueA
1580 #define SetupCopyError SetupCopyErrorA
1581 #define SetupCopyOEMInf SetupCopyOEMInfA
1582 #define SetupCreateDiskSpaceList SetupCreateDiskSpaceListA
1583 #define SetupDecompressOrCopyFile SetupDecompressOrCopyFileA
1584 #define SetupDefaultQueueCallback SetupDefaultQueueCallbackA
1585 #define SetupDeleteError SetupDeleteErrorA
1586 #define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExA
1587 #define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameA
1588 #define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExA
1589 #define SetupDiClassNameFromGuid SetupDiClassNameFromGuidA
1590 #define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExA
1591 #define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoA
1592 #define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExA
1593 #define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceA
1594 #define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceA
1595 #define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyA
1596 #define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyA
1597 #define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyA
1598 #define SetupDiDeleteInterfaceDeviceData SetupDiDeleteDeviceInterfaceData
1599 #define SetupDiEnumDriverInfo SetupDiEnumDriverInfoA
1600 #define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallA
1601 #define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExA
1602 #define SetupDiGetClassDescription SetupDiGetClassDescriptionA
1603 #define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExA
1604 #define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsA
1605 #define SetupDiGetClassDevs SetupDiGetClassDevsA
1606 #define SetupDiGetClassDevsEx SetupDiGetClassDevsExA
1607 #define SetupDiGetClassImageListEx SetupDiGetClassImageListExA
1608 #define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsA
1609 #define SetupDiGetClassRegistryProperty SetupDiGetClassRegistryPropertyA
1610 #define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailA
1611 #define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsA
1612 #define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdA
1613 #define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailA
1614 #define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailA
1615 #define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyA
1616 #define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailA
1617 #define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsA
1618 #define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameA
1619 #define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExA
1620 #define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExA
1621 #define SetupDiGetINFClass SetupDiGetINFClassA
1622 #define SetupDiGetSelectedDriver SetupDiGetSelectedDriverA
1623 #define SetupDiInstallClass SetupDiInstallClassA
1624 #define SetupDiInstallClassEx SetupDiInstallClassExA
1625 #define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExA
1626 #define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoA
1627 #define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceA
1628 #define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceA
1629 #define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsA
1630 #define SetupDiSetClassRegistryProperty SetupDiSetClassRegistryPropertyA
1631 #define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsA
1632 #define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyA
1633 #define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsA
1634 #define SetupDiSetSelectedDriver SetupDiSetSelectedDriverA
1635 #define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListA
1636 #define SetupFindFirstLine SetupFindFirstLineA
1637 #define SetupFindNextMatchLine SetupFindNextMatchLineA
1638 #define SetupFreeSourceList SetupFreeSourceListA
1639 #define SetupGetBackupInformation SetupGetBackupInformationA
1640 #define SetupGetFileCompressionInfo SetupGetFileCompressionInfoA
1641 #define SetupGetInfFileList SetupGetInfFileListA
1642 #define SetupGetInfInformation SetupGetInfInformationA
1643 #define SetupGetLineByIndex SetupGetLineByIndexA
1644 #define SetupGetLineCount SetupGetLineCountA
1645 #define SetupGetLineText SetupGetLineTextA
1646 #define SetupGetMultiSzField SetupGetMultiSzFieldA
1647 #define SetupGetSourceFileLocation SetupGetSourceFileLocationA
1648 #define SetupGetSourceFileSize SetupGetSourceFileSizeA
1649 #define SetupGetSourceInfo SetupGetSourceInfoA
1650 #define SetupGetStringField SetupGetStringFieldA
1651 #define SetupGetTargetPath SetupGetTargetPathA
1652 #define SetupInitializeFileLog SetupInitializeFileLogA
1653 #define SetupInstallFile SetupInstallFileA
1654 #define SetupInstallFileEx SetupInstallFileExA
1655 #define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionA
1656 #define SetupInstallFromInfSection SetupInstallFromInfSectionA
1657 #define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionA
1658 #define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExA
1659 #define SetupIterateCabinet SetupIterateCabinetA
1660 #define SetupLogError SetupLogErrorA
1661 #define SetupLogFile SetupLogFileA
1662 #define SetupOpenAppendInfFile SetupOpenAppendInfFileA
1663 #define SetupOpenInfFile SetupOpenInfFileA
1664 #define SetupPromptForDisk SetupPromptForDiskA
1665 #define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListA
1666 #define SetupQueryFileLog SetupQueryFileLogA
1667 #define SetupQueryInfFileInformation SetupQueryInfFileInformationA
1668 #define SetupQueryInfOriginalFileInformation SetupQueryInfOriginalFileInformationA
1669 #define SetupQueryInfVersionInformation SetupQueryInfVersionInformationA
1670 #define SetupQuerySourceList SetupQuerySourceListA
1671 #define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveA
1672 #define SetupQueueCopy SetupQueueCopyA
1673 #define SetupQueueCopyIndirect SetupQueueCopyIndirectA
1674 #define SetupQueueCopySection SetupQueueCopySectionA
1675 #define SetupQueueDefaultCopy SetupQueueDefaultCopyA
1676 #define SetupQueueDelete SetupQueueDeleteA
1677 #define SetupQueueDeleteSection SetupQueueDeleteSectionA
1678 #define SetupQueueRename SetupQueueRenameA
1679 #define SetupQueueRenameSection SetupQueueRenameSectionA
1680 #define SetupRemoveFileLogEntry SetupRemoveFileLogEntryA
1681 #define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListA
1682 #define SetupRemoveFromSourceList SetupRemoveFromSourceListA
1683 #define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListA
1684 #define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListA
1685 #define SetupRenameError SetupRenameErrorA
1686 #define SetupScanFileQueue SetupScanFileQueueA
1687 #define SetupSetDirectoryId SetupSetDirectoryIdA
1688 #define SetupSetDirectoryIdEx SetupSetDirectoryIdExA
1689 #define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformA
1690 #define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideA
1691 #define SetupSetSourceList SetupSetSourceListA
1692 #endif /* UNICODE */
1693
1694 #endif /* RC_INVOKED */
1695
1696 #ifdef __cplusplus
1697 }
1698 #endif
1699
1700 #include <poppack.h>
1701 #endif /* _SETUPAPI_H_ */
1702