home *** CD-ROM | disk | FTP | other *** search
/ Sports Illustrated Swimsuit Calendar 1994 / SISWIM.iso / sisetup / setupapi.inc < prev    next >
Text File  |  1994-09-19  |  14KB  |  447 lines

  1. GLOBAL hSetup AS INTEGER
  2. GLOBAL fFrameInit AS INTEGER
  3. GLOBAL fInstallInit AS INTEGER
  4.  
  5. CONST MB_OK=0
  6. CONST MB_ICONHAND=16
  7. CONST MB_TASKMODAL=8192
  8.  
  9. DECLARE FUNCTION DoMsgBox LIB "mscomstf.dll" (lpText$,lpCaption$,wType%) As INTEGER
  10. DECLARE FUNCTION GetWindowsDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
  11. DECLARE FUNCTION GetSystemDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
  12. DECLARE FUNCTION GetVersion LIB "kernel" AS INTEGER
  13. DECLARE FUNCTION YnrcRemoveFile LIB "msinsstf.dll" (szFullPathSrc$, cmo%) AS INTEGER
  14. DECLARE SUB RemoveFile (szFullPathSrc$, cmo%)
  15.  
  16. CONST cmoVital=1
  17. CONST cmoCopy=2
  18. CONST cmoUndo=4
  19. CONST cmoRoot=8
  20. CONST cmoDecompress=16
  21. CONST cmoTimeStamp=32
  22. CONST cmoReadOnly=64
  23. CONST cmoBackup=128
  24. CONST cmoForce=256
  25. CONST cmoRemove=512
  26. CONST cmoOverwrite=1024
  27. CONST cmoAppend=2048
  28. CONST cmoPrepend=4096
  29. CONST cmoNone=0
  30. CONST cmoAll=65535
  31. CONST femExists=0
  32. CONST femRead=1
  33. CONST femWrite=2
  34. CONST femReadWrite=3
  35. CONST ynrcNo=0
  36. CONST ynrcYes=1
  37. CONST ynrcErr1=2
  38. CONST ynrcErr2=3
  39. CONST ynrcErr3=4
  40. CONST ynrcErr4=5
  41. CONST ynrcErr5=6
  42. CONST ynrcErr6=7
  43. CONST ynrcErr7=8
  44. CONST ynrcErr8=9
  45. CONST ynrcErr9=10
  46. CONST grcOkay=0
  47. CONST grcNotOkay=1
  48. CONST grcUserQuit=48
  49. CONST cbSymValMax=512
  50. CONST STFERR=1024 ''setup system error
  51. CONST STFQUIT=1025 ''user quit
  52. CONST scmOff=0
  53. CONST scmOnIgnore=1
  54. CONST scmOnFatal=2
  55.  
  56. DECLARE FUNCTION FOpenInf LIB "mscomstf.dll" (szFile$, fCheck%, fCheckSyms%) AS INTEGER
  57. DECLARE FUNCTION HShowWaitCursor LIB "msshlstf.dll" AS INTEGER
  58. DECLARE FUNCTION FRestoreCursor  LIB "msshlstf.dll" (hPrev%) AS INTEGER
  59. DECLARE FUNCTION CbGetInfSectionKeyField LIB "mscomstf.dll" (szSect$, szKey$, iField%, szBuf$, cbBuf%) AS INTEGER
  60. DECLARE FUNCTION FMakeListInfSectionField LIB "mscomstf.dll" (szSym$, szSect$, iField%) AS INTEGER
  61. DECLARE FUNCTION FSetBitmap LIB "msshlstf.dll" (szDll$, Bitmap%) AS INTEGER
  62. DECLARE FUNCTION FSetAbout LIB "msshlstf.dll" (szAbout1$, szAbout2$) AS INTEGER
  63. DECLARE FUNCTION FDoDialog LIB "msuilstf.dll" (hwnd%, szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS INTEGER
  64. DECLARE FUNCTION FKillNDialogs LIB "msuilstf.dll" (n%) AS INTEGER
  65. DECLARE SUB      SetWindowText LIB "User" (hwnd%, lpString$)
  66. DECLARE FUNCTION FSetSymbolValue LIB "msshlstf.dll" (szSymbol$, szValue$) AS INTEGER
  67. DECLARE FUNCTION FRemoveSymbol LIB "mscomstf.dll" (szSym$) AS INTEGER
  68. DECLARE FUNCTION CbGetSymbolValue LIB "mscomstf.dll" (szSymbol$, szValue$, Length%) AS INTEGER
  69. DECLARE FUNCTION UsGetListLength LIB "mscomstf.dll" (szSymbol$) AS INTEGER
  70. DECLARE FUNCTION CbGetListItem LIB "mscomstf.dll" (szListSymbol$, n%, szListItem$, cbMax%) AS INTEGER
  71. DECLARE FUNCTION FAddListItem LIB "mscomstf.dll" (szListSymbol$, szListItem$) AS INTEGER
  72. DECLARE FUNCTION FReplaceListItem LIB "mscomstf.dll" (szListSymbol$, n%, szListItem$) AS INTEGER
  73. DECLARE FUNCTION FSetSymbolToListOfInfKeys LIB "mscomstf.dll" (szSym$, szSect$, fNulls%) AS INTEGER
  74. DECLARE FUNCTION InitializeFrame LIB "msshlstf.dll" (szCmdLine$) AS INTEGER
  75. DECLARE FUNCTION HwndFrame LIB "msshlstf.dll" AS INTEGER
  76. DECLARE FUNCTION HinstFrame LIB "msshlstf.dll" AS INTEGER
  77. DECLARE FUNCTION FCreateDir LIB "msinsstf.dll" (szDir$, cmo%) AS INTEGER
  78. DECLARE FUNCTION FAddSectionFilesToCopyList LIB "mscomstf.dll" (szSect$, szSrc$, szDest$) AS INTEGER
  79. DECLARE FUNCTION FAddSectionKeyFileToCopyList LIB "mscomstf.dll" (szSect$, szKey$, szSrc$, szDest$) AS INTEGER
  80. DECLARE FUNCTION FAddSpecialFileToCopyList LIB "mscomstf.dll" (szSect$, szKey$, szSrc$, szDest$) AS INTEGER
  81. DECLARE FUNCTION GrcCopyFilesInCopyList LIB "msinsstf.dll" (hInstance%) AS INTEGER
  82. DECLARE FUNCTION FRemoveIniSection LIB "msinsstf.dll" (szFile$, szSect$, cmo%) AS INTEGER
  83. DECLARE FUNCTION FCreateIniKeyValue LIB "msinsstf.dll" (szFile$, szSect$, szKey$, szValue$, cmo%) AS INTEGER
  84. DECLARE FUNCTION FCreateProgManGroup LIB "msinsstf.dll" (szGroup$, szPath$, cmo%) AS INTEGER
  85. DECLARE FUNCTION FCreateProgManItem LIB "msinsstf.dll" (szGroup$, szItem$, szCmd$, cmo%) AS INTEGER
  86. DECLARE FUNCTION FShowProgManGroup LIB "msinsstf.dll" (szGroup$, szCmd$, cmo%) AS INTEGER
  87. DECLARE SUB      ResetCopyList LIB "msinsstf.dll"
  88. DECLARE FUNCTION LcbGetCopyListCost LIB "msinsstf.dll" (szExtraList$, szCostList$, szNeedList$) AS LONG
  89. DECLARE FUNCTION FCopyOneFile LIB "msinsstf.dll" (szSrc$, szDest$, cmo%, fAppend%) AS INTEGER
  90. DECLARE FUNCTION YnrcBackupFile LIB "msinsstf.dll" (szFullPath$, szBackup$, cmo%) AS INTEGER
  91. DECLARE FUNCTION FInitializeInstall LIB "msinsstf.dll" (hinst%, hwndFrame%) AS INTEGER
  92. DECLARE FUNCTION WFindFileUsingFileOpen LIB "msinsstf.dll" (szFile$, szBuf$, cbBuf%) AS INTEGER
  93. DECLARE FUNCTION FIsDirWritable LIB "msinsstf.dll" (szDir$) AS INTEGER
  94. DECLARE FUNCTION SetSizeCheckMode LIB "msinsstf.dll" (scmMode%) AS INTEGER
  95. DECLARE SUB      SetBitmap(szDll$, Bitmap%)
  96. DECLARE SUB      SetAbout(szAbout1$, szAbout2$)
  97. DECLARE FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS STRING
  98. DECLARE SUB UIPop (n%)
  99. DECLARE SUB UIPopAll
  100. DECLARE SUB SetTitle (sz$)
  101. DECLARE SUB ReadInfFile (szFile$)
  102. DECLARE SUB SetSymbolValue (szSymbol$, szValue$)
  103. DECLARE SUB RemoveSymbol (szSym$)
  104. DECLARE FUNCTION GetSymbolValue (szSymbol$) AS STRING
  105. DECLARE FUNCTION GetListLength(szSymbol$) AS INTEGER
  106. DECLARE FUNCTION GetListItem(szSymbol$, n%) AS STRING
  107. DECLARE SUB AddListItem(szSymbol$, szItem$)
  108. DECLARE SUB ReplaceListItem(szSymbol$, n%, szItem$)
  109. DECLARE FUNCTION InitFrame (szCmdLine$) AS INTEGER
  110. DECLARE FUNCTION InitSetup (szCmdLine$) AS INTEGER
  111. DECLARE FUNCTION ShowWaitCursor AS INTEGER
  112. DECLARE SUB RestoreCursor (hPrev%)
  113. DECLARE SUB MakeListFromSectionSize (szSym$, szSect$)
  114. DECLARE SUB CreateDir (szDir$, cmo%)
  115. DECLARE SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$)
  116. DECLARE SUB AddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$)
  117. DECLARE SUB CopyFilesInCopyList
  118. DECLARE SUB RemoveIniSection (szFile$, szSect$, cmo%)
  119. DECLARE SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%)
  120. DECLARE SUB CreateProgmanGroup (szGroup$, szPath$, cmo%)
  121. DECLARE SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%)
  122. DECLARE SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%)
  123. DECLARE SUB ClearCopyList
  124. DECLARE FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) AS LONG
  125. DECLARE SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%)
  126. DECLARE SUB RenameFile (szFullPath$, szBackup$)
  127. DECLARE SUB InitInstall
  128. DECLARE FUNCTION IsDirWritable (szDir$) AS INTEGER
  129. DECLARE FUNCTION GetWindowsMajorVersion AS INTEGER
  130. DECLARE FUNCTION GetWindowsMinorVersion AS INTEGER
  131. DECLARE FUNCTION GetWindowsDir  AS STRING
  132. DECLARE FUNCTION GetWindowsSysDir AS STRING
  133.  
  134. FUNCTION InitSetup(szCmdLine$) STATIC AS INTEGER
  135. fFrameInit=0
  136. fInstallInit=0
  137. IF hSetup > 0 THEN
  138. END IF
  139. i% = InitFrame(szCmdLine$)
  140. fFrameInit = 1
  141. InitInstall
  142. fInstallInit = 1
  143. InitSetup = i%
  144. END FUNCTION
  145.  
  146. FUNCTION InitFrame(szCmdLine$) STATIC AS INTEGER
  147. IF hSetup > 0 THEN
  148. ELSE
  149.   i% = InitializeFrame (szCmdLine$)
  150.   IF i% = -1 THEN
  151.   END   '' NOT an error - Usage (/?) or Command line copy operation
  152.   ELSEIF i% = 0 THEN
  153.   END
  154.   ELSE
  155.   InitFrame = i%
  156.   END IF
  157. END IF
  158. END FUNCTION
  159.  
  160. SUB SetBitmap (szDll$, Bitmap%) STATIC
  161. IF FSetBitmap (szDll$, Bitmap%) = 0 THEN
  162.   ERROR STFERR
  163. END IF
  164. END SUB
  165.  
  166. SUB SetAbout (szAbout1$, szAbout2$) STATIC
  167. IF FSetAbout(szAbout1$, szAbout2$) = 0 THEN
  168.   ERROR STFERR
  169. END IF
  170. END SUB
  171.  
  172. SUB SetTitle (sz$) STATIC
  173. SetWindowText HwndFrame (), sz$
  174. END SUB
  175.  
  176. SUB ReadInfFile (szFile$) STATIC
  177. IF FOpenInf (szFile$, 1, 0) = 0 THEN
  178.   ERROR STFERR
  179. END IF
  180. END SUB
  181.  
  182. FUNCTION UIStartDlg (szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) STATIC AS STRING
  183. IF FDoDialog (HwndFrame (), szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) = 0 THEN
  184.   ERROR STFERR
  185. ELSE
  186.   UIStartDlg = GetSymbolValue ("DLGEVENT")
  187. END IF
  188. END FUNCTION
  189.  
  190. SUB UIPop (n%) STATIC
  191. IF FKillNDialogs (n%) = 0 THEN
  192.   ERROR STFERR
  193. END IF
  194. END SUB
  195.  
  196. SUB UIPopAll STATIC
  197. IF FKillNDialogs (65535) = 0 THEN
  198.   ERROR STFERR
  199. END IF
  200. END SUB
  201.  
  202. FUNCTION GetSymbolValue(szSymbol$) STATIC AS STRING
  203. szValue$ = string$ (cbSymValMax,32)
  204. Length% = CbGetSymbolValue (szSymbol$, szValue$, cbSymValMax)
  205. GetSymbolValue = szValue$
  206. IF Length% >= cbSymValMax THEN
  207.   res% = DoMsgBox ("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  208.   ERROR STFERR
  209. END IF
  210. IF szSymbol$ = "" THEN
  211.   ERROR STFERR
  212. END IF
  213. szValue$ = ""
  214. END FUNCTION
  215.  
  216. FUNCTION GetListLength (szSymbol$) STATIC AS INTEGER
  217. GetListLength = UsGetListLength (szSymbol$)
  218. IF szSymbol$ = "" THEN
  219.   ERROR STFERR
  220. END IF
  221. END FUNCTION
  222.  
  223. FUNCTION GetListItem (szListSymbol$, nItem%) STATIC AS STRING
  224. szListItem$ = string$ (cbSymValMax,32)
  225. Length% = CbGetListItem (szListSymbol$, nItem%, szListItem$, cbSymValMax)
  226. GetListItem = szListItem$
  227. IF Length% >= cbSymValMax THEN
  228.   res% = DoMsgBox ("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  229.   ERROR STFERR
  230. END IF
  231. IF szListSymbol$ = "" THEN
  232.   ERROR STFERR
  233. END IF
  234. if nItem% <= 0 or nItem% > GetListLength (szListSymbol$) then
  235.   ERROR STFERR
  236. end if
  237. szListItem$ = ""
  238. END FUNCTION
  239.  
  240. SUB AddListItem (szSymbol$, szItem$) STATIC
  241. IF FAddListItem (szSymbol$, szItem$) = 0 THEN
  242.   ERROR STFERR
  243. END IF
  244. END SUB
  245.  
  246. SUB ReplaceListItem (szSymbol$, n%, szItem$) STATIC
  247. IF FReplaceListItem(szSymbol$, n%, szItem$) = 0 THEN
  248.   ERROR STFERR
  249. END IF
  250. END SUB
  251.  
  252. SUB SetSymbolValue (szSymbol$, szValue$) STATIC
  253. IF FSetSymbolValue (szSymbol$, szValue$) = 0 THEN
  254.   ERROR STFERR
  255. END IF
  256. END SUB
  257.  
  258. SUB RemoveSymbol (szSym$) STATIC
  259. IF FRemoveSymbol (szSym$) = 0 THEN
  260.   ERROR STFERR
  261. END IF
  262. END SUB
  263.  
  264. FUNCTION ShowWaitCursor STATIC AS INTEGER
  265. ShowWaitCursor = HShowWaitCursor
  266. END FUNCTION
  267.  
  268. SUB RestoreCursor (hPrev%) STATIC
  269. i% = FRestoreCursor (hPrev%)
  270. IF i% = 0 THEN
  271.   ERROR STFERR
  272. END IF
  273. END SUB
  274.  
  275. SUB MakeListFromSectionSize (szSym$, szSect$) STATIC
  276. IF FMakeListInfSectionField (szSym$, szSect$, 15) = 0 THEN
  277.   ERROR STFERR
  278. END IF
  279. END SUB
  280.  
  281. SUB InitInstall STATIC
  282. IF hSetup > 0 THEN
  283. ELSEIF FInitializeInstall (HinstFrame (), HwndFrame ()) = 0 THEN
  284. END
  285. END IF
  286. END SUB
  287.  
  288. SUB CreateDir (szDir$, cmo%) STATIC
  289. IF FCreateDir (szDir$, cmo%) = 0 THEN
  290.   ERROR STFERR
  291. END IF
  292. END SUB
  293.  
  294. SUB RemoveIniSection (szFile$, szSect$, cmo%) STATIC
  295. IF FRemoveIniSection (szFile$, szSect$, cmo%) = 0 THEN
  296.   ERROR STFERR
  297.   END IF
  298. END SUB
  299.  
  300. SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%) STATIC
  301. IF FCreateIniKeyValue  (szFile$, szSect$, szKey$, szValue$, cmo%) = 0 THEN
  302.   ERROR STFERR
  303. END IF
  304. END SUB
  305.  
  306. SUB CreateProgmanGroup (szGroup$, szPath$, cmo%) STATIC
  307. IF FCreateProgManGroup (szGroup$, szPath$, cmo%) = 0 THEN
  308.   ERROR STFERR
  309. END IF
  310. END SUB
  311.  
  312. SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%) STATIC
  313. IF FShowProgManGroup (szGroup$, STR$(Cmd%), cmo%) = 0 THEN
  314.   ERROR STFERR
  315.   END IF
  316. END SUB
  317.  
  318. SUB ClearCopyList STATIC
  319. ResetCopyList
  320. END SUB
  321.  
  322. FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) STATIC AS LONG
  323. lNeed& = LcbGetCopyListCost (szExtraList$, szCostList$, szNeedList$)
  324. IF lNeed& < 0 THEN
  325.   ERROR STFERR
  326. END IF
  327. GetCopyListCost = lNeed&
  328. END FUNCTION
  329.  
  330. SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%) STATIC
  331. szItemNew$ = szItem$
  332. IF szOther$ <> "" THEN
  333.   szItemNew$ = szItem$ + "," + szOther$
  334. END IF
  335. IF FCreateProgManItem (szGroup$, szItemNew$, szCmd$, cmo%) = 0 THEN
  336.   ERROR STFERR
  337. END IF
  338. szItemNew$ = ""
  339. END SUB
  340.  
  341. SUB CopyFilesInCopyList STATIC
  342. grc% = GrcCopyFilesInCopyList (HinstFrame())
  343. IF grc% = grcUserQuit THEN
  344.   ERROR STFQUIT
  345. ELSEIF grc% > 0 THEN
  346.   ERROR STFERR
  347. END IF
  348. END SUB
  349.  
  350. SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%) STATIC
  351. IF FCopyOneFile (szFullPathSrc$, szFullPathDst$, (cmo OR cmoCopy), fAppend%) = 0 THEN
  352.   ERROR STFERR
  353. END IF
  354. END SUB
  355.  
  356. SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$) STATIC
  357. IF FAddSectionFilesToCopyList (szSect$, szSrc$, szDest$) = 0 THEN
  358.   ERROR STFERR
  359. END IF
  360. END SUB
  361.  
  362. SUB AddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$) STATIC
  363. IF FAddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$) = 0 THEN
  364.   ERROR STFERR
  365. END IF
  366. END SUB
  367.  
  368. FUNCTION IsDirWritable (szDir$) STATIC AS INTEGER
  369. IsDirWritable = FIsDirWritable (szDir$)
  370. END FUNCTION
  371.  
  372. FUNCTION GetWindowsMajorVersion STATIC AS INTEGER
  373. GetWindowsMajorVersion = GetVersion () MOD 256
  374. END FUNCTION
  375.  
  376. FUNCTION GetWindowsMinorVersion STATIC AS INTEGER
  377. GetWindowsMinorVersion = GetVersion () / 256
  378. END FUNCTION
  379.  
  380. FUNCTION GetWindowsDir STATIC AS STRING
  381. szBuf$ = string$ (256, 32)
  382. cbBuf% = GetWindowsDirectory (szBuf$, 256)
  383. IF cbBuf% = 0 THEN
  384.   GetWindowsDir = ""
  385.   ERROR STFERR
  386. ELSE
  387. IF cbBuf% > 255 THEN
  388.   res% = DoMsgBox ("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  389.   ERROR STFERR
  390. END IF
  391. szBuf$ = RTRIM$ (szBuf$)
  392. IF MID$(szBuf$, 1, 1) = "\" THEN
  393.   'szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
  394.   szBuf$ = MID$(GetWindowsSysDir, 1, 2) + szBuf$
  395. ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
  396.   szBuf$ = MID$(GetWindowsSysDir, 1, 3) + szBuf$
  397. END IF
  398. IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN
  399.   szBuf$ = szBuf$ + "\"
  400. END IF
  401. GetWindowsDir = szBuf$
  402. END IF
  403. szBuf$ = ""
  404. END FUNCTION
  405.  
  406. FUNCTION GetWindowsSysDir STATIC AS STRING
  407. szBuf$ = string$ (256, 32)
  408. cbBuf% = GetSystemDirectory (szBuf$, 256)
  409. IF cbBuf% = 0 THEN
  410.   ERROR STFERR
  411. ELSE
  412. IF cbBuf% > 255 THEN
  413.   res% = DoMsgBox ("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  414.   ERROR STFERR
  415. END IF
  416. szBuf$ = RTRIM$(szBuf$)
  417. IF MID$(szBuf$, 1, 1) = "\" THEN
  418.   szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
  419. ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
  420.   szBuf$ = MID$(CURDIR$, 1, 3) + szBuf$
  421. END IF
  422. IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN
  423.   szBuf$ = szBuf$ + "\"
  424. END IF
  425. GetWindowsSysDir = szBuf$
  426. END IF
  427. szBuf$ = ""
  428. END FUNCTION
  429.  
  430. SUB RemoveFile (szFullPathSrc$, cmo%) STATIC
  431. IF YnrcRemoveFile (szFullPathSrc$, cmo%) = ynrcNo THEN
  432.   ERROR STFERR
  433. END IF
  434. END SUB
  435.  
  436. TRAP CleanupTrap From "MSSHLSTF.DLL"
  437. End Trap
  438.  
  439. hSetup = InitSetup (COMMAND$)
  440. ON ERROR GOTO QUIT
  441.  
  442. SUB RenameFile (szFullPath$, szBackup$) STATIC
  443. IF YnrcBackupFile (szFullPath$, szBackup$, cmoNone) = ynrcNo THEN
  444.   ERROR STFERR
  445. END IF
  446. END SUB
  447.