home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 April / PCWorld_2008-04_cd.bin / temacd / devc++ / devcpp-4.9.9.2_setup.exe / setupapi.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  81KB  |  1,580 lines

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