home *** CD-ROM | disk | FTP | other *** search
/ Needle Craft Plus / NeedleCraftPlusVolume1.iso / win / 22_demo / install.mst < prev    next >
Text File  |  1996-01-09  |  39KB  |  1,211 lines

  1. '**************************************************************************
  2. '*                       StitchCraft Setup Script
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG                    ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'install.inc'
  8. '$INCLUDE 'setupapi.inc'
  9. '$INCLUDE 'msdetect.inc'
  10. '$INCLUDE 'msregdb.inc'
  11.  
  12. DECLARE FUNCTION MakePath      (szDir$, szFile$)              AS STRING
  13. DECLARE FUNCTION StartDlg      (DlgID%, DlgProc$, HelpDlgID%) AS STRING
  14. DECLARE FUNCTION ContactDlg    ()                             AS STRING
  15.  
  16. CONST CUSTOMDLL$  = "Install.dll"     ''Custom user interface dll
  17. CONST INSTALLINF$ = "Stitch.inf"      ''Custom user inf file
  18. CONST UPDATEINF$  = "Update.inf"      ''Update inf file
  19. CONST HELPPROC$   = "FHelpDlgProc"    ''Help dialog procedure
  20.  
  21. GLOBAL szDestDir$         ''Destination directory.
  22. GLOBAL szDestProgram$     ''Program Destination directory.
  23. GLOBAL szDestAlphabet$    ''Alphabet Destination directory.
  24. GLOBAL szDestPalette$     ''Palette Destination directory.
  25. GLOBAL szDestShow$        ''Show Destination directory.
  26. GLOBAL szExePath$         ''Stitch.Exe full path
  27.  
  28. GLOBAL szDestGroup$       ''Destination Group.
  29. GLOBAL szVersion$         '' Version of Disk
  30. GLOBAL szEdition$         ''UPDATE, DEMO, HOME, DESIGNER, PUBLISHER or DEALER
  31. GLOBAL szDistributor$     ''Crafted Software, Crafted Software UK, Knitdesign, StitchDesign.
  32. GLOBAL szDemoEdition$     ''HOME, DESIGNER or PUBLISHER
  33. GLOBAL szUpdateEdition$   ''HOME, DESIGNER or PUBLISHER
  34. GLOBAL szDisk$            ''NEW,  SAME, GOOD, OLD, COPY, CORRUPT
  35. GLOBAL szName$            ''Registered Name
  36. GLOBAL szRego$            ''Registration No.
  37. GLOBAL szNetQty$          ''"No" or an integer
  38.  
  39. GLOBAL szHelpDlg%         ''Standard Help Dialog Box
  40. GLOBAL bEducation$        ''Is Disk for Education.
  41.  
  42. GLOBAL bInstallProgram$   ''Option install Program from option dialog.
  43. GLOBAL bInstallExamples$  ''Option install Program from option dialog.
  44. GLOBAL bInstallWinTutor$  ''Option install Windows Tutorial.
  45. GLOBAL bInstallTools$     ''Option install Tools.
  46. GLOBAL bInstallShow$      ''Option install Program from option dialog.
  47. GLOBAL bInstallSamples1$  ''Option install Samples 1 from option dialog.
  48. GLOBAL bInstallSamples2$  ''Option install Samples 2 from option dialog.
  49. GLOBAL bInstallPM$        ''Option install PageMaker Example.
  50. GLOBAL bInstallVP$        ''Option install Ventura Publisher Example.
  51. GLOBAL bInstallMP$        ''Option install Microsoft Publisher Example.
  52. '''GLOBAL bInstallQX$        ''Option install QuarkXPress Example.
  53. '''GLOBAL bInstallCD$        ''Option install CorelDRAW! Example.
  54.  
  55. ''//UPDATE VARIABLES
  56. GLOBAL szPathProg1$           ''//Path 1 for first StitchCraft on HD
  57. GLOBAL szPathProg2$           ''//Path 2
  58. GLOBAL szPathProg3$           ''//Path 3
  59. GLOBAL szPathProg4$           ''//Path 4
  60. GLOBAL szPathProg5$           ''//Path 5
  61. GLOBAL szPathProg6$           ''//Path 6
  62.  
  63.  
  64. ''//************************************************************************
  65. ''//************************************************************************
  66.  
  67. MAIN:
  68.    GOSUB INITIALISE
  69.    GOSUB TITLEBOX
  70.    GOSUB WELCOME
  71.    GOSUB USERNAME
  72.    GOSUB OPTIONS
  73.    GOSUB GETPATH
  74.    GOSUB NETWORK
  75.    GOSUB COPYLIST
  76.    GOSUB DISKSPACE
  77.    GOSUB MAKEDIR
  78.    GOSUB REGISTER
  79.    GOSUB LOADFILES
  80.    GOSUB LOADGROUP
  81.    GOSUB LOADICONS
  82.    GOSUB REGOEDITOR
  83.    GOSUB SUCCESS
  84.    GOSUB CONTACT
  85. END
  86.  
  87.  
  88. INITIALISE:
  89.    iCursor% = ShowWaitCursor()
  90.    i% = SetWindowSize (HwndFrame(), SIZE_MAXIMIZE)
  91. ''   RestoreCursor iCursor%
  92. ''   iCursor% = ShowWaitCursor()
  93.    SetBitmap CUSTOMDLL$, BACKGROUNDLOGO
  94.    i% = SetBeepingMode(1)
  95. ''// Set Initial Symbols
  96.    SrcDir$ = GetSymbolValue("STF_SRCDIR")
  97.    i% = SetSymbolsFromFD
  98.    szVersion$     = GetSymbolValue("Version")
  99.    szEdition$     = GetSymbolValue("Edition")
  100.    szDisk$        = GetSymbolValue("DiskType")
  101.    szName$        = GetSymbolValue("Name")
  102.    bEducation$    = GetSymbolValue("Education")
  103.    szNetQty$      = GetSymbolValue("NetQty")
  104.    szRego$        = GetSymbolValue("Rego")
  105. '' Language is stored in list item "Language"
  106.    IF     szEdition$ = UPDATE_EDITION      THEN
  107.       SetTitle UPDATE_TITLE + "  " + szVersion$
  108.       SetAbout UPDATE_TITLE + "  " + szVersion$, COPYRIGHTNOTICE
  109.       szHelp% = DLG_UPDATE_HELP
  110.       ReadInfFile MakePath (SrcDir, UPDATEINF$)
  111.    ELSE
  112.       SetTitle INSTALL_TITLE + "  " + szVersion$
  113.       SetAbout INSTALL_TITLE + "  " + szVersion$, COPYRIGHTNOTICE
  114.       szHelp% = DLG_INSTALL_HELP
  115.       ReadInfFile MakePath (SrcDir, INSTALLINF$)
  116.    ENDIF
  117.    RestoreCursor iCursor%
  118.  
  119. '$IFDEF DEBUG
  120.    i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  121.    WinDrive$ = MID$(GetWindowsDir, 1, 1)
  122.    IF IsDriveValid(WinDrive$) = 0 THEN
  123.       i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  124.       GOTO QUIT
  125.    ENDIF
  126. '$ENDIF ''DEBUG
  127.  
  128. RETURN
  129.  
  130.  
  131.  
  132.  
  133. TITLEBOX:
  134.    IF     szEdition$ = UPDATE_EDITION      THEN
  135.       sz$ = StartDlg(DLG_UPDATE_BOX, "TitleDlgProc", szHelp%)
  136.    ELSE
  137.       sz$ = StartDlg(DLG_TITLE_BOX, "TitleDlgProc", szHelp%)
  138.    ENDIF
  139.    GOSUB ISDISKCORRUPT                           '' TEST
  140.    GOSUB ISDISKCOPY                              '' TEST
  141.    GOSUB ISDISKOLD                               '' TEST
  142.    GOSUB ISDISKWRITEPROTECTED                    '' TEST
  143. RETURN
  144.  
  145.  
  146.  
  147. WELCOME:
  148.    IF     szEdition$ = UPDATE_EDITION    THEN
  149.       sz$ = StartDlg(DLG_UPDATE_WELCOME, "WelcomeDlgProc", szHelp%)
  150.    ELSE
  151.       sz$ = StartDlg(DLG_WELCOME,        "WelcomeDlgProc", szHelp%)
  152.    ENDIF
  153. ''   ELSEIF szEdition$ = DEMO_EDITION      THEN
  154. ''      sz$ = StartDlg(DLG_WELCOME_DEMO,      "WelcomeDlgProc", szHelp%)
  155. ''   ELSEIF szEdition$ = DEALER_EDITION    THEN
  156. ''      sz$ = StartDlg(DLG_WELCOME_DEMO,      "WelcomeDlgProc", szHelp%)
  157. ''   ELSEIF szEdition$ = HOME_EDITION      THEN
  158. ''      sz$ = StartDlg(DLG_WELCOME_HOME,      "WelcomeDlgProc", szHelp%)
  159. ''   ELSEIF szEdition$ = DESIGNER_EDITION  THEN
  160. ''      sz$ = StartDlg(DLG_WELCOME_DESIGNER,  "WelcomeDlgProc", szHelp%)
  161. ''   ELSEIF szEdition$ = PUBLISHER_EDITION THEN
  162. ''      sz$ = StartDlg(DLG_WELCOME_PUBLISHER, "WelcomeDlgProc", szHelp%)
  163. ''   ELSE
  164. ''      GOSUB DISKCORRUPT
  165. ''   ENDIF
  166.  
  167.    IF szNetQty$ <> STRING_NO  AND  szNetQty$ <> "" THEN
  168.       RemoveSymbol "TextIn"
  169.       AddListItem "TextIn", szNetQty$
  170.       sz$ = StartDlg(DLG_WELCOME_NETWORK, "ConfirmDlgProc", szHelp%)
  171.    ENDIF
  172. RETURN
  173.  
  174.  
  175.  
  176.  
  177.  
  178. USERNAME:
  179.    IF szEdition$ = UPDATE_EDITION THEN
  180.       RETURN
  181.    ENDIF                                                         
  182.    IF szEdition$ = DEMO_EDITION OR szEdition$ = DEALER_EDITION THEN
  183.       RETURN                                                          
  184.    ENDIF                                                              
  185.    IF szDisk$ = "NEW"  AND  szName = ""  THEN
  186.       GOSUB GETNAME
  187.    ELSEIF  szDisk$ = "SAME"   OR   szEdition$ <> HOME_EDITION  THEN
  188.       GOSUB DISKSAME
  189.    ELSE
  190.       GOSUB DISKGOOD
  191.    ENDIF
  192. RETURN
  193.  
  194.  
  195.  
  196.  
  197.  
  198. GETNAME:
  199.    SetSymbolValue "Name", szName$
  200.    SetSymbolValue "EditFocus", "ALL"
  201.    SetSymbolValue "Rego", szRego$
  202.    IF szEdition$ = HOME_EDITION THEN
  203.       sz$ = StartDlg(DLG_GET_NAME,    "GetNameDlgProc", szHelp%)
  204.    ELSEIF szEdition$ = DESIGNER_EDITION OR szEdition$ = PUBLISHER_EDITION THEN
  205.       sz$ = StartDlg(DLG_GET_COMPANY, "GetNameDlgProc", szHelp%)
  206.    ELSE
  207.       GOSUB DISKCORRUPT                            
  208.    ENDIF
  209.    szName$ = GetSymbolValue("Name")
  210.    szRego$ = GetSymbolValue("Rego")
  211.    IF szName$ = "" THEN
  212.       sz$ = StartDlg(DLG_BAD_NAME, "InfoDlgProc", 0)
  213.       GOTO GETNAME
  214.    ENDIF
  215. CHECKNAME:
  216.    RemoveSymbol "TextIn"
  217.    AddListItem "TextIn", szName$
  218.    AddListItem "TextIn", szRego$
  219.    sz$ = StartDlg(DLG_CHECK_NAME, "ConfirmDlgProc", szHelp%)
  220.    IF sz$ = STRING_CHANGE THEN
  221.       GOTO GETNAME
  222.    ENDIF
  223. RETURN
  224.  
  225.  
  226.  
  227.  
  228.  
  229. DISKSAME:
  230.    RemoveSymbol "TextIn"             
  231.    AddListItem "TextIn", szName$     
  232.    AddListItem "TextIn", szRego$     
  233.    sz$ = StartDlg(DLG_CHECK_NAME, "ConfirmDlgProc", szHelp%)
  234.    IF sz$ = STRING_CHANGE THEN
  235.       GOSUB GETNAME
  236.    ENDIF
  237. RETURN
  238.  
  239.  
  240.  
  241.  
  242.  
  243. DISKGOOD:
  244.    RemoveSymbol "TextIn"             
  245.    AddListItem "TextIn", szName$     
  246.    AddListItem "TextIn", szRego$     
  247.    sz$ = StartDlg(DLG_OLD_NAME, "ConfirmDlgProc", szHelp%)
  248. RETURN
  249.  
  250.  
  251.  
  252.  
  253.  
  254. INITOPTIONS:
  255.    bInstallProgram$  = STRING_TRUE
  256.    bInstallExamples$ = STRING_TRUE
  257.    bInstallSamples1$ = STRING_FALSE
  258.    bInstallSamples2$ = STRING_FALSE
  259.    bInstallPM$       = STRING_FALSE
  260.    bInstallVP$       = STRING_FALSE
  261.    bInstallMP$       = STRING_FALSE
  262. '''   bInstallQX$       = STRING_FALSE
  263. '''   bInstallCD$       = STRING_FALSE
  264.    bInstallTools$    = STRING_FALSE
  265.    bInstallShow$     = STRING_FALSE
  266.    bInstallWinTutor  = STRING_FALSE
  267.  
  268.    IF (DoesFileExist (GetWindowsDir() + WINTUTOR_EXE, femExists)) THEN
  269.       IF szEdition$ = HOME_EDITION THEN
  270.          bInstallWinTutor$ = STRING_TRUE
  271.       ENDIF
  272.    ENDIF
  273.  
  274.    IF szEdition$ = DEALER_EDITION THEN
  275.       bInstallTools$= STRING_TRUE
  276.       bInstallShow$ = STRING_TRUE
  277.  
  278.    ELSEIF szEdition$ = HOME_EDITION THEN
  279.       bInstallSamples1$ = STRING_TRUE
  280.       bInstallSamples2$ = STRING_TRUE
  281.       bInstallTools$    = STRING_TRUE
  282.  
  283.    ELSEIF szEdition$ = DESIGNER_EDITION THEN
  284.       bInstallSamples1$ = STRING_TRUE
  285.       bInstallSamples2$ = STRING_TRUE
  286.       bInstallTools$    = STRING_TRUE
  287.  
  288.    ELSEIF szEdition$ = PUBLISHER_EDITION THEN
  289.       bInstallTools$    = STRING_TRUE
  290.    ENDIF
  291.  
  292.    IF szEdition$=PUBLISHER_EDITION OR szEdition$=DEMO_EDITION OR szEdition$=DEALER_EDITION THEN
  293. '''      IF (DoesFileExist (PM5_EXE, femExists)) THEN    ''Deleted
  294. '''         bInstallPM$ = STRING_TRUE
  295. '''      IF (DoesRegKeyExist (PM4_REG) OR DoesRegKeyExist (PM5_REG)) THEN
  296.       IF (DoesRegKeyExist (PM5_REG)) THEN
  297.          bInstallPM$ = STRING_TRUE
  298.       ELSEIF (DoesRegKeyExist (PM4_REG)) THEN
  299.          bInstallPM$ = STRING_TRUE
  300.       ELSE
  301.          bInstallPM$ = STRING_GRAY
  302.       ENDIF
  303.       IF (DoesRegKeyExist (VP_REG)) THEN
  304.          bInstallVP$ = STRING_TRUE
  305.       ELSE
  306.          bInstallVP$ = STRING_GRAY
  307.       ENDIF
  308.       IF (DoesRegKeyExist (MP_REG)) THEN
  309.          bInstallMP$ = STRING_TRUE
  310.       ELSE
  311.          bInstallMP$ = STRING_GRAY
  312.       ENDIF
  313. '''      IF (DoesRegKeyExist (QX_REG)) THEN
  314. '''         bInstallQX$ = STRING_TRUE
  315. '''      ELSE
  316. '''         bInstallQX$ = STRING_GRAY
  317. '''      ENDIF
  318. '''      IF (DoesRegKeyExist (CD_REG)) THEN
  319. '''         bInstallCD$ = STRING_TRUE
  320. '''      ELSE
  321. '''         bInstallCD$ = STRING_GRAY
  322. '''      ENDIF
  323.  
  324.    ENDIF
  325. RETURN
  326.  
  327.  
  328.  
  329.  
  330.  
  331. OPTIONS:
  332.    IF szEdition$ = UPDATE_EDITION THEN
  333.       RETURN                                                          
  334.    ENDIF
  335.  
  336.    GOSUB INITOPTIONS
  337.  
  338.    IF  szEdition$ = DEMO_EDITION  OR  szEdition$ = DEALER_EDITION  THEN
  339.       SetSymbolValue "RadioButton", "1"
  340.    ELSE
  341.       AddListItem SYM_OPTIONS,bInstallProgram$
  342.       AddListItem SYM_OPTIONS,bInstallSamples1$
  343.       AddListItem SYM_OPTIONS,bInstallSamples2$
  344.       AddListItem SYM_OPTIONS,bInstallPM$
  345.       AddListItem SYM_OPTIONS,bInstallVP$
  346.       AddListItem SYM_OPTIONS,bInstallMP$
  347. '''      AddListItem SYM_OPTIONS,bInstallQX$
  348. '''      AddListItem SYM_OPTIONS,bInstallCD$
  349.    ENDIF
  350.  
  351.    IF  szEdition$ = DEMO_EDITION  OR  szEdition$ = DEALER_EDITION  THEN
  352.       sz$ = StartDlg(DLG_OPTIONS_DEMO,      "RadioDlgProc",    szHelp%)
  353.    ELSEIF szEdition$ = HOME_EDITION THEN
  354.       sz$ = StartDlg(DLG_OPTIONS_HOME,      "CheckBoxDlgProc", szHelp%)
  355.    ELSEIF szEdition$ = DESIGNER_EDITION THEN
  356.       sz$ = StartDlg(DLG_OPTIONS_DESIGNER,  "CheckBoxDlgProc", szHelp%)
  357.    ELSEIF szEdition$ = PUBLISHER_EDITION THEN
  358.       sz$ = StartDlg(DLG_OPTIONS_PUBLISHER, "CheckBoxDlgProc", szHelp%)
  359.    ELSE
  360.       GOSUB DISKCORRUPT                            ''???? GOSUB or GOTO
  361.    ENDIF
  362.  
  363.    IF  szEdition$ = DEMO_EDITION  OR  szEdition$ = DEALER_EDITION  THEN
  364.       sz$ = GetSymbolValue ("RadioButton")
  365.       IF sz$ = "1" THEN
  366.          szDemoEdition = HOME_EDITION
  367.          bInstallPM$       = STRING_FALSE
  368.          bInstallVP$       = STRING_FALSE
  369.          bInstallMP$       = STRING_FALSE
  370.       ELSEIF sz$ = "2" THEN
  371.          szDemoEdition = DESIGNER_EDITION
  372.          bInstallPM$       = STRING_FALSE
  373.          bInstallVP$       = STRING_FALSE
  374.          bInstallMP$       = STRING_FALSE
  375.       ELSE
  376.          szDemoEdition = PUBLISHER_EDITION
  377.       ENDIF
  378.    ELSE
  379.       bInstallProgram$  = GetListItem (SYM_OPTIONS, 1)
  380.       bInstallSamples1$ = GetListItem (SYM_OPTIONS, 2)
  381.       bInstallSamples2$ = GetListItem (SYM_OPTIONS, 3)
  382.       IF szEdition = PUBLISHER_EDITION THEN
  383.          bInstallPM$       = GetListItem (SYM_OPTIONS, 4)
  384.          bInstallVP$       = GetListItem (SYM_OPTIONS, 5)
  385.          bInstallMP$       = GetListItem (SYM_OPTIONS, 6)
  386. '''         bInstallQX$       = GetListItem (SYM_OPTIONS, 7)
  387. '''         bInstallCD$       = GetListItem (SYM_OPTIONS, 8)
  388.       ENDIF
  389.    ENDIF
  390.    RemoveSymbol (SYM_OPTIONS)
  391. RETURN
  392.  
  393.  
  394.  
  395.  
  396. DEFAULTPATH:
  397.    IF  szEdition$ = DEMO_EDITION  OR  szEdition$ = DEALER_EDITION  THEN
  398.       IF     szDemoEdition$ = HOME_EDITION      THEN
  399.          szDestDir$  = OLD_DIR_DH
  400.       ELSEIF szDemoEdition$ = DESIGNER_EDITION  THEN
  401.          szDestDir$  = OLD_DIR_DD
  402.       ELSEIF szDemoEdition$ = PUBLISHER_EDITION THEN
  403.          szDestDir$  = OLD_DIR_DP
  404.       ELSE
  405.          GOSUB DISKCORRUPT
  406.       ENDIF
  407.    ELSEIF szEdition$ = HOME_EDITION      THEN
  408.       szDestDir$   = OLD_DIR_H
  409.    ELSEIF szEdition$ = DESIGNER_EDITION  THEN
  410.       szDestDir$   = OLD_DIR_D
  411.    ELSEIF szEdition$ = PUBLISHER_EDITION THEN
  412.       szDestDir$   = OLD_DIR_P
  413.    ELSE
  414.       GOSUB DISKCORRUPT
  415.    ENDIF
  416.    sz$ = MakePath(szDestDir$, OLD_DIR_PROGRAM)
  417.    sz$ = MakePath(sz$, EXE_FILE)
  418.    i% = DoesFileExist (sz$,femExists)
  419.    IF i% = 0 THEN
  420.       szDestDir$  = DEFAULT_DIR
  421.    ENDIF
  422. RETURN
  423.  
  424.  
  425.  
  426.  
  427. GETPATH:
  428.    IF szEdition$ = UPDATE_EDITION THEN
  429.       GOSUB GETUPDATEPATH
  430.       GOSUB CONFIRMUPDATEPATH
  431.       RETURN
  432.    ENDIF
  433.    GOSUB DEFAULTPATH
  434. GETPATH1:
  435.    SetSymbolValue "EditText", szDestDir$
  436.    SetSymbolValue "EditFocus", "END"
  437.    sz$ = StartDlg(DLG_GET_PATH, "GetPathDlgProc", szHelp%)
  438.    IF sz$ = STRING_CONTINUE THEN
  439.       IF IsDirWritable(szDestDir$) = 0 THEN
  440.          sz$ = StartDlg(DLG_BAD_PATH, "InfoDlgProc", 0)
  441.          GOTO GETPATH1
  442.       ENDIF
  443.    ELSEIF sz$ = STRING_BACK THEN
  444.       GOSUB OPTIONS
  445.       GOTO  GETPATH
  446.    ENDIF
  447.    szDestDrive$    = GetSymbolValue("DestDrive")
  448.    szDestDir$      = GetSymbolValue("EditText")
  449.                      '' If Update use old Dir
  450.    szDestProgram$ = MakePath(szDestDir$, OLD_DIR_PROGRAM)
  451.    sz$ = MakePath(szDestProgram$, EXE_FILE)
  452.    i% = DoesFileExist (sz$,femExists)
  453.                      '' Otherwise use new default dir
  454.    IF i% = 0 THEN
  455.       IF  szEdition$ = DEMO_EDITION  OR  szEdition$ = DEALER_EDITION  THEN
  456.          IF     szDemoEdition$ = HOME_EDITION      THEN
  457.             szDestProgram$  = MakePath(szDestDir$, DIR_DEMO_H)
  458.          ELSEIF szDemoEdition$ = DESIGNER_EDITION  THEN
  459.             szDestProgram$  = MakePath(szDestDir$, DIR_DEMO_D)
  460.          ELSEIF szDemoEdition$ = PUBLISHER_EDITION THEN
  461.             szDestProgram$  = MakePath(szDestDir$, DIR_DEMO_P)
  462.          ELSE
  463.             GOSUB DISKCORRUPT
  464.          ENDIF
  465.       ELSEIF szEdition$ = HOME_EDITION      THEN
  466.          szDestProgram$   = MakePath(szDestDir$, DIR_HOME)
  467.       ELSEIF szEdition$ = DESIGNER_EDITION  THEN
  468.          szDestProgram$   = MakePath(szDestDir$, DIR_DESIGNER)
  469.       ELSEIF szEdition$ = PUBLISHER_EDITION THEN
  470.          szDestProgram$   = MakePath(szDestDir$, DIR_PUBLISHER)
  471.       ELSE
  472.          GOSUB DISKCORRUPT
  473.       ENDIF
  474.    ENDIF
  475.  
  476.    szDestAlphabet$ = MakePath(szDestDir$, DIR_ALPHABET)
  477.    szDestPalette$  = MakePath(szDestDir$, DIR_PALETTE)
  478.    szDestShow$     = MakePath(szDestDir$, DIR_SHOW)
  479.    szExePath$      = MakePath(szDestProgram$, EXE_FILE)
  480. RETURN
  481.  
  482.  
  483.  
  484.  
  485.  
  486. GETUPDATEPATH:
  487.    iCursor% = ShowWaitCursor()
  488.    sz$ = StartDlg(DLG_UPDATE_CHOOSEPATH, "GetUpdatePathDlgProc", DLG_UPDATE_GETPATH_HELP)
  489.    IF sz$ = STRING_BACK THEN
  490.       GOSUB WELCOME
  491.       GOTO  GETUPDATEPATH
  492.    ENDIF
  493.    sz$ = StartDlg(DLG_UPDATE_SEARCHING, "SearchUpdatePathDlgProc", 0)
  494.  
  495.    sz$ = GetSymbolValue("DirProgram1")
  496.    IF sz$ = "" THEN
  497.       szSearch$ = GetSymbolValue("Search")
  498.       IF szSearch$ = "Default" THEN
  499.          sz$ = StartDlg(DLG_UPDATE_NOTFOUNDINPATH, "InfoDlgProc", 0)
  500.       ELSE
  501.          sz$ = StartDlg(DLG_UPDATE_NOTFOUNDONDISK, "InfoDlgProc", 0)
  502.       ENDIF
  503.       GOTO  GETUPDATEPATH
  504.    ENDIF
  505.    RestoreCursor iCursor%
  506. RETURN
  507.  
  508.  
  509.  
  510.  
  511.  
  512. CONFIRMUPDATEPATH:
  513.    sz$ = GetSymbolValue("DirProgram2")
  514.    IF sz$ = "" THEN
  515.       sz$ = StartDlg(DLG_UPDATE_PATH,  "ConfirmUpdatePathDlgProc", szHelp%)
  516.    ELSE
  517.       sz$ = StartDlg(DLG_UPDATE_PATHS, "ConfirmUpdatePathDlgProc", szHelp%)
  518.    ENDIF
  519.    IF sz$ = STRING_BACK THEN
  520.       GOSUB GETUPDATEPATH
  521.       GOTO  CONFIRMUPDATEPATH
  522.    ENDIF
  523. RETURN
  524.  
  525.  
  526.  
  527. COPYLIST:
  528. IF  szEdition$ = UPDATE_EDITION  THEN
  529.    GOSUB SETUPDATECOPYLIST
  530. ELSE
  531.    GOSUB SETINSTALLCOPYLIST
  532. ENDIF
  533. RETURN
  534.  
  535.  
  536.  
  537.  
  538. SETINSTALLCOPYLIST:
  539.    ClearCopyList
  540.    IF bInstallProgram$ = STRING_TRUE THEN
  541.       AddSectionFilesToCopyList "MAIN", SrcDir$, szDestProgram$
  542.       IF szEdition$ <> DEMO_EDITION AND szEdition$ <> DEALER_EDITION THEN
  543.          AddSectionFilesToCopyList "ALPHABETS", SrcDir$, szDestAlphabet$
  544.          AddSectionFilesToCopyList "PALETTES", SrcDir$, szDestPalette$
  545.       ENDIF
  546.       IF szEdition$ = DEMO_EDITION OR szEdition$ = DEALER_EDITION THEN
  547.          AddSectionFilesToCopyList "DEMO", SrcDir$, szDestProgram$
  548.          AddSectionFilesToCopyList "DEMO SAMPLES", SrcDir$, szDestDir$
  549.       ELSEIF szEdition$ = HOME_EDITION      THEN
  550.          AddSectionFilesToCopyList "HOME", SrcDir$, szDestProgram$
  551.       ELSEIF szEdition$ = DESIGNER_EDITION  THEN
  552.          AddSectionFilesToCopyList "DESIGNER", SrcDir$, szDestProgram$
  553.          AddSectionFilesToCopyList "PROFESSIONAL", SrcDir$, szDestProgram$
  554.       ELSEIF szEdition$ = PUBLISHER_EDITION THEN
  555.          AddSectionFilesToCopyList "PUBLISH", SrcDir$, szDestProgram$
  556.          AddSectionFilesToCopyList "PROFESSIONAL", SrcDir$, szDestProgram$
  557.       ENDIF
  558.    ENDIF
  559.    IF bInstallExamples$ = STRING_TRUE THEN
  560.       AddSectionFilesToCopyList "EXAMPLES", SrcDir$, szDestProgram$
  561.       AddSectionFilesToCopyList "EXAMPLES", SrcDir$, szDestDir$
  562.    ENDIF
  563.    IF bInstallTools$ = STRING_TRUE THEN
  564.       AddSectionFilesToCopyList "TOOLS", SrcDir$, szDestProgram$
  565.    ENDIF
  566.    IF bInstallSamples1$ = STRING_TRUE THEN
  567.       AddSectionFilesToCopyList "SAMPLES 1", SrcDir$, szDestDir$
  568.    ENDIF
  569.    IF bInstallSamples2$ = STRING_TRUE THEN
  570.       AddSectionFilesToCopyList "SAMPLES 2", SrcDir$, szDestDir$
  571.    ENDIF
  572.    IF bInstallPM$ = STRING_TRUE THEN
  573.       AddSectionFilesToCopyList "PM", SrcDir$, szDestProgram$
  574.    ENDIF
  575.    IF bInstallVP$ = STRING_TRUE THEN
  576.       AddSectionFilesToCopyList "VP", SrcDir$, szDestProgram$
  577.    ENDIF
  578.    IF bInstallMP$ = STRING_TRUE THEN
  579.       AddSectionFilesToCopyList "MP", SrcDir$, szDestProgram$
  580.    ENDIF
  581. '''   IF bInstallQX$ = STRING_TRUE THEN
  582. '''      AddSectionFilesToCopyList "QX", SrcDir$, szDestProgram$
  583. '''   ENDIF
  584. '''   IF bInstallCD$ = STRING_TRUE THEN
  585. '''      AddSectionFilesToCopyList "CD", SrcDir$, szDestProgram$
  586. '''   ENDIF
  587.    IF bInstallShow$ = STRING_TRUE THEN
  588.       AddSectionFilesToCopyList "SHOW", SrcDir$, szDestShow$
  589.    ENDIF
  590. RETURN
  591.  
  592.  
  593.  
  594.  
  595.  
  596. SETUPDATECOPYLIST:
  597.    ClearCopyList
  598.    sz$ = GetSymbolValue("Update1")
  599.    IF sz$ = STRING_YES THEN
  600.       szDestDir$      = GetSymbolValue("DirDest1")
  601.       szDestProgram$  = GetSymbolValue("DirProgram1")
  602.       szDestAlphabet$ = GetSymbolValue("DirAlphabet1")
  603.       szDestPalette$  = GetSymbolValue("DirPalette1")
  604.       szUpdateEdition$= GetSymbolValue("Edition1")
  605.       GOSUB ADDTOUPDATECOPYLIST
  606.    ENDIF
  607.    sz$ = GetSymbolValue("Update2")
  608.    IF sz$ = STRING_YES THEN
  609.       szDestDir$      = GetSymbolValue("DirDest2")
  610.       szDestProgram$  = GetSymbolValue("DirProgram2")
  611.       szDestAlphabet$ = GetSymbolValue("DirAlphabet2")
  612.       szDestPalette$  = GetSymbolValue("DirPalette2")
  613.       szUpdateEdition$= GetSymbolValue("Edition2")
  614.       GOSUB ADDTOUPDATECOPYLIST
  615.    ENDIF
  616.    sz$ = GetSymbolValue("Update3")
  617.    IF sz$ = STRING_YES THEN
  618.       szDestDir$      = GetSymbolValue("DirDest3")
  619.       szDestProgram$  = GetSymbolValue("DirProgram3")
  620.       szDestAlphabet$ = GetSymbolValue("DirAlphabet3")
  621.       szDestPalette$  = GetSymbolValue("DirPalette3")
  622.       szUpdateEdition$= GetSymbolValue("Edition3")
  623.       GOSUB ADDTOUPDATECOPYLIST
  624.    ENDIF
  625.    sz$ = GetSymbolValue("Update4")
  626.    IF sz$ = STRING_YES THEN
  627.       szDestDir$      = GetSymbolValue("DirDest4")
  628.       szDestProgram$  = GetSymbolValue("DirProgram4")
  629.       szDestAlphabet$ = GetSymbolValue("DirAlphabet4")
  630.       szDestPalette$  = GetSymbolValue("DirPalette4")
  631.       szUpdateEdition$= GetSymbolValue("Edition4")
  632.       GOSUB ADDTOUPDATECOPYLIST
  633.    ENDIF
  634.    sz$ = GetSymbolValue("Update5")
  635.    IF sz$ = STRING_YES THEN
  636.       szDestDir$      = GetSymbolValue("DirDest5")
  637.       szDestProgram$  = GetSymbolValue("DirProgram5")
  638.       szDestAlphabet$ = GetSymbolValue("DirAlphabet5")
  639.       szDestPalette$  = GetSymbolValue("DirPalette5")
  640.       szUpdateEdition$= GetSymbolValue("Edition5")
  641.       GOSUB ADDTOUPDATECOPYLIST
  642.    ENDIF
  643.    sz$ = GetSymbolValue("Update6")
  644.    IF sz$ = STRING_YES THEN
  645.       szDestDir$      = GetSymbolValue("DirDest6")
  646.       szDestProgram$  = GetSymbolValue("DirProgram6")
  647.       szDestAlphabet$ = GetSymbolValue("DirAlphabet6")
  648.       szDestPalette$  = GetSymbolValue("DirPalette6")
  649.       szUpdateEdition$= GetSymbolValue("Edition6")
  650.       GOSUB ADDTOUPDATECOPYLIST
  651.    ENDIF
  652. RETURN
  653.  
  654.  
  655.  
  656.  
  657.  
  658. ADDTOUPDATECOPYLIST:
  659. '''   IF szDestProgram$ = "" THEN
  660. '''      RETURN
  661. '''   ENDIF
  662.    AddSectionFilesToCopyList "MAIN", SrcDir$, szDestProgram$
  663.    AddSectionFilesToCopyList "EXAMPLES",  SrcDir$, szDestProgram$
  664.    IF szDestDir$ <> "" THEN
  665.       AddSectionFilesToCopyList "EXAMPLES",  SrcDir$, szDestDir$
  666.    ENDIF
  667.  
  668.    IF szUpdateEdition$ <> DEMO_EDITION AND szUpdateEdition$ <> DEALER_EDITION THEN
  669.       IF szDestAlphabet$ <> "" THEN
  670.          AddSectionFilesToCopyList "ALPHABETS", SrcDir$, szDestAlphabet$
  671.       ENDIF
  672.       IF szDestPalette$  <> "" THEN
  673.          AddSectionFilesToCopyList "PALETTES",  SrcDir$, szDestPalette$
  674.       ENDIF
  675.    ENDIF
  676.    IF szUpdateEdition$ = DEMO_EDITION OR szUpdateEdition$ = DEALER_EDITION THEN
  677.       AddSectionFilesToCopyList "DEMO", SrcDir$, szDestProgram$
  678.       IF szDestDir$ <> "" THEN
  679.          AddSectionFilesToCopyList "DEMO SAMPLES", SrcDir$, szDestDir$
  680.       ENDIF
  681.    ELSEIF szUpdateEdition$ = HOME_EDITION      THEN
  682.       AddSectionFilesToCopyList "HOME", SrcDir$, szDestProgram$
  683.    ELSEIF szUpdateEdition$ = DESIGNER_EDITION  THEN
  684.       AddSectionFilesToCopyList "DESIGNER",     SrcDir$, szDestProgram$
  685.       AddSectionFilesToCopyList "PROFESSIONAL", SrcDir$, szDestProgram$
  686.    ELSEIF szUpdateEdition$ = PUBLISHER_EDITION THEN
  687.       AddSectionFilesToCopyList "PUBLISH",      SrcDir$, szDestProgram$
  688.       AddSectionFilesToCopyList "PROFESSIONAL", SrcDir$, szDestProgram$
  689.       AddSectionFilesToCopyList "PM", SrcDir$, szDestProgram$
  690.       AddSectionFilesToCopyList "VP", SrcDir$, szDestProgram$
  691.       AddSectionFilesToCopyList "MP", SrcDir$, szDestProgram$
  692. '''      AddSectionFilesToCopyList "QX", SrcDir$, szDestProgram$
  693. '''      AddSectionFilesToCopyList "CD", SrcDir$, szDestProgram$
  694.    ENDIF
  695. RETURN
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704. DISKSPACE:
  705.    SpaceNeaded& = GetCopyListCost ("ExtraIniSpace", "NeadedSpace", "ExtraFileSpace")
  706.    RemoveSymbol "ExtraIniSpace"
  707.    RemoveSymbol "NeadedSpace"
  708.    RemoveSymbol "ExtraFileSpace"
  709. '''   SpaceAvailable& = GetFreeSpaceForDrive (szDestDrive$)
  710.    IF SpaceNeaded& > 0 THEN
  711. '''      SetSymbolValue "SpaceNeaded", 
  712. '''      SetSymbolValue "SpaceAvailable", 
  713.       sz$ = StartDlg(DLG_WARNING_NO_SPACE, "InfoDlgProc", 0)
  714.       IF sz$ = STRING_BACK THEN
  715.          GOSUB OPTIONS
  716.          GOSUB GETPATH
  717.          GOSUB NETWORK
  718.          GOSUB COPYLIST
  719.          GOTO DISKSPACE
  720.       ELSEIF sz$ = STRING_CONTINUE THEN
  721.          GOTO DISKSPACE
  722.       ENDIF
  723.    ENDIF
  724. RETURN
  725.  
  726.  
  727.  
  728.  
  729.  
  730. MAKEDIR:
  731. IF  szEdition$ = UPDATE_EDITION  THEN
  732.    GOSUB MAKEUPDATEDIR
  733. ELSE
  734.    GOSUB MAKEINSTALLDIR
  735. ENDIF
  736. RETURN
  737.  
  738.  
  739.  
  740. MAKEINSTALLDIR:
  741.    CreateDir szDestDir$, cmoNone
  742.    CreateDir szDestProgram$, cmoNone
  743.  
  744.    IF bInstallProgram$ = STRING_TRUE THEN
  745.       IF szEdition$ <> DEMO_EDITION AND szEdition$ <> DEALER_EDITION THEN
  746.          CreateDir szDestAlphabet$, cmoNone
  747.          CreateDir szDestPalette$, cmoNone
  748.       ENDIF
  749.    ENDIF
  750.  
  751.    IF bInstallShow$ = STRING_TRUE THEN
  752.       CreateDir szDestShow$, cmoNone
  753.    ENDIF
  754. RETURN
  755.  
  756. MAKEUPDATEDIR:
  757.    sz$ = GetSymbolValue("Update1")
  758.    IF sz$ = STRING_YES THEN
  759.       szDestAlphabet$ = GetSymbolValue("DirAlphabet1")
  760.       szDestPalette$  = GetSymbolValue("DirPalette1")
  761.       GOSUB ADDUPDATEDIRS
  762.    ENDIF
  763.    sz$ = GetSymbolValue("Update2")
  764.    IF sz$ = STRING_YES THEN
  765.       szDestAlphabet$ = GetSymbolValue("DirAlphabet2")
  766.       szDestPalette$  = GetSymbolValue("DirPalette2")
  767.       GOSUB ADDUPDATEDIRS
  768.    ENDIF
  769.    sz$ = GetSymbolValue("Update3")
  770.    IF sz$ = STRING_YES THEN
  771.       szDestAlphabet$ = GetSymbolValue("DirAlphabet3")
  772.       szDestPalette$  = GetSymbolValue("DirPalette3")
  773.       GOSUB ADDUPDATEDIRS
  774.    ENDIF
  775.    sz$ = GetSymbolValue("Update4")
  776.    IF sz$ = STRING_YES THEN
  777.       szDestAlphabet$ = GetSymbolValue("DirAlphabet4")
  778.       szDestPalette$  = GetSymbolValue("DirPalette4")
  779.       GOSUB ADDUPDATEDIRS
  780.    ENDIF
  781.    sz$ = GetSymbolValue("Update5")
  782.    IF sz$ = STRING_YES THEN
  783.       szDestAlphabet$ = GetSymbolValue("DirAlphabet5")
  784.       szDestPalette$  = GetSymbolValue("DirPalette5")
  785.       GOSUB ADDUPDATEDIRS
  786.    ENDIF
  787.    sz$ = GetSymbolValue("Update6")
  788.    IF sz$ = STRING_YES THEN
  789.       szDestAlphabet$ = GetSymbolValue("DirAlphabet6")
  790.       szDestPalette$  = GetSymbolValue("DirPalette6")
  791.       GOSUB ADDUPDATEDIRS
  792.    ENDIF
  793. RETURN
  794.  
  795.  
  796.  
  797.  
  798.  
  799. ADDUPDATEDIRS:
  800.    IF szDestAlphabet$ <> "" THEN
  801.       CreateDir szDestAlphabet$, cmoNone
  802.    ENDIF
  803.    IF szDestPalette$ <> "" THEN
  804.       CreateDir szDestPalette$, cmoNone
  805.    ENDIF
  806. RETURN
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815. NETWORK:
  816. ''//   NOT YET DONE
  817. RETURN
  818.  
  819.  
  820.  
  821.  
  822.  
  823. ISDISKOLD:
  824.    IF szEdition$=HOME_EDITION   AND szDisk$="OLD" AND szNetQty$=STRING_NO THEN
  825.       sz$ = StartDlg(DLG_WARNING_OLD, "InfoDlgProc", 0)
  826.       GOTO QUIT
  827.    ENDIF
  828. RETURN
  829.  
  830.  
  831.  
  832.  
  833.  
  834. SUCCESS:
  835.    sz$ = StartDlg(DLG_EXIT_SUCCESS, "InfoDlgProc", 0)
  836. RETURN
  837.  
  838.  
  839. CONTACT:
  840.    sz$ = ContactDlg ()
  841. RETURN
  842.  
  843.  
  844.  
  845.  
  846. QUIT:
  847.    ON ERROR GOTO ERRQUIT
  848.    GOSUB CONTACT
  849.    UIPopAll
  850. END
  851.  
  852.  
  853.  
  854.  
  855.  
  856. ERRQUIT:
  857.    i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  858. END
  859.  
  860.  
  861.  
  862.  
  863.  
  864. ISDISKCORRUPT:
  865.    IF szDisk$ <> CORRUPT_DISK THEN
  866.       RETURN
  867.    ENDIF    
  868. DISKCORRUPT:
  869.    sz$ = StartDlg(DLG_WARNING_CORRUPTED, "InfoDlgProc", 0)
  870.    GOTO QUIT
  871. RETURN
  872.  
  873.  
  874.  
  875.  
  876.  
  877. ISDISKCOPY:
  878.    IF szEdition$=HOME_EDITION   AND szDisk$="COPY" AND szNetQty$=STRING_NO THEN
  879.       sz$ = StartDlg(DLG_WARNING_COPY, "InfoDlgProc", 0)
  880.       szEdition = DEMO_EDITION
  881.    ENDIF
  882. RETURN
  883.  
  884.  
  885.  
  886.  
  887.  
  888. ISDISKWRITEPROTECTED:
  889.    IF IsDirWritable(SrcDir$) = 1 THEN
  890.       RETURN
  891.    ENDIF
  892.    IF  szEdition$ = UPDATE_EDITION  THEN
  893.       RETURN
  894.    ELSEIF szEdition$ = DEMO_EDITION   OR   szEdition = DEALER_EDITION THEN
  895.       RETURN 
  896.    ELSEIF szEdition$ = DESIGNER_EDITION  OR  szEdition$ = PUBLISHER_EDITION THEN
  897.       IF szName$ <> "" THEN
  898.          RETURN
  899.       ENDIF
  900.    ENDIF
  901.    IF szNetQty$ <> STRING_NO THEN
  902.       RETURN
  903.    ENDIF
  904.  
  905.    sz$ = StartDlg(DLG_WARNING_PROTECTED, "TitleDlgProc", 0)
  906.    GOTO ISDISKWRITEPROTECTED
  907. RETURN
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915. REGISTER:
  916.    GOSUB ISDISKWRITEPROTECTED                  '' TEST
  917.    SetSymbolValue "Name",        szName$
  918.    SetSymbolValue "DemoEdition", szDemoEdition$
  919.    SetSymbolValue "Rego",        szRego$
  920.    SetSymbolValue "DestDir",     szDestDir$
  921.    SetSymbolValue "DestProgram", szDestProgram$
  922.    i% = RegisterCopy
  923. '''   sz$ = StartDlg(DLG_REGISTER, "RegisterDlgProc", 0)
  924. RETURN
  925.  
  926.  
  927.  
  928.  
  929.  
  930. LOADFILES:
  931.    CopyFilesInCopyList
  932. RETURN
  933.  
  934.  
  935.  
  936.  
  937. LOADGROUP:
  938.    IF  szEdition$ = UPDATE_EDITION  THEN
  939.       RETURN
  940.    ENDIF
  941.  
  942.    IF  szEdition$ = DEMO_EDITION  OR  szEdition$ = DEALER_EDITION  THEN
  943.       IF     szDemoEdition$ = HOME_EDITION      THEN
  944.          szDestGroup$  = GROUP_DH
  945.       ELSEIF szDemoEdition$ = DESIGNER_EDITION  THEN
  946.          szDestGroup$  = GROUP_DD
  947.       ELSEIF szDemoEdition$ = PUBLISHER_EDITION THEN
  948.          szDestGroup$  = GROUP_DP
  949.       ELSE
  950.          GOSUB DISKCORRUPT
  951.       ENDIF
  952. '''   ELSEIF szEdition$ = DEALER_EDITION    THEN
  953. '''      szDestGroup$ = GROUP_DEALER
  954.    ELSEIF szEdition$ = HOME_EDITION      THEN
  955.       szDestGroup$ = GROUP_H
  956.    ELSEIF szEdition$ = DESIGNER_EDITION  THEN
  957.       szDestGroup$ = GROUP_D
  958.    ELSEIF szEdition$ = PUBLISHER_EDITION THEN
  959.       szDestGroup$ = GROUP_P
  960.    ELSE
  961.       GOSUB DISKCORRUPT
  962.    ENDIF
  963.  
  964. '''   IF szEdition = DEMO_EDITION THEN
  965. '''      DeleteProgmanGroup szDestGroup$       ''Does not exist !!
  966. '''   ENDIF
  967. '''   DeleteProgmanGroup szDestGroup$          ''???
  968.    CreateProgmanGroup szDestGroup$, "", cmoNone
  969.    ShowProgmanGroup   szDestGroup$, 1,  cmoNone
  970. RETURN
  971.  
  972.  
  973.  
  974.  
  975. LOADICONS:
  976.    IF  szEdition$ = UPDATE_EDITION  THEN
  977.       RETURN
  978.    ENDIF
  979.  
  980.    IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion = 0 THEN
  981.       GOSUB LOADICONS30
  982.    ELSE
  983.       GOSUB LOADICONS31
  984.    ENDIF   
  985. RETURN
  986.  
  987.  
  988.  
  989.  
  990.  
  991. LOADICONS31:
  992.    IF bInstallExamples$ = STRING_TRUE AND DoesFileExist(szExePath$, femExists) THEN
  993.       CreateProgmanItem szDestGroup$, EXAMPLE1_TITLE, szExePath$+" "+EXAMPLE1_FILE, szExePath$+","+EXAMPLE_ICON_INDEX+",,,"+szDestDir$, cmoOverwrite
  994.       CreateProgmanItem szDestGroup$, EXAMPLE2_TITLE, szExePath$+" "+EXAMPLE2_FILE, szExePath$+","+EXAMPLE_ICON_INDEX+",,,"+szDestDir$, cmoOverwrite
  995.       CreateProgmanItem szDestGroup$, EXAMPLE3_TITLE, szExePath$+" "+EXAMPLE3_FILE, szExePath$+","+EXAMPLE_ICON_INDEX+",,,"+szDestDir$, cmoOverwrite
  996.       CreateProgmanItem szDestGroup$, EXAMPLE4_TITLE, szExePath$+" "+EXAMPLE4_FILE, szExePath$+","+EXAMPLE_ICON_INDEX+",,,"+szDestDir$, cmoOverwrite
  997.    ENDIF
  998.  
  999.    IF (bInstallPM$ = STRING_TRUE) THEN
  1000.       IF (DoesRegKeyExist (PM5_REG)) THEN
  1001.          CreateProgmanItem  szDestGroup$, PM_TITLE, MakePath(szDestProgram$,PM5_FILE), "", cmoOverwrite
  1002.       ELSEIF (DoesRegKeyExist (PM4_REG)) THEN
  1003.          CreateProgmanItem  szDestGroup$, PM_TITLE, MakePath(szDestProgram$,PM4_FILE), "", cmoOverwrite
  1004.       ENDIF
  1005.    ENDIF
  1006.    IF (bInstallVP$ = STRING_TRUE) THEN
  1007.       CreateProgmanItem  szDestGroup$, VP_TITLE, MakePath(szDestProgram$,VP_FILE), "", cmoOverwrite
  1008.    ENDIF
  1009.    IF (bInstallMP$ = STRING_TRUE) THEN
  1010.       CreateProgmanItem  szDestGroup$, MP_TITLE, MakePath(szDestProgram$,MP_FILE), "", cmoOverwrite
  1011.    ENDIF
  1012. '''   IF (bInstallQX$ = STRING_TRUE) THEN
  1013. '''      CreateProgmanItem  szDestGroup$, QX_TITLE, MakePath(szDestProgram$,QX_FILE), "", cmoOverwrite
  1014. '''   ENDIF
  1015. '''   IF (bInstallCD$ = STRING_TRUE) THEN
  1016. '''      CreateProgmanItem  szDestGroup$, CD_TITLE, MakePath(szDestProgram$,CD_FILE), "", cmoOverwrite
  1017. '''   ENDIF
  1018.  
  1019.    CreateProgmanItem  szDestGroup$, NOTES_TITLE,   WRITE_EXE+" "+MakePath(szDestProgram$,NOTES_FILE), "", cmoOverwrite
  1020.  
  1021.    IF (bInstallProgram$ = STRING_TRUE) THEN
  1022.       CreateProgmanItem  szDestGroup$, EXE_TITLE, szExePath$, ",,,,"+szDestDir$, cmoOverwrite
  1023.    ENDIF
  1024.  
  1025.    IF (bInstallTools$ = STRING_TRUE) THEN
  1026.       CreateProgmanItem  szDestGroup$, CALC_SIZ_TITLE, MakePath(szDestProgram$,CALC_SIZ_FILE), "", cmoOverwrite
  1027.       CreateProgmanItem  szDestGroup$, CALC_QTY_TITLE, MakePath(szDestProgram$,CALC_QTY_FILE), "", cmoOverwrite
  1028.    ENDIF
  1029.  
  1030.    IF (bInstallShow$ = STRING_TRUE) THEN
  1031.       CreateProgmanItem  szDestGroup$, SHOWONCE_TITLE, MakePath(szDestShow$,SHOW_EXE) + " " + SHOWONCE_FILE, "", cmoOverwrite
  1032.       CreateProgmanItem  szDestGroup$, SHOWCONT_TITLE, MakePath(szDestShow$,SHOW_EXE) + " " + SHOWCONT_FILE, "", cmoOverwrite
  1033.    ENDIF
  1034.  
  1035. '''   IF szEdition$ = DEMO_EDITION OR szEdition$ = DEALER_EDITION THEN
  1036.    CreateProgmanItem  szDestGroup$, HELP_TITLE, MakePath(szDestProgram$,HELP_FILE), "", cmoOverwrite
  1037. '''   ENDIF
  1038.        
  1039.    IF bInstallWinTutor$ = STRING_TRUE THEN
  1040.       CreateProgmanItem  szDestGroup$, WINTUTOR_TITLE, WINTUTOR_EXE, "", cmoOverwrite
  1041.    ENDIF
  1042.  
  1043. RETURN
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049. LOADICONS30:
  1050.    IF bInstallExamples$ = STRING_TRUE AND DoesFileExist(szExePath$, femExists) THEN
  1051.       CreateProgmanItem szDestGroup$, EXAMPLE1_TITLE, szExePath$+" "+EXAMPLE1_FILE, "", cmoOverwrite
  1052.       CreateProgmanItem szDestGroup$, EXAMPLE2_TITLE, szExePath$+" "+EXAMPLE2_FILE, "", cmoOverwrite
  1053.       CreateProgmanItem szDestGroup$, EXAMPLE3_TITLE, szExePath$+" "+EXAMPLE3_FILE, "", cmoOverwrite
  1054.       CreateProgmanItem szDestGroup$, EXAMPLE4_TITLE, szExePath$+" "+EXAMPLE4_FILE, "", cmoOverwrite
  1055.    ENDIF
  1056.  
  1057.    IF (bInstallPM$ = STRING_TRUE) THEN
  1058.       IF (DoesRegKeyExist (PM5_REG)) THEN
  1059.          CreateProgmanItem  szDestGroup$, PM_TITLE, MakePath(szDestProgram$,PM5_FILE), "", cmoOverwrite
  1060.       ELSEIF (DoesRegKeyExist (PM4_REG)) THEN
  1061.          CreateProgmanItem  szDestGroup$, PM_TITLE, MakePath(szDestProgram$,PM4_FILE), "", cmoOverwrite
  1062.       ENDIF
  1063.    ENDIF
  1064.    IF (bInstallVP$ = STRING_TRUE) THEN
  1065.       CreateProgmanItem  szDestGroup$, VP_TITLE, MakePath(szDestProgram$,VP_FILE), "", cmoOverwrite
  1066.    ENDIF
  1067.    IF (bInstallMP$ = STRING_TRUE) THEN
  1068.       CreateProgmanItem  szDestGroup$, MP_TITLE, MakePath(szDestProgram$,MP_FILE), "", cmoOverwrite
  1069.    ENDIF
  1070. '''   IF (bInstallQX$ = STRING_TRUE) THEN
  1071. '''      CreateProgmanItem  szDestGroup$, QX_TITLE, MakePath(szDestProgram$,QX_FILE), "", cmoOverwrite
  1072. '''   ENDIF
  1073. '''   IF (bInstallCD$ = STRING_TRUE) THEN
  1074. '''      CreateProgmanItem  szDestGroup$, CD_TITLE, MakePath(szDestProgram$,CD_FILE), "", cmoOverwrite
  1075. '''   ENDIF
  1076.  
  1077.    CreateProgmanItem  szDestGroup$, NOTES_TITLE,   WRITE_EXE+" "+MakePath(szDestProgram$,NOTES_FILE), "", cmoOverwrite
  1078.  
  1079.    IF (bInstallProgram$ = STRING_TRUE) THEN
  1080.       CreateProgmanItem  szDestGroup$, EXE_TITLE, szExePath$, "", cmoOverwrite
  1081.    ENDIF
  1082.  
  1083.    IF (bInstallTools$ = STRING_TRUE) THEN
  1084.       CreateProgmanItem  szDestGroup$, CALC_SIZ_TITLE, MakePath(szDestProgram$,CALC_SIZ_FILE), "", cmoOverwrite
  1085.       CreateProgmanItem  szDestGroup$, CALC_QTY_TITLE, MakePath(szDestProgram$,CALC_QTY_FILE), "", cmoOverwrite
  1086.    ENDIF
  1087.  
  1088.    IF (bInstallShow$ = STRING_TRUE) THEN
  1089.       CreateProgmanItem  szDestGroup$, SHOWONCE_TITLE, MakePath(szDestShow$,SHOW_EXE) + " " + SHOWONCE_FILE, "", cmoOverwrite
  1090.       CreateProgmanItem  szDestGroup$, SHOWCONT_TITLE, MakePath(szDestShow$,SHOW_EXE) + " " + SHOWCONT_FILE, "", cmoOverwrite
  1091.    ENDIF
  1092.  
  1093. '''   IF szEdition$ = DEMO_EDITION OR szEdition$ = DEALER_EDITION THEN
  1094.    CreateProgmanItem  szDestGroup$, HELP_TITLE, MakePath(szDestProgram$,HELP_FILE), "", cmoOverwrite
  1095. '''   ENDIF
  1096.        
  1097.    IF bInstallWinTutor$ = STRING_TRUE THEN
  1098.       CreateProgmanItem  szDestGroup$, WINTUTOR_TITLE, WINTUTOR_EXE, "", cmoOverwrite
  1099.    ENDIF
  1100.  
  1101. RETURN
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107. REGOEDITOR:              '' Register StitchCraft files with REGO EDITOR
  1108.    IF  szEdition$ = UPDATE_EDITION  THEN
  1109.       RETURN
  1110.    ENDIF
  1111.  
  1112.    n% = DoesRegKeyExist (REG_KEY)
  1113.    IF szEdition$ = DEMO_EDITION AND n% = 1 THEN
  1114.       RETURN
  1115.    ENDIF
  1116.    IF  n% = 1 THEN
  1117.       DeleteRegKey REG_KEY
  1118.    ENDIF
  1119.    CreateRegKeyValue REG_KEY, REG_TYPE
  1120.    CreateRegKeyValue REG_KEY +"\shell\open\command", szExePath$ + " %1"
  1121.    CreateRegKeyValue REG_EXT, REG_KEY
  1122. RETURN
  1123.  
  1124.  
  1125.  
  1126. '**
  1127. '** Purpose:
  1128. '**     Appends a file name to the end of a directory path,
  1129. '**     inserting a backslash character as needed.
  1130. '** Arguments:
  1131. '**     szDir$  - full directory path (with optional ending "\")
  1132. '**     szFile$ - filename to append to directory
  1133. '** Returns:
  1134. '**     Resulting fully qualified path name.
  1135. '*************************************************************************
  1136. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  1137.    IF szDir$ = "" THEN
  1138.       MakePath = szFile$
  1139.    ELSEIF szFile$ = "" THEN
  1140.       MakePath = szDir$
  1141.    ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  1142.       MakePath = szDir$ + szFile$
  1143.    ELSE
  1144.       MakePath = szDir$ + "\" + szFile$
  1145.    ENDIF
  1146. END FUNCTION
  1147.  
  1148.  
  1149.  
  1150.  
  1151. '**
  1152. '** Purpose:
  1153. '**     Starts a Dlg Box,
  1154. '**     handles Reactivate & Quit.
  1155. '***    Pops Dlg from stack
  1156. '** Arguments:
  1157. '**     DlgDLL$    - 
  1158. '**     DlgID%     - 
  1159. '**     DlgProc    -
  1160. '**     HelpDlgID% - 
  1161. '** Returns:
  1162. '**     Resulting String from Dlg.
  1163. '*************************************************************************
  1164. FUNCTION StartDlg (DlgID%, DlgProc$, HelpDlgID%) STATIC AS STRING
  1165. STARTDLG:
  1166.    IF HelpDlgID% = 0 THEN
  1167.       sz$ = UIStartDlg (CUSTOMDLL$, DlgID%, DlgProc$, 0, "")
  1168.    ELSE
  1169.       sz$ = UIStartDlg (CUSTOMDLL$, DlgID%, DlgProc$, HelpDlgID%, HELPPROC$)
  1170.    ENDIF
  1171.    IF sz$ = "REACTIVATE" THEN
  1172.       GOTO STARTDLG
  1173.    ENDIF
  1174.    UIPop 1
  1175.  
  1176.    IF sz$ = STRING_QUIT THEN
  1177. ASKQUIT:
  1178.       sz$ = UIStartDlg(CUSTOMDLL$, DLG_ASK_QUIT, "InfoDlgProc", 0, "")
  1179.       IF sz$ = "REACTIVATE" THEN
  1180.          GOTO ASKQUIT
  1181.       ELSEIF sz$ = STRING_QUIT THEN
  1182.          UIPop 1
  1183.          sz$ = ContactDlg ()
  1184.          UIPopAll
  1185.          END
  1186.       ELSE
  1187.          UIPop 1
  1188.       ENDIF
  1189.       GOTO STARTDLG
  1190.    ENDIF
  1191. StartDlg = sz$
  1192. END FUNCTION
  1193.  
  1194.  
  1195.  
  1196. FUNCTION ContactDlg () STATIC AS STRING
  1197.    szDistributor$ = GetSymbolValue("Distributor")
  1198.    IF     szDistributor$ = CRAFTEDSOFTWARE        THEN
  1199.       sz$ = StartDlg(DLG_CONTACT,         "InfoDlgProc", 0)
  1200.    ELSEIF szDistributor$ = CRAFTEDSOFTWARE_UK THEN
  1201.       sz$ = StartDlg(DLG_CONTACT_UK,      "InfoDlgProc", 0)
  1202.    ELSEIF szDistributor$ = KNITDESIGN         THEN
  1203.       sz$ = StartDlg(DLG_CONTACT_HOLLAND, "InfoDlgProc", 0)
  1204.    ELSEIF szDistributor$ = STITCHDESIGN       THEN
  1205.       sz$ = StartDlg(DLG_CONTACT_USA,     "InfoDlgProc", 0)
  1206.    ELSE 
  1207.       sz$ = StartDlg(DLG_CONTACT,         "InfoDlgProc", 0)
  1208.    ENDIF
  1209. ContactDlg = sz$
  1210. END FUNCTION
  1211.