4 #include "wine/windef16.h"
7 typedef UINT16 LOGDISKID16;
11 /* error codes stuff */
13 typedef UINT16 RETERR16;
15 #define IP_ERROR (UINT16)100
16 #define TP_ERROR (UINT16)200
17 #define VCP_ERROR (UINT16)300
18 #define GEN_ERROR (UINT16)400
19 #define DI_ERROR (UINT16)500
22 ERR_IP_INVALID_FILENAME = IP_ERROR+1,
24 ERR_IP_INVALID_SECT_NAME,
25 ERR_IP_OUT_OF_HANDLES,
27 ERR_IP_INVALID_INFFILE,
30 ERR_IP_SECT_NOT_FOUND,
31 ERR_IP_END_OF_SECTION,
32 ERR_IP_PROFILE_NOT_FOUND,
33 ERR_IP_LINE_NOT_FOUND,
35 ERR_IP_TOOMANYINFFILES,
36 ERR_IP_INVALID_SAVERESTORE,
37 ERR_IP_INVALID_INFTYPE
41 ERR_VCP_IOFAIL = VCP_ERROR+1,
42 ERR_VCP_STRINGTOOLONG,
61 ERR_VCP_LDDPATH_INVALID,
64 ERR_VCP_NO_DIGITAL_SIGNATURE_CATALOG,
65 ERR_VCP_NO_DIGITAL_SIGNATURE_FILE
68 /****** logical disk management ******/
70 typedef struct _LOGDISKDESC_S { /* ldd */
71 WORD cbSize; /* struct size */
72 LOGDISKID16 ldid; /* logical disk ID */
73 LPSTR pszPath; /* path this descriptor points to */
74 LPSTR pszVolLabel; /* volume label of the disk related to it */
75 LPSTR pszDiskName; /* name of this disk */
76 WORD wVolTime; /* modification time of volume label */
77 WORD wVolDate; /* modification date */
78 DWORD dwSerNum; /* serial number of disk */
80 } LOGDISKDESC_S, *LPLOGDISKDESC;
82 /** logical disk identifiers (LDID) **/
84 /* predefined LDIDs */
85 #define LDID_PREDEF_START 0x0001
86 #define LDID_PREDEF_END 0x7fff
88 /* registry-assigned LDIDs */
89 #define LDID_VAR_START 0x7000
90 #define LDID_VAR_END 0x7fff
92 /* dynamically assigned LDIDs */
93 #define LDID_ASSIGN_START 0x8000
94 #define LDID_ASSIGN_END 0xbfff
97 #define LDID_ABSOLUTE ((UINT)-1)
98 #define LDID_SRCPATH 1 /* setup source path */
99 #define LDID_SETUPTEMP 2 /* setup temp dir */
100 #define LDID_UNINSTALL 3 /* uninstall dir */
101 #define LDID_BACKUP 4 /* backup dir */
102 #define LDID_SETUPSCRATCH 5 /* setup scratch dir */
103 #define LDID_WIN 10 /* win dir */
104 #define LDID_SYS 11 /* win system dir */
105 #define LDID_IOS 12 /* win Iosubsys dir */
106 #define LDID_CMD 13 /* win command dir */
107 #define LDID_CPL 14 /* win control panel dir */
108 #define LDID_PRINT 15 /* win printer dir */
109 #define LDID_MAIL 16 /* win mail dir */
110 #define LDID_INF 17 /* win inf dir */
111 #define LDID_HELP 18 /* win help dir */
112 #define LDID_WINADMIN 19 /* admin dir */
113 #define LDID_FONTS 20 /* win fonts dir */
114 #define LDID_VIEWERS 21 /* win viewers dir */
115 #define LDID_VMM32 22 /* win VMM32 dir */
116 #define LDID_COLOR 23 /* win color mngment dir */
117 #define LDID_APPS 24 /* win apps dir */
118 #define LDID_SHARED 25 /* win shared dir */
119 #define LDID_WINBOOT 26 /* guaranteed win boot drive */
120 #define LDID_MACHINE 27 /* machine specific files */
121 #define LDID_HOST_WINBOOT 28
122 #define LDID_BOOT 30 /* boot drive root dir */
123 #define LDID_BOOT_HOST 31 /* boot drive host root dir */
124 #define LDID_OLD_WINBOOT 32 /* root subdir */
125 #define LDID_OLD_WIN 33 /* old windows dir */
127 /* flags for GenInstall() */
128 #define GENINSTALL_DO_FILES 1
129 #define GENINSTALL_DO_INI 2
130 #define GENINSTALL_DO_REG 4
131 #define GENINSTALL_DO_INI2REG 8
132 #define GENINSTALL_DO_CFGAUTO 16
133 #define GENINSTALL_DO_LOGCONFIG 32
134 #define GENINSTALL_DO_REGSRCPATH 64
135 #define GENINSTALL_DO_PERUSER 128
137 #define GEINISTALL_DO_INIREG 14
138 #define GENINSTALL_DO_ALL 255
141 * flags for InstallHinfSection()
142 * 128 can be added, too. This means that the .inf file is provided by you
143 * instead of being a 32 bit file (i.e. Windows .inf file).
144 * In this case all files you install must be in the same dir
145 * as your .inf file on the install disk.
147 #define HOW_NEVER_REBOOT 0
148 #define HOW_ALWAYS_SILENT_REBOOT 1
149 #define HOW_ALWAYS_PROMPT_REBOOT 2
150 #define HOW_SILENT_REBOOT 3
151 #define HOW_PROMPT_REBOOT 4
153 /****** device installation stuff ******/
155 #define MAX_CLASS_NAME_LEN 32
156 #define MAX_DEVNODE_ID_LEN 256
157 #define MAX_GUID_STR 50
159 typedef struct _DEVICE_INFO
162 struct _DEVICE_INFO *lpNextDi;
163 char szDescription[LINE_LEN];
166 char szRegSubkey[MAX_DEVNODE_ID_LEN];
167 char szClassName[MAX_CLASS_NAME_LEN];
170 /*LPDRIVER_NODE*/ LPVOID lpCompatDrvList;
171 /*LPDRIVER_NODE*/ LPVOID lpClassDrvList;
172 /*LPDRIVER_NODE*/ LPVOID lpSelectedDriver;
175 HINSTANCE16 hinstClassInstaller;
176 HINSTANCE16 hinstClassPropProvidor;
177 HINSTANCE16 hinstDevicePropProvidor;
178 HINSTANCE16 hinstBasicPropProvidor;
179 FARPROC16 fpClassInstaller;
180 FARPROC16 fpClassEnumPropPages;
181 FARPROC16 fpDeviceEnumPropPages;
182 FARPROC16 fpEnumBasicProperties;
183 DWORD dwSetupReserved;
184 DWORD dwClassInstallReserved;
185 /*GENCALLBACKPROC*/ LPVOID gicpGenInstallCallBack;
190 HINSTANCE16 hinstPrivateProblemHandler;
191 FARPROC16 fpPrivateProblemHandler;
192 LPARAM lpClassInstallParams;
193 struct _DEVICE_INFO *lpdiChildList;
195 /*LPDRIVER_INFO*/ LPVOID lpCompatDrvInfoList;
196 /*LPDRIVER_INFO*/ LPVOID lpClassDrvInfoList;
197 char szClassGUID[MAX_GUID_STR];
198 } DEVICE_INFO16, *LPDEVICE_INFO16, **LPLPDEVICE_INFO16;
201 typedef LRESULT (CALLBACK *VIFPROC)(LPVOID lpvObj, UINT uMsg, WPARAM wParam, LPARAM lParam, LPARAM lparamRef);
203 extern void WINAPI GenFormStrWithoutPlaceHolders16(LPSTR,LPCSTR,HINF16);
204 extern RETERR16 WINAPI IpOpen16(LPCSTR,HINF16 *);
205 extern RETERR16 WINAPI IpClose16(HINF16);
206 extern RETERR16 WINAPI CtlSetLdd16(LPLOGDISKDESC);
207 extern RETERR16 WINAPI CtlGetLdd16(LPLOGDISKDESC);
208 extern RETERR16 WINAPI CtlFindLdd16(LPLOGDISKDESC);
209 extern RETERR16 WINAPI CtlAddLdd16(LPLOGDISKDESC);
210 extern RETERR16 WINAPI CtlDelLdd16(LOGDISKID16);
211 extern RETERR16 WINAPI GenInstall16(HINF16,LPCSTR,WORD);
213 #endif /* __SETUPX16_H */