home *** CD-ROM | disk | FTP | other *** search
/ Colorific 4.19 / Colorific.iso / pc / Disk2 / SETUPAPI.IN_ / SETUPAPI.bin
Encoding:
Text File  |  1995-03-05  |  24.5 KB  |  714 lines

  1. GLOBAL hSetup AS INTEGER
  2. GLOBAL fFrameInit AS INTEGER
  3. GLOBAL fInstallInit AS INTEGER
  4. CONST SM_CXSCREEN = 0
  5. CONST SM_CYSCREEN = 1
  6. CONST WF_80x87    = 1024
  7. CONST WF_CPU186   =  128
  8. CONST WF_CPU286   =    2
  9. CONST WF_CPU386   =    4
  10. CONST WF_CPU486   =    8
  11. CONST WF_STANDARD =   16
  12. CONST WF_ENHANCED =   32
  13. CONST MB_OK          = 0
  14. CONST MB_ICONHAND    = 16
  15. CONST MB_TASKMODAL   = 8192
  16. DECLARE FUNCTION DoMsgBox LIB "mscomstf.dll" (lpText$,lpCaption$,wType%) As INTEGER
  17. DECLARE FUNCTION GetWindowsDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
  18. DECLARE FUNCTION GetSystemDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
  19. DECLARE FUNCTION GetProfileString LIB "kernel" (szSect$, szKey$, szDefault$, szBuf$, cbBuf%) AS INTEGER
  20. DECLARE FUNCTION GetVersion LIB "kernel" AS INTEGER
  21. DECLARE FUNCTION GetSystemMetrics LIB "user" (nIndex%) AS INTEGER
  22. DECLARE FUNCTION GetWinFlags LIB "kernel" AS LONG
  23. CONST cmoVital       = 1
  24. CONST cmoCopy        = 2
  25. CONST cmoUndo        = 4
  26. CONST cmoRoot        = 8
  27. CONST cmoDecompress  = 16
  28. CONST cmoTimeStamp   = 32
  29. CONST cmoReadOnly    = 64
  30. CONST cmoBackup      = 128
  31. CONST cmoForce       = 256
  32. CONST cmoRemove      = 512
  33. CONST cmoOverwrite   = 1024
  34. CONST cmoAppend      = 2048
  35. CONST cmoPrepend     = 4096
  36. CONST cmoNone        = 0
  37. CONST cmoAll         = 65535
  38. CONST femExists     = 0
  39. CONST femRead       = 1
  40. CONST femWrite      = 2
  41. CONST femReadWrite  = 3
  42. CONST ynrcNo         = 0
  43. CONST ynrcYes        = 1
  44. CONST ynrcErr1       = 2
  45. CONST ynrcErr2       = 3
  46. CONST ynrcErr3       = 4
  47. CONST ynrcErr4       = 5
  48. CONST ynrcErr5       = 6
  49. CONST ynrcErr6       = 7
  50. CONST ynrcErr7       = 8
  51. CONST ynrcErr8       = 9
  52. CONST ynrcErr9       = 10
  53. CONST grcOkay       = 0
  54. CONST grcNotOkay    = 1
  55. CONST grcUserQuit   = 48
  56. CONST cbSymValMax = 512
  57. CONST STFERR      = 1024   ''setup system error
  58. CONST STFQUIT     = 1025   ''user quit
  59. CONST scmOff      = 0
  60. CONST scmOnIgnore = 1
  61. CONST scmOnFatal  = 2
  62. DECLARE FUNCTION FParseFATPathIntoPieces LIB "mscomstf.dll" (szPath$, szVol$, cbVol%, szDir$, cbDir%, szFile$, cbFile%) AS INTEGER
  63. DECLARE FUNCTION FOpenInf LIB "mscomstf.dll" (szFile$, fCheck%, fCheckSyms%) AS INTEGER
  64. DECLARE FUNCTION FSetSilent LIB "mscomstf.dll" (mode%) AS INTEGER
  65. DECLARE FUNCTION FSetBeepingMode LIB "mscomstf.dll" (mode%) AS INTEGER
  66. DECLARE FUNCTION HShowWaitCursor LIB "msshlstf.dll" AS INTEGER
  67. DECLARE FUNCTION FRestoreCursor  LIB "msshlstf.dll" (hPrev%) AS INTEGER
  68. DECLARE FUNCTION FOpenLogFile    LIB "mscomstf.dll" (szFile$, fAppend%) AS INTEGER
  69. DECLARE FUNCTION FCloseLogFile   LIB "mscomstf.dll" AS INTEGER
  70. DECLARE FUNCTION FWriteToLogFile LIB "mscomstf.dll" (sz$, fRequire%) AS INTEGER
  71. DECLARE FUNCTION CbGetInfSectionKeyField LIB "mscomstf.dll" (szSect$, szKey$, iField%, szBuf$, cbBuf%) AS INTEGER
  72. DECLARE FUNCTION FMakeListInfSectionField LIB "mscomstf.dll" (szSym$, szSect$, iField%) AS INTEGER
  73. DECLARE FUNCTION FSetBitmap LIB "msshlstf.dll" (szDll$, Bitmap%) AS INTEGER
  74. DECLARE FUNCTION FSetAbout LIB "msshlstf.dll" (szAbout1$, szAbout2$) AS INTEGER
  75. DECLARE FUNCTION FDoDialog LIB "msuilstf.dll" (hwnd%, szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS INTEGER
  76. DECLARE FUNCTION FKillNDialogs LIB "msuilstf.dll" (n%) AS INTEGER
  77. DECLARE SUB SetWindowText LIB "User" (hwnd%, lpString$)
  78. DECLARE FUNCTION FSetSymbolValue LIB "msshlstf.dll" (szSymbol$, szValue$) AS INTEGER
  79. DECLARE FUNCTION FRemoveSymbol LIB "mscomstf.dll" (szSym$) AS INTEGER
  80. DECLARE FUNCTION CbGetSymbolValue LIB "mscomstf.dll" (szSymbol$, szValue$, Length%) AS INTEGER
  81. DECLARE FUNCTION UsGetListLength LIB "mscomstf.dll" (szSymbol$) AS INTEGER
  82. DECLARE FUNCTION CbGetListItem LIB "mscomstf.dll" (szListSymbol$, n%, szListItem$, cbMax%) AS INTEGER
  83. DECLARE FUNCTION FAddListItem LIB "mscomstf.dll" (szListSymbol$, szListItem$) AS INTEGER
  84. DECLARE FUNCTION FReplaceListItem LIB "mscomstf.dll" (szListSymbol$, n%, szListItem$) AS INTEGER
  85. DECLARE FUNCTION FSetSymbolToListOfInfKeys LIB "mscomstf.dll" (szSym$, szSect$, fNulls%) AS INTEGER
  86. DECLARE FUNCTION InitializeFrame LIB "msshlstf.dll" (szCmdLine$) AS INTEGER
  87. DECLARE FUNCTION HwndFrame LIB "msshlstf.dll" AS INTEGER
  88. DECLARE FUNCTION HinstFrame LIB "msshlstf.dll" AS INTEGER
  89. DECLARE SUB      ProSetPos LIB "msinsstf.dll" (x%, y%)
  90. DECLARE FUNCTION FCreateDir LIB "msinsstf.dll" (szDir$, cmo%) AS INTEGER
  91. DECLARE FUNCTION FRemoveDir LIB "msinsstf.dll" (szDir$, cmo%) AS INTEGER
  92. DECLARE FUNCTION FAddSectionFilesToCopyList LIB "mscomstf.dll" (szSect$, szSrc$, szDest$) AS INTEGER
  93. DECLARE FUNCTION FAddSectionKeyFileToCopyList LIB "mscomstf.dll" (szSect$, szKey$, szSrc$, szDest$) AS INTEGER
  94. DECLARE FUNCTION FAddSpecialFileToCopyList LIB "mscomstf.dll" (szSect$, szKey$, szSrc$, szDest$) AS INTEGER
  95. DECLARE FUNCTION GrcCopyFilesInCopyList LIB "msinsstf.dll" (hInstance%) AS INTEGER
  96. DECLARE FUNCTION FRemoveIniSection LIB "msinsstf.dll" (szFile$, szSect$, cmo%) AS INTEGER
  97. DECLARE FUNCTION FCreateIniKeyValue LIB "msinsstf.dll" (szFile$, szSect$, szKey$, szValue$, cmo%) AS INTEGER
  98. DECLARE FUNCTION FRemoveIniKey LIB "msinsstf.dll" (szFile$, szSect$, szKey$, cmo%) AS INTEGER
  99. DECLARE FUNCTION FCreateSysIniKeyValue LIB "msinsstf.dll" (szFile$, szSect$, szKey$, szValue$, cmo%) AS INTEGER
  100. DECLARE FUNCTION FCreateProgManGroup LIB "msinsstf.dll" (szGroup$, szPath$, cmo%) AS INTEGER
  101. DECLARE FUNCTION FCreateProgManItem LIB "msinsstf.dll" (szGroup$, szItem$, szCmd$, cmo%) AS INTEGER
  102. DECLARE FUNCTION FShowProgManGroup LIB "msinsstf.dll" (szGroup$, szCmd$, cmo%) AS INTEGER
  103. DECLARE FUNCTION FStampResource LIB "msinsstf.dll" (szSect$, szKey$, szDst$, wResType%, wResId%, szData$, cbData%) AS INTEGER
  104. DECLARE FUNCTION FDumpCopyListToFile LIB "msinsstf.dll" (szFile$) AS INTEGER
  105. DECLARE SUB      ResetCopyList LIB "msinsstf.dll"
  106. DECLARE FUNCTION LcbGetCopyListCost LIB "msinsstf.dll" (szExtraList$, szCostList$, szNeedList$) AS LONG
  107. DECLARE FUNCTION FAddDos5Help LIB "msinsstf.dll" (szProgName$, szProgHelp$, cmo%) AS INTEGER
  108. DECLARE FUNCTION FCopyOneFile LIB "msinsstf.dll" (szSrc$, szDest$, cmo%, fAppend%) AS INTEGER
  109. DECLARE FUNCTION YnrcRemoveFile LIB "msinsstf.dll" (szFullPathSrc$, cmo%) AS INTEGER
  110. DECLARE FUNCTION YnrcBackupFile LIB "msinsstf.dll" (szFullPath$, szBackup$, cmo%) AS INTEGER
  111. DECLARE FUNCTION FInitializeInstall LIB "msinsstf.dll" (hinst%, hwndFrame%) AS INTEGER
  112. DECLARE FUNCTION WFindFileUsingFileOpen LIB "msinsstf.dll" (szFile$, szBuf$, cbBuf%) AS INTEGER
  113. DECLARE FUNCTION FIsDirWritable LIB "msinsstf.dll" (szDir$) AS INTEGER
  114. DECLARE FUNCTION FIsFileWritable LIB "msinsstf.dll" (szFile$) AS INTEGER
  115. DECLARE FUNCTION FAddToBillboardList LIB "msinsstf.dll" (szDll$, idDlg%, szProc$, lTicks&) AS INTEGER
  116. DECLARE FUNCTION FClearBillboardList LIB "msinsstf.dll" AS INTEGER
  117. DECLARE FUNCTION FSetRestartDir LIB "msinsstf.dll" (szDir$) AS INTEGER
  118. DECLARE FUNCTION FRestartListEmpty LIB "msinsstf.dll" AS INTEGER
  119. DECLARE FUNCTION FExitExecRestart LIB "msinsstf.dll" AS INTEGER
  120. DECLARE FUNCTION SetCopyMode LIB "msinsstf.dll" (fMode%) AS INTEGER
  121. DECLARE FUNCTION GetCopyMode LIB "msinsstf.dll" AS INTEGER
  122. DECLARE FUNCTION SetDecompMode LIB "msinsstf.dll" (fMode%) AS INTEGER
  123. DECLARE FUNCTION GetDecompMode LIB "msinsstf.dll" AS INTEGER
  124. DECLARE FUNCTION SetSizeCheckMode LIB "msinsstf.dll" (scmMode%) AS INTEGER
  125. DECLARE FUNCTION FPrependToPath LIB "msinsstf.dll" (szSrc$, szDst$, szDir$, cmo%) AS INTEGER
  126. DECLARE FUNCTION SetTimeValue LIB "msinsstf.dll" (usHours%, usMinutes%, usSeconds%) AS INTEGER
  127. DECLARE SUB SetBitmap(szDll$, Bitmap%)
  128. DECLARE SUB SetAbout(szAbout1$, szAbout2$)
  129. DECLARE FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS STRING
  130. DECLARE SUB UIPop (n%)
  131. DECLARE SUB UIPopAll
  132. DECLARE SUB SetTitle (sz$)
  133. DECLARE SUB ReadInfFile (szFile$)
  134. DECLARE SUB SetSymbolValue (szSymbol$, szValue$)
  135. DECLARE SUB RemoveSymbol (szSym$)
  136. DECLARE FUNCTION GetSymbolValue (szSymbol$) AS STRING
  137. DECLARE FUNCTION GetListLength(szSymbol$) AS INTEGER
  138. DECLARE SUB MakeListFromSectionKeys (szSymbol$, szSect$)
  139. DECLARE FUNCTION GetListItem(szSymbol$, n%) AS STRING
  140. DECLARE SUB AddListItem(szSymbol$, szItem$)
  141. DECLARE SUB ReplaceListItem(szSymbol$, n%, szItem$)
  142. DECLARE FUNCTION InitFrame (szCmdLine$) AS INTEGER
  143. DECLARE FUNCTION InitSetup (szCmdLine$) AS INTEGER
  144. DECLARE FUNCTION ShowWaitCursor AS INTEGER
  145. DECLARE SUB RestoreCursor (hPrev%)
  146. DECLARE FUNCTION SetBeepingMode (mode%) AS INTEGER
  147. DECLARE FUNCTION SetSilentMode (mode%) AS INTEGER
  148. DECLARE FUNCTION GetSectionKeyDate (szSect$, szKey$) AS STRING
  149. DECLARE FUNCTION GetSectionKeyFilename (szSect$, szKey$) AS STRING
  150. DECLARE FUNCTION GetSectionKeySize (szSect$, szKey$) AS LONG
  151. DECLARE FUNCTION GetSectionKeyVersion (szSect$, szKey$) AS STRING
  152. DECLARE SUB MakeListFromSectionDate (szSym$, szSect$)
  153. DECLARE SUB MakeListFromSectionFilename (szSym$, szSect$)
  154. DECLARE SUB MakeListFromSectionSize (szSym$, szSect$)
  155. DECLARE SUB MakeListFromSectionVersion (szSym$, szSect$)
  156. DECLARE SUB CreateDir (szDir$, cmo%)
  157. DECLARE SUB RemoveDir (szDir$, cmo%)
  158. DECLARE SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$)
  159. DECLARE SUB AddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$)
  160. DECLARE SUB AddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$)
  161. DECLARE SUB CopyFilesInCopyList
  162. DECLARE SUB RemoveIniSection (szFile$, szSect$, cmo%)
  163. DECLARE SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%)
  164. DECLARE SUB RemoveIniKey (szFile$, szSect$, szKey$, cmo%)
  165. DECLARE SUB CreateSysIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%)
  166. DECLARE SUB CreateProgmanGroup (szGroup$, szPath$, cmo%)
  167. DECLARE SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%)
  168. DECLARE SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%)
  169. DECLARE SUB StampResource (szSect$, szKey$, szDst$, wResType%, wResId%, szData$, cbData%)
  170. DECLARE SUB DumpCopyList (szFile$)
  171. DECLARE SUB ClearCopyList
  172. DECLARE FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) AS LONG
  173. DECLARE SUB AddDos5Help (szProgName$, szProgHelp$, cmo%)
  174. DECLARE SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%)
  175. DECLARE SUB RemoveFile (szFullPathSrc$, cmo%)
  176. DECLARE SUB BackupFile (szFullPath$, szBackup$)
  177. DECLARE SUB RenameFile (szFullPath$, szBackup$)
  178. DECLARE SUB InitInstall
  179. DECLARE SUB AddToBillboardList (szDll$, idDlg%, szProc$, lTicks&)
  180. DECLARE SUB AddBlankToBillboardList (lTicks&)
  181. DECLARE SUB ClearBillboardList
  182. DECLARE SUB OpenLogFile (szFile$, fAppend%)
  183. DECLARE SUB CloseLogFile
  184. DECLARE SUB WriteToLogFile (szStr$)
  185. DECLARE SUB SetCopyGaugePosition (x%, y%)
  186. DECLARE SUB SetRestartDir(szDir$)
  187. DECLARE FUNCTION RestartListEmpty AS INTEGER
  188. DECLARE FUNCTION ExitExecRestart AS INTEGER
  189. DECLARE FUNCTION FindFileUsingFileOpen (szFile$) AS STRING
  190. DECLARE FUNCTION IsDirWritable (szDir$) AS INTEGER
  191. DECLARE FUNCTION IsFileWritable (szFile$) AS INTEGER
  192. DECLARE FUNCTION GetNthFieldFromIniString (szLine$, iField%) AS STRING
  193. DECLARE SUB PrependToPath (szSrc$, szDst$, szDir$, cmo%)
  194. DECLARE FUNCTION GetWindowsMajorVersion AS INTEGER
  195. DECLARE FUNCTION GetWindowsMinorVersion AS INTEGER
  196. DECLARE FUNCTION GetWindowsMode AS INTEGER
  197. DECLARE FUNCTION GetWindowsDir  AS STRING
  198. DECLARE FUNCTION GetWindowsSysDir AS STRING
  199. DECLARE FUNCTION IsWindowsShared AS INTEGER
  200. DECLARE FUNCTION GetScreenWidth AS INTEGER
  201. DECLARE FUNCTION GetScreenHeight AS INTEGER
  202. FUNCTION InitSetup(szCmdLine$) STATIC AS INTEGER
  203. fFrameInit = 0
  204. fInstallInit = 0
  205. IF hSetup > 0 THEN
  206. END IF
  207. i% = InitFrame(szCmdLine$)
  208. fFrameInit = 1
  209. InitInstall
  210. fInstallInit = 1
  211. InitSetup = i%
  212. END FUNCTION
  213. FUNCTION InitFrame(szCmdLine$) STATIC AS INTEGER
  214. IF hSetup > 0 THEN
  215. ELSE
  216. i% = InitializeFrame(szCmdLine$)
  217. IF i% = -1 THEN
  218. END   '' NOT an error - Usage (/?) or Command line copy operation
  219. ELSEIF i% = 0 THEN
  220. END
  221. ELSE
  222. InitFrame = i%
  223. END IF
  224. END IF
  225. END FUNCTION
  226. SUB SetBitmap(szDll$, Bitmap%) STATIC
  227. IF FSetBitmap(szDll$, Bitmap%) = 0 THEN
  228. ERROR STFERR
  229. END IF
  230. END SUB
  231. SUB SetAbout(szAbout1$, szAbout2$) STATIC
  232. IF FSetAbout(szAbout1$, szAbout2$) = 0 THEN
  233. ERROR STFERR
  234. END IF
  235. END SUB
  236. SUB SetTitle(sz$) STATIC
  237. SetWindowText HwndFrame(), sz$
  238. END SUB
  239. SUB ReadInfFile (szFile$) STATIC
  240. IF FOpenInf(szFile$, 1, 0) = 0 THEN
  241. ERROR STFERR
  242. END IF
  243. END SUB
  244. FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) STATIC AS STRING
  245. IF FDoDialog(HwndFrame(), szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) = 0 THEN
  246. ERROR STFERR
  247. ELSE
  248. UIStartDlg = GetSymbolValue("DLGEVENT")
  249. END IF
  250. END FUNCTION
  251. SUB UIPop (n%) STATIC
  252. IF FKillNDialogs(n%) = 0 THEN
  253. ERROR STFERR
  254. END IF
  255. END SUB
  256. SUB UIPopAll STATIC
  257. IF FKillNDialogs(65535) = 0 THEN
  258. ERROR STFERR
  259. END IF
  260. END SUB
  261. FUNCTION GetSymbolValue(szSymbol$) STATIC AS STRING
  262. szValue$ = string$(cbSymValMax,32)
  263. Length% = CbGetSymbolValue(szSymbol$, szValue$, cbSymValMax)
  264. GetSymbolValue = szValue$
  265. IF Length% >= cbSymValMax THEN
  266. res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  267. ERROR STFERR
  268. END IF
  269. IF szSymbol$ = "" THEN
  270. ERROR STFERR
  271. END IF
  272. szValue$ = ""
  273. END FUNCTION
  274. FUNCTION GetListLength(szSymbol$) STATIC AS INTEGER
  275. GetListLength = UsGetListLength(szSymbol$)
  276. IF szSymbol$ = "" THEN
  277. ERROR STFERR
  278. END IF
  279. END FUNCTION
  280. FUNCTION GetListItem(szListSymbol$, nItem%) STATIC AS STRING
  281. szListItem$ = string$(cbSymValMax,32)
  282. Length% = CbGetListItem(szListSymbol$, nItem%, szListItem$, cbSymValMax)
  283. GetListItem = szListItem$
  284. IF Length% >= cbSymValMax THEN
  285. res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  286. ERROR STFERR
  287. END IF
  288. IF szListSymbol$ = "" THEN
  289. ERROR STFERR
  290. END IF
  291. if nItem% <= 0 or nItem% > GetListLength(szListSymbol$) then
  292. ERROR STFERR
  293. end if
  294. szListItem$ = ""
  295. END FUNCTION
  296. SUB AddListItem(szSymbol$, szItem$) STATIC
  297. IF FAddListItem(szSymbol$, szItem$) = 0 THEN
  298. ERROR STFERR
  299. END IF
  300. END SUB
  301. SUB ReplaceListItem(szSymbol$, n%, szItem$) STATIC
  302. IF FReplaceListItem(szSymbol$, n%, szItem$) = 0 THEN
  303. ERROR STFERR
  304. END IF
  305. END SUB
  306. SUB MakeListFromSectionKeys(szSymbol$, szSect$) STATIC
  307. IF FSetSymbolToListOfInfKeys(szSymbol$, szSect$, 1) = 0 THEN
  308. ERROR STFERR
  309. END IF
  310. END SUB
  311. SUB SetSymbolValue(szSymbol$, szValue$) STATIC
  312. IF FSetSymbolValue(szSymbol$, szValue$) = 0 THEN
  313. ERROR STFERR
  314. END IF
  315. END SUB
  316. SUB RemoveSymbol(szSym$) STATIC
  317. IF FRemoveSymbol(szSym$) = 0 THEN
  318. ERROR STFERR
  319. END IF
  320. END SUB
  321. FUNCTION ShowWaitCursor STATIC AS INTEGER
  322. ShowWaitCursor = HShowWaitCursor
  323. END FUNCTION
  324. SUB RestoreCursor (hPrev%) STATIC
  325. i% = FRestoreCursor(hPrev%)
  326. IF i% = 0 THEN
  327. ERROR STFERR
  328. END IF
  329. END SUB
  330. FUNCTION SetBeepingMode (mode%) STATIC AS INTEGER
  331. SetBeepingMode = FSetBeepingMode(mode%)
  332. END FUNCTION
  333. FUNCTION SetSilentMode (mode%) STATIC AS INTEGER
  334. SetSilentMode = FSetSilent(mode%)
  335. END FUNCTION
  336. FUNCTION GetSectionKeyDate (szSect$, szKey$) STATIC AS STRING
  337. szBuf$ = string$(128, 32)
  338. Length% = CbGetInfSectionKeyField(szSect$, szKey$, 5, szBuf$, 128)
  339. IF Length% >= 128 THEN
  340. res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  341. ERROR STFERR
  342. END IF
  343. IF Length% = -1 THEN
  344. ERROR STFERR
  345. END IF
  346. GetSectionKeyDate = szBuf$
  347. szBuf$ = ""
  348. END FUNCTION
  349. FUNCTION GetSectionKeyFilename (szSect$, szKey$) STATIC AS STRING
  350. szBuf$ = string$(128, 32)
  351. Length% = CbGetInfSectionKeyField(szSect$, szKey$, 1, szBuf$, 128)
  352. IF Length% >= 128 THEN
  353. res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  354. ERROR STFERR
  355. END IF
  356. IF Length% = -1 THEN
  357. ERROR STFERR
  358. END IF
  359. GetSectionKeyFilename = szBuf$
  360. szBuf$ = ""
  361. END FUNCTION
  362. FUNCTION GetSectionKeySize (szSect$, szKey$) STATIC AS LONG
  363. szBuf$ = string$(128, 32)
  364. Length% = CbGetInfSectionKeyField(szSect$, szKey$, 15, szBuf$, 128)
  365. IF Length% >= 128 THEN
  366. res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  367. ERROR STFERR
  368. END IF
  369. IF Length% = -1 THEN
  370. ERROR STFERR
  371. END IF
  372. GetSectionKeySize = VAL(szBuf$)
  373. szBuf$ = ""
  374. END FUNCTION
  375. FUNCTION GetSectionKeyVersion (szSect$, szKey$) STATIC AS STRING
  376. szBuf$ = string$(128, 32)
  377. Length% = CbGetInfSectionKeyField(szSect$, szKey$, 19, szBuf$, 128)
  378. IF Length% >= 128 THEN
  379. res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  380. ERROR STFERR
  381. END IF
  382. IF Length% = -1 THEN
  383. ERROR STFERR
  384. END IF
  385. GetSectionKeyVersion = szBuf$
  386. szBuf$ = ""
  387. END FUNCTION
  388. SUB MakeListFromSectionDate (szSym$, szSect$) STATIC
  389. IF FMakeListInfSectionField(szSym$, szSect$, 5) = 0 THEN
  390. ERROR STFERR
  391. END IF
  392. END SUB
  393. SUB MakeListFromSectionFilename (szSym$, szSect$) STATIC
  394. IF FMakeListInfSectionField(szSym$, szSect$, 1) = 0 THEN
  395. ERROR STFERR
  396. END IF
  397. END SUB
  398. SUB MakeListFromSectionSize (szSym$, szSect$) STATIC
  399. IF FMakeListInfSectionField(szSym$, szSect$, 15) = 0 THEN
  400. ERROR STFERR
  401. END IF
  402. END SUB
  403. SUB MakeListFromSectionVersion (szSym$, szSect$) STATIC
  404. IF FMakeListInfSectionField(szSym$, szSect$, 19) = 0 THEN
  405. ERROR STFERR
  406. END IF
  407. END SUB
  408. SUB InitInstall STATIC
  409. IF hSetup > 0 THEN
  410. ELSEIF FInitializeInstall(HinstFrame(), HwndFrame()) = 0 THEN
  411. END
  412. END IF
  413. END SUB
  414. SUB CreateDir (szDir$, cmo%) STATIC
  415. IF FCreateDir(szDir$, cmo%) = 0 THEN
  416. ERROR STFERR
  417. END IF
  418. END SUB
  419. SUB RemoveDir (szDir$, cmo%) STATIC
  420. IF FRemoveDir(szDir$, cmo%) = 0 THEN
  421. ERROR STFERR
  422. END IF
  423. END SUB
  424. SUB RemoveIniSection (szFile$, szSect$, cmo%) STATIC
  425. IF FRemoveIniSection(szFile$, szSect$, cmo%) = 0 THEN
  426. ERROR STFERR
  427. END IF
  428. END SUB
  429. SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%) STATIC
  430. IF FCreateIniKeyValue(szFile$, szSect$, szKey$, szValue$, cmo%) = 0 THEN
  431. ERROR STFERR
  432. END IF
  433. END SUB
  434. SUB RemoveIniKey (szFile$, szSect$, szKey$, cmo%) STATIC
  435. IF FRemoveIniKey(szFile$, szSect$, szKey$, cmo%) = 0 THEN
  436. ERROR STFERR
  437. END IF
  438. END SUB
  439. SUB CreateSysIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%) STATIC
  440. IF FCreateSysIniKeyValue(szFile$, szSect$, szKey$, szValue$, cmo%) = 0 THEN
  441. ERROR STFERR
  442. END IF
  443. END SUB
  444. SUB CreateProgmanGroup (szGroup$, szPath$, cmo%) STATIC
  445. IF FCreateProgManGroup(szGroup$, szPath$, cmo%) = 0 THEN
  446. ERROR STFERR
  447. END IF
  448. END SUB
  449. SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%) STATIC
  450. IF FShowProgManGroup(szGroup$, STR$(Cmd%), cmo%) = 0 THEN
  451. ERROR STFERR
  452. END IF
  453. END SUB
  454. SUB StampResource (szSect$, szKey$, szDst$, wResType%, wResId%, szData$, cbData%) STATIC
  455. IF FStampResource (szSect$, szKey$, szDst$, wResType%, wResId%, szData$, cbData%) = 0 THEN
  456. ERROR STFERR
  457. END IF
  458. END SUB
  459. SUB DumpCopyList (szFile$) STATIC
  460. IF FDumpCopyListToFile (szFile$) = 0 THEN
  461. ERROR STFERR
  462. END IF
  463. END SUB
  464. SUB ClearCopyList STATIC
  465. ResetCopyList
  466. END SUB
  467. FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) STATIC AS LONG
  468. lNeed& = LcbGetCopyListCost (szExtraList$, szCostList$, szNeedList$)
  469. IF lNeed& < 0 THEN
  470. ERROR STFERR
  471. END IF
  472. GetCopyListCost = lNeed&
  473. END FUNCTION
  474. SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%) STATIC
  475. szItemNew$ = szItem$
  476. IF szOther$ <> "" THEN
  477. szItemNew$ = szItem$ + "," + szOther$
  478. END IF
  479. IF FCreateProgManItem(szGroup$, szItemNew$, szCmd$, cmo%) = 0 THEN
  480. ERROR STFERR
  481. END IF
  482. szItemNew$ = ""
  483. END SUB
  484. SUB AddDos5Help (szProgName$, szProgHelp$, cmo%) STATIC
  485. IF FAddDos5Help (szProgName$, szProgHelp$, cmo%) = 0 THEN
  486. ERROR STFERR
  487. END IF
  488. END SUB
  489. SUB CopyFilesInCopyList STATIC
  490. grc% = GrcCopyFilesInCopyList (HinstFrame())
  491. IF grc% = grcUserQuit THEN
  492. ERROR STFQUIT
  493. ELSEIF grc% > 0 THEN
  494. ERROR STFERR
  495. END IF
  496. END SUB
  497. SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%) STATIC
  498. IF  FCopyOneFile(szFullPathSrc$, szFullPathDst$, (cmo OR cmoCopy), fAppend%) = 0 THEN
  499. ERROR STFERR
  500. END IF
  501. END SUB
  502. SUB RemoveFile (szFullPathSrc$, cmo%) STATIC
  503. IF  YnrcRemoveFile(szFullPathSrc$, cmo%) = ynrcNo THEN
  504. ERROR STFERR
  505. END IF
  506. END SUB
  507. SUB BackupFile (szFullPath$, szBackup$) STATIC
  508. IF YnrcBackupFile(szFullPath$, szBackup$, cmoNone) = ynrcNo THEN
  509. ERROR STFERR
  510. END IF
  511. END SUB
  512. SUB RenameFile (szFullPath$, szBackup$) STATIC
  513. IF YnrcBackupFile(szFullPath$, szBackup$, cmoNone) = ynrcNo THEN
  514. ERROR STFERR
  515. END IF
  516. END SUB
  517. SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$) STATIC
  518. IF FAddSectionFilesToCopyList (szSect$, szSrc$, szDest$) = 0 THEN
  519. ERROR STFERR
  520. END IF
  521. END SUB
  522. SUB AddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$) STATIC
  523. IF FAddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$) = 0 THEN
  524. ERROR STFERR
  525. END IF
  526. END SUB
  527. SUB AddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$) STATIC
  528. IF FAddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$) = 0 THEN
  529. ERROR STFERR
  530. END IF
  531. END SUB
  532. SUB AddToBillboardList (szDll$, idDlg%, szProc$, lTicks&) STATIC
  533. IF FAddToBillboardList(szDll$, idDlg%, szProc$, lTicks&) = 0 THEN
  534. ERROR STFERR
  535. END IF
  536. END SUB
  537. SUB AddBlankToBillboardList (lTicks&) STATIC
  538. IF FAddToBillboardList(NULL, 0, NULL, lTicks&) = 0 THEN
  539. ERROR STFERR
  540. END IF
  541. END SUB
  542. SUB ClearBillboardList STATIC
  543. IF FClearBillboardList = 0 THEN
  544. ERROR STFERR
  545. END IF
  546. END SUB
  547. SUB OpenLogFile (szFile$, fAppend%) STATIC
  548. IF FOpenLogFile(szFile$, fAppend%) = 0 THEN
  549. ERROR STFERR
  550. END IF
  551. END SUB
  552. SUB CloseLogFile STATIC
  553. IF FCloseLogFile() = 0 THEN
  554. ERROR STFERR
  555. END IF
  556. END SUB
  557. SUB WriteToLogFile (szStr$) STATIC
  558. IF FWriteToLogFile(szStr$, 1) = 0 THEN
  559. ERROR STFERR
  560. END IF
  561. END SUB
  562. SUB SetCopyGaugePosition (x%, y%) STATIC
  563. ProSetPos x%, y%
  564. END SUB
  565. FUNCTION FindFileUsingFileOpen (szFile$) STATIC AS STRING
  566. szBuf$ = STRING$(512, 32)
  567. wRet% = WFindFileUsingFileOpen(szFile$, szBuf$, len(szBuf$))
  568. IF wRet% = 0 THEN
  569. FindFileUsingFileOpen = szBuf$
  570. ELSEIF wRet% = 1 THEN
  571. FindFileUsingFileOpen = ""
  572. ELSE
  573. ERROR STFERR
  574. END IF
  575. szBuf$ = ""
  576. END FUNCTION
  577. FUNCTION IsDirWritable (szDir$) STATIC AS INTEGER
  578. IsDirWritable = FIsDirWritable(szDir$)
  579. END FUNCTION
  580. FUNCTION IsFileWritable (szFile$) STATIC AS INTEGER
  581. IsFileWritable = FIsFileWritable(szFile$)
  582. END FUNCTION
  583. FUNCTION GetNthFieldFromIniString (szLine$, iField%) STATIC AS STRING
  584. IF iField% < 1 THEN
  585. ERROR STFERR
  586. END IF
  587. szStart$ = szLine$
  588. IF iField% <> 1 THEN
  589. FOR i% = 2 TO iField% STEP 1
  590. iNew% = INSTR(szStart$, ",")
  591. IF iNew% = 0 THEN
  592. GetNthFieldFromIniString = ""
  593. GOTO _GNFFIS_END
  594. END IF
  595. szStart$ = MID$(szStart$, (iNew% + 1))
  596. NEXT
  597. END IF
  598. iNew% = INSTR(szStart$, ",")
  599. IF iNew% <> 0 THEN
  600. szStart$ = MID$(szStart$, 1, (iNew% - 1))
  601. END IF
  602. GetNthFieldFromIniString = LTRIM$(RTRIM$(szStart$))
  603. _GNFFIS_END:
  604. END FUNCTION
  605. FUNCTION GetWindowsMajorVersion STATIC AS INTEGER
  606. GetWindowsMajorVersion = GetVersion() MOD 256
  607. END FUNCTION
  608. FUNCTION GetWindowsMinorVersion STATIC AS INTEGER
  609. GetWindowsMinorVersion = GetVersion() / 256
  610. END FUNCTION
  611. FUNCTION GetWindowsMode STATIC AS INTEGER
  612. GetWindowsMode = 0
  613. longTmp& = GetWinFlags()
  614. IF longTmp& AND WF_STANDARD THEN
  615. GetWindowsMode = 1
  616. ELSEIF longTmp& AND WF_ENHANCED THEN
  617. GetWindowsMode = 2
  618. END IF
  619. END FUNCTION
  620. FUNCTION GetWindowsDir STATIC AS STRING
  621. szBuf$ = string$(256, 32)
  622. cbBuf% = GetWindowsDirectory(szBuf$, 256)
  623. IF cbBuf% = 0 THEN
  624. GetWindowsDir = ""
  625. ERROR STFERR
  626. ELSE
  627. IF cbBuf% > 255 THEN
  628. res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  629. ERROR STFERR
  630. END IF
  631. szBuf$ = RTRIM$(szBuf$)
  632. IF MID$(szBuf$, 1, 1) = "\" THEN
  633. szBuf$ = MID$(GetWindowsSysDir, 1, 2) + szBuf$
  634. ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
  635. szBuf$ = MID$(GetWindowsSysDir, 1, 3) + szBuf$
  636. END IF
  637. IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN
  638. szBuf$ = szBuf$ + "\"
  639. END IF
  640. GetWindowsDir = szBuf$
  641. END IF
  642. szBuf$ = ""
  643. END FUNCTION
  644. FUNCTION GetWindowsSysDir STATIC AS STRING
  645. szBuf$ = string$(256, 32)
  646. cbBuf% = GetSystemDirectory(szBuf$, 256)
  647. IF cbBuf% = 0 THEN
  648. ERROR STFERR
  649. ELSE
  650. IF cbBuf% > 255 THEN
  651. res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  652. ERROR STFERR
  653. END IF
  654. szBuf$ = RTRIM$(szBuf$)
  655. IF MID$(szBuf$, 1, 1) = "\" THEN
  656. szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
  657. ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
  658. szBuf$ = MID$(CURDIR$, 1, 3) + szBuf$
  659. END IF
  660. IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN
  661. szBuf$ = szBuf$ + "\"
  662. END IF
  663. GetWindowsSysDir = szBuf$
  664. END IF
  665. szBuf$ = ""
  666. END FUNCTION
  667. FUNCTION IsWindowsShared STATIC AS INTEGER
  668. szWin$ = UCASE$(GetWindowsDir())
  669. szSys$ = UCASE$(GetWindowsSysDir())
  670. IF len(szWin$) = 0 THEN
  671. ERROR STFERR
  672. END IF
  673. IF len(szSys$) <= len(szWin$) THEN
  674. IsWindowsShared = 1
  675. ELSE
  676. szSys$ = MID$(szSys$, 1, len(szWin$))
  677. IF szWin$ = szSys$ THEN
  678. IsWindowsShared = 0
  679. ELSE
  680. IsWindowsShared = 1
  681. END IF
  682. END IF
  683. END FUNCTION
  684. FUNCTION GetScreenWidth STATIC AS INTEGER
  685. GetScreenWidth = GetSystemMetrics(SM_CXSCREEN)
  686. END FUNCTION
  687. FUNCTION GetScreenHeight STATIC AS INTEGER
  688. GetScreenHeight = GetSystemMetrics(SM_CYSCREEN)
  689. END FUNCTION
  690. SUB SetRestartDir (szDir$) STATIC
  691. IF FSetRestartDir(szDir$) = 0 THEN
  692. ERROR STFERR
  693. END IF
  694. END SUB
  695. FUNCTION RestartListEmpty STATIC AS INTEGER
  696. IF FRestartListEmpty() = 0 THEN
  697. RestartListEmpty = 0
  698. ELSE
  699. RestartListEmpty = 1
  700. END IF
  701. END FUNCTION
  702. FUNCTION ExitExecRestart STATIC AS INTEGER
  703. ExitExecRestart = FExitExecRestart
  704. END FUNCTION
  705. SUB PrependToPath (szSrc$, szDst$, szDir$, cmo%) STATIC
  706. IF FPrependToPath (szSrc$, szDst$, szDir$, cmo%) = 0 THEN
  707. ERROR STFERR
  708. END IF
  709. END SUB
  710. TRAP CleanupTrap From "MSSHLSTF.DLL"
  711. End Trap
  712. hSetup = InitSetup(COMMAND$)
  713. ON ERROR GOTO QUIT
  714.