home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Madness & More! / Virtual.Reality.Madness.And.More.1994.Disk1.iso / windemos / gmorph / morph.ms_ / morph.bin
Text File  |  1993-06-09  |  7KB  |  249 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL OPTCUR$      ''Option selection from option dialog.
  26. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  27. GLOBAL WINSYSTEM$   ''Windows System Directory
  28.  
  29.  
  30. ''following were taken from windows.h. &H means they're hex
  31. CONST WS_VISIBLE=&H10000000
  32. CONST WS_BORDER =&H00800000
  33. CONST WS_CLIPCHILDREN =&H02000000
  34. CONST GWL_STYLE =-16
  35. CONST SW_SHOWMAXIMIZED=3
  36.  
  37.  
  38. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  39. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG  
  40.  
  41.  
  42. DECLARE SUB Install
  43. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  44.  
  45.  
  46. INIT:
  47.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  48.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  49.  
  50.     SetBitmap CUIDLL$, LOGO
  51.     SetTitle "MORPH"
  52.  
  53. 'hWnd%=HwndFrame()
  54. 'i&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  55. 'j%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  56.  
  57.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  58.     IF szInf$ = "" THEN
  59.         szInf$ = GetSymbolValue("STF_CWDDIR") + "MORPH.INF"
  60.     END IF
  61.     ReadInfFile szInf$
  62.  
  63.     OPTCUR$ = "1"
  64.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  65.     WINSYSTEM$ = GetWindowsSysDir()
  66.     DEST$ = WINDRIVE$ + ":\MORPH"
  67.  
  68. '$IFDEF DEBUG
  69.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  70.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  71.     IF IsDriveValid(WinDrive$) = 0 THEN
  72.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  73.         GOTO QUIT
  74.     END IF
  75. '$ENDIF ''DEBUG
  76.  
  77.  
  78. WELCOME:
  79.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  80.     IF sz$ = "CONTINUE" THEN
  81.         UIPop 1
  82.     ELSE
  83.         GOSUB ASKQUIT
  84.         GOTO WELCOME
  85.     END IF
  86.  
  87.  
  88. 'OPTION:
  89. '    SetSymbolValue "RadioDefault", OPTCUR$
  90. 'OPTL1:
  91. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  92. '    OPTCUR$ = GetSymbolValue("ButtonChecked")
  93. '
  94. '    IF sz$ = "CONTINUE" THEN
  95. '        UIPop(1)
  96. '    ELSEIF sz$ = "REACTIVATE" THEN
  97. '        GOTO OPTL1
  98. '    ELSE
  99. '        GOSUB ASKQUIT
  100. '        GOTO OPTION
  101. '    END IF
  102.  
  103.  
  104. GETPATH:
  105.     SetSymbolValue "EditTextIn", DEST$
  106.     SetSymbolValue "EditFocus", "END"
  107. GETPATHL1:
  108.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  109.     DEST$ = GetSymbolValue("EditTextOut")
  110.  
  111.     IF sz$ = "CONTINUE" THEN
  112.         IF IsDirWritable(DEST$) = 0 THEN
  113.             GOSUB BADPATH
  114.             GOTO GETPATHL1
  115.         END IF
  116.         UIPop 1
  117.     ELSEIF sz$ = "REACTIVATE" THEN
  118.         GOTO GETPATHL1
  119.     ELSEIF sz$ = "BACK" THEN
  120.         UIPop 1
  121.         GOTO WELCOME
  122.     ELSE
  123.         GOSUB ASKQUIT
  124.         GOTO GETPATH
  125.     END IF
  126.  
  127.  
  128.     Install
  129.  
  130.  
  131. QUIT:
  132.     ON ERROR GOTO ERRQUIT
  133.  
  134.     IF ERR = 0 THEN
  135.         dlg% = EXITSUCCESS
  136.     ELSEIF ERR = STFQUIT THEN
  137.         dlg% = EXITQUIT
  138.     ELSE
  139.         dlg% = EXITFAILURE
  140.     END IF
  141. QUITL1:
  142.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  143.     IF sz$ = "REACTIVATE" THEN
  144.         GOTO QUITL1
  145.     END IF
  146.     UIPop 1
  147.  
  148.     END
  149.  
  150. ERRQUIT:
  151.     i% = DoMsgBox("Setup sources were corrupted, call (619) 536-8815!", "Setup Error", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  152.     END
  153.  
  154.  
  155.  
  156. BADPATH:
  157.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  158.     IF sz$ = "REACTIVATE" THEN
  159.         GOTO BADPATH
  160.     END IF
  161.     UIPop 1
  162.     RETURN
  163.  
  164.  
  165.  
  166. ASKQUIT:
  167.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  168.  
  169.     IF sz$ = "EXIT" THEN
  170.         UIPopAll
  171.         ERROR STFQUIT
  172.     ELSEIF sz$ = "REACTIVATE" THEN
  173.         GOTO ASKQUIT
  174.     ELSE
  175.         UIPop 1
  176.     END IF
  177.     RETURN
  178.  
  179.  
  180.  
  181. '**
  182. '** Purpose:
  183. '**     Builds the copy list and performs all installation operations.
  184. '** Arguments:
  185. '**     none.
  186. '** Returns:
  187. '**     none.
  188. '*************************************************************************
  189. SUB Install STATIC
  190.  
  191.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  192.     CreateDir DEST$, cmoNone
  193.  
  194. '    OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  195. '    WriteToLogFile ""
  196. '    WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  197. '    WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  198. '    WriteToLogFile ""
  199. '    WriteToLogFile "May have had to create the directory: " + DEST$
  200. '    WriteToLogFile ""
  201.  
  202.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  203.     AddSectionFilesToCopyList "WinFiles", SrcDir$, WINSYSTEM$
  204. '     IF OPTCUR$ = "2" THEN
  205. '        AddSectionFilesToCopyList "Samples", SrcDir$, DEST$
  206. '     ENDIF
  207.     CopyFilesInCopyList
  208.  
  209. '    ini$ = MakePath(DEST$, "DEMO.INI")
  210. '    CreateIniKeyValue "WIN.INI", "Morph Setup", "Option", OPTCUR$, cmoNone
  211. '    CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone
  212. '    CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone
  213. '    CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone
  214.  
  215.     CreateProgmanGroup "MORPH", "", cmoNone
  216.     ShowProgmanGroup  "MORPH", 1, cmoNone
  217.     CreateProgmanItem "MORPH", "morph", MakePath(DEST$,"morph.exe"), "", cmoOverwrite
  218.  
  219. '    AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  220.  
  221. '    CloseLogFile
  222.  
  223. END SUB
  224.  
  225.  
  226.  
  227. '**
  228. '** Purpose:
  229. '**     Appends a file name to the end of a directory path,
  230. '**     inserting a backslash character as needed.
  231. '** Arguments:
  232. '**     szDir$  - full directory path (with optional ending "\")
  233. '**     szFile$ - filename to append to directory
  234. '** Returns:
  235. '**     Resulting fully qualified path name.
  236. '*************************************************************************
  237. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  238.     IF szDir$ = "" THEN
  239.         MakePath = szFile$
  240.     ELSEIF szFile$ = "" THEN
  241.         MakePath = szDir$
  242.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  243.         MakePath = szDir$ + szFile$
  244.     ELSE
  245.         MakePath = szDir$ + "\" + szFile$
  246.     END IF
  247. END FUNCTION
  248.  
  249.