| 1 | #ifndef __SETUPX16_H
|
|---|
| 2 | #define __SETUPX16_H
|
|---|
| 3 |
|
|---|
| 4 | #include "wine/windef16.h"
|
|---|
| 5 |
|
|---|
| 6 | typedef UINT16 HINF16;
|
|---|
| 7 | typedef UINT16 LOGDISKID16;
|
|---|
| 8 |
|
|---|
| 9 | #define LINE_LEN 256
|
|---|
| 10 |
|
|---|
| 11 | /* error codes stuff */
|
|---|
| 12 |
|
|---|
| 13 | typedef UINT16 RETERR16;
|
|---|
| 14 | #define OK 0
|
|---|
| 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
|
|---|
| 20 |
|
|---|
| 21 | enum _IP_ERR {
|
|---|
| 22 | ERR_IP_INVALID_FILENAME = IP_ERROR+1,
|
|---|
| 23 | ERR_IP_ALLOC_ERR,
|
|---|
| 24 | ERR_IP_INVALID_SECT_NAME,
|
|---|
| 25 | ERR_IP_OUT_OF_HANDLES,
|
|---|
| 26 | ERR_IP_INF_NOT_FOUND,
|
|---|
| 27 | ERR_IP_INVALID_INFFILE,
|
|---|
| 28 | ERR_IP_INVALID_HINF,
|
|---|
| 29 | ERR_IP_INVALID_FIELD,
|
|---|
| 30 | ERR_IP_SECT_NOT_FOUND,
|
|---|
| 31 | ERR_IP_END_OF_SECTION,
|
|---|
| 32 | ERR_IP_PROFILE_NOT_FOUND,
|
|---|
| 33 | ERR_IP_LINE_NOT_FOUND,
|
|---|
| 34 | ERR_IP_FILEREAD,
|
|---|
| 35 | ERR_IP_TOOMANYINFFILES,
|
|---|
| 36 | ERR_IP_INVALID_SAVERESTORE,
|
|---|
| 37 | ERR_IP_INVALID_INFTYPE
|
|---|
| 38 | };
|
|---|
| 39 |
|
|---|
| 40 | enum _ERR_VCP {
|
|---|
| 41 | ERR_VCP_IOFAIL = VCP_ERROR+1,
|
|---|
| 42 | ERR_VCP_STRINGTOOLONG,
|
|---|
| 43 | ERR_VCP_NOMEM,
|
|---|
| 44 | ERR_VCP_QUEUEFULL,
|
|---|
| 45 | ERR_VCP_NOVHSTR,
|
|---|
| 46 | ERR_VCP_OVERFLOW,
|
|---|
| 47 | ERR_VCP_BADARG,
|
|---|
| 48 | ERR_VCP_UNINIT,
|
|---|
| 49 | ERR_VCP_NOTFOUND,
|
|---|
| 50 | ERR_VCP_BUSY,
|
|---|
| 51 | ERR_VCP_INTERRUPTED,
|
|---|
| 52 | ERR_VCP_BADDEST,
|
|---|
| 53 | ERR_VCP_SKIPPED,
|
|---|
| 54 | ERR_VCP_IO,
|
|---|
| 55 | ERR_VCP_LOCKED,
|
|---|
| 56 | ERR_VCP_WRONGDISK,
|
|---|
| 57 | ERR_VCP_CHANGEMODE,
|
|---|
| 58 | ERR_VCP_LDDINVALID,
|
|---|
| 59 | ERR_VCP_LDDFIND,
|
|---|
| 60 | ERR_VCP_LDDUNINIT,
|
|---|
| 61 | ERR_VCP_LDDPATH_INVALID,
|
|---|
| 62 | ERR_VCP_NOEXPANSION,
|
|---|
| 63 | ERR_VCP_NOTOPEN,
|
|---|
| 64 | ERR_VCP_NO_DIGITAL_SIGNATURE_CATALOG,
|
|---|
| 65 | ERR_VCP_NO_DIGITAL_SIGNATURE_FILE
|
|---|
| 66 | };
|
|---|
| 67 |
|
|---|
| 68 | /****** logical disk management ******/
|
|---|
| 69 |
|
|---|
| 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 */
|
|---|
| 79 | WORD wFlags;
|
|---|
| 80 | } LOGDISKDESC_S, *LPLOGDISKDESC;
|
|---|
| 81 |
|
|---|
| 82 | /** logical disk identifiers (LDID) **/
|
|---|
| 83 |
|
|---|
| 84 | /* predefined LDIDs */
|
|---|
| 85 | #define LDID_PREDEF_START 0x0001
|
|---|
| 86 | #define LDID_PREDEF_END 0x7fff
|
|---|
| 87 |
|
|---|
| 88 | /* registry-assigned LDIDs */
|
|---|
| 89 | #define LDID_VAR_START 0x7000
|
|---|
| 90 | #define LDID_VAR_END 0x7fff
|
|---|
| 91 |
|
|---|
| 92 | /* dynamically assigned LDIDs */
|
|---|
| 93 | #define LDID_ASSIGN_START 0x8000
|
|---|
| 94 | #define LDID_ASSIGN_END 0xbfff
|
|---|
| 95 |
|
|---|
| 96 | #define LDID_NULL 0
|
|---|
| 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 */
|
|---|
| 126 |
|
|---|
| 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
|
|---|
| 136 |
|
|---|
| 137 | #define GEINISTALL_DO_INIREG 14
|
|---|
| 138 | #define GENINSTALL_DO_ALL 255
|
|---|
| 139 |
|
|---|
| 140 | /*
|
|---|
| 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.
|
|---|
| 146 | */
|
|---|
| 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
|
|---|
| 152 |
|
|---|
| 153 | /****** device installation stuff ******/
|
|---|
| 154 |
|
|---|
| 155 | #define MAX_CLASS_NAME_LEN 32
|
|---|
| 156 | #define MAX_DEVNODE_ID_LEN 256
|
|---|
| 157 | #define MAX_GUID_STR 50
|
|---|
| 158 |
|
|---|
| 159 | typedef struct _DEVICE_INFO
|
|---|
| 160 | {
|
|---|
| 161 | UINT16 cbSize;
|
|---|
| 162 | struct _DEVICE_INFO *lpNextDi;
|
|---|
| 163 | char szDescription[LINE_LEN];
|
|---|
| 164 | DWORD dnDevnode;
|
|---|
| 165 | HKEY hRegKey;
|
|---|
| 166 | char szRegSubkey[MAX_DEVNODE_ID_LEN];
|
|---|
| 167 | char szClassName[MAX_CLASS_NAME_LEN];
|
|---|
| 168 | DWORD Flags;
|
|---|
| 169 | HWND16 hwndParent;
|
|---|
| 170 | /*LPDRIVER_NODE*/ LPVOID lpCompatDrvList;
|
|---|
| 171 | /*LPDRIVER_NODE*/ LPVOID lpClassDrvList;
|
|---|
| 172 | /*LPDRIVER_NODE*/ LPVOID lpSelectedDriver;
|
|---|
| 173 | ATOM atDriverPath;
|
|---|
| 174 | ATOM atTempInfFile;
|
|---|
| 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;
|
|---|
| 186 |
|
|---|
| 187 | LPARAM gicplParam;
|
|---|
| 188 | UINT16 InfType;
|
|---|
| 189 |
|
|---|
| 190 | HINSTANCE16 hinstPrivateProblemHandler;
|
|---|
| 191 | FARPROC16 fpPrivateProblemHandler;
|
|---|
| 192 | LPARAM lpClassInstallParams;
|
|---|
| 193 | struct _DEVICE_INFO *lpdiChildList;
|
|---|
| 194 | DWORD dwFlagsEx;
|
|---|
| 195 | /*LPDRIVER_INFO*/ LPVOID lpCompatDrvInfoList;
|
|---|
| 196 | /*LPDRIVER_INFO*/ LPVOID lpClassDrvInfoList;
|
|---|
| 197 | char szClassGUID[MAX_GUID_STR];
|
|---|
| 198 | } DEVICE_INFO16, *LPDEVICE_INFO16, **LPLPDEVICE_INFO16;
|
|---|
| 199 |
|
|---|
| 200 |
|
|---|
| 201 | typedef LRESULT (CALLBACK *VIFPROC)(LPVOID lpvObj, UINT uMsg, WPARAM wParam, LPARAM lParam, LPARAM lparamRef);
|
|---|
| 202 |
|
|---|
| 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);
|
|---|
| 212 |
|
|---|
| 213 | #endif /* __SETUPX16_H */
|
|---|