home *** CD-ROM | disk | FTP | other *** search
/ PC Direct 1996 August / AAHRDEMO.ISO / software / docs / hotdocs.ms_ / hotdocs.bin
Encoding:
Text File  |  1996-05-14  |  43.3 KB  |  1,445 lines

  1. ''********************** HOTDOCS INSTALLATION SCRIPT
  2. '$INCLUDE 'hddefine.inc'
  3. '$INCLUDE 'setupapi.inc'                                  
  4. '$INCLUDE 'msdetect.inc'
  5. '$IFDEF HOTDOCS
  6.     '$INCLUDE 'msregdb.inc'
  7. '$ENDIF
  8.  
  9. ''********************* DIALOG CONSTANTS
  10. CONST WELCOME           = 100
  11. CONST BAD_HW_SW            = 101
  12. CONST CANNOT_CREATE        = 102
  13. CONST APPHELP           = 103
  14. CONST TOOBIG            = 104
  15. CONST BADPATH           = 105
  16. CONST EXITFAILURE          = 108
  17. CONST DIR_NO_EXIST        = 109
  18. CONST PERSONALINFO          = 1000
  19.  
  20. '$IFDEF HOTDOCS AND NOT RUNTIME AND NOT EVALUATE
  21.     CONST INSTALLTYPE        = 106
  22. '$ELSE
  23.     CONST INSTALLTYPE        = 107
  24. '$ENDIF
  25. '$IFDEF HOTDOCS
  26.     '$IFDEF RUNTIME
  27.         CONST EXITSUCCESS    = 300
  28.         CONST AP30DLG        = 301
  29.         CONST MSW20DLG        = 302
  30.         CONST WP61DLG        = 303
  31.         CONST WP60DLG        = 304
  32.         CONST MSW60DLG        = 305
  33.         CONST WP52DLG        = 306
  34.         CONST WP70DLG        = 308
  35.     '$ELSE
  36.         CONST EXITSUCCESS    = 207
  37.         CONST WP61DLG            = 211
  38.         CONST WP52DLG          = 212
  39.         CONST MSW20DLG          = 213
  40.         CONST AP30DLG          = 214
  41.         CONST WP60DLG            = 215
  42.         CONST MSW60DLG            = 216
  43.         CONST WP70DLG            = 217
  44.     '$ENDIF
  45.     CONST STD_WORDPROCS    = 203
  46.     CONST STD_DIRS            = 201
  47.     CONST WS_DIRS            = 202
  48.     CONST ASKQUIT        = 205
  49.     CONST EXITQUIT       = 206
  50.     CONST NO_SPACE         = 209
  51.     CONST LOGO                 = 1
  52. '$ELSE
  53.     CONST STD_DIRS            = 400
  54.     CONST WS_DIRS            = 401
  55.     CONST ASKQUIT            = 402
  56.     CONST EXITQUIT            = 403
  57.     CONST NO_SPACE            = 406
  58.     CONST LOGO              = 2
  59.     '$IFDEF RUNTIME
  60.         CONST EXITSUCCESS    = 500
  61.     '$ELSE
  62.         CONST EXITSUCCESS    = 404
  63.     '$ENDIF
  64. '$ENDIF
  65.  
  66.  
  67. '********************* GLOBAL VARIABLES
  68. GLOBAL CUIDLL$
  69. GLOBAL SRCDIR$
  70. GLOBAL HDPROG$
  71. GLOBAL HDUSER$
  72. GLOBAL HDDIR$
  73. GLOBAL HDTPLPATH$
  74. GLOBAL HDANSPATH$
  75. GLOBAL HDCOMPPATH$
  76. GLOBAL LIBENTRY$
  77. GLOBAL TPLENTRY$
  78. GLOBAL WINDIR$
  79. GLOBAL WINSYSDIR$
  80. GLOBAL DIRSECT$
  81. GLOBAL PREFSECT$
  82. GLOBAL WININI$
  83. GLOBAL HDINI$
  84. GLOBAL CREATECOMPDIR%
  85. GLOBAL DEMOPATH$
  86. '$IFDEF HOTDOCS
  87.     GLOBAL MACROENTRY$
  88.     GLOBAL STYLEENTRY$
  89.     GLOBAL DOCENTRY$
  90.     GLOBAL ICONENTRY$
  91.     GLOBAL STARTUPENTRY$
  92.  
  93.     GLOBAL WP52NAME$
  94.     GLOBAL WP52$
  95.     GLOBAL WP52DOCS$
  96.     GLOBAL WP52MACROS$
  97.     GLOBAL WP52TEMPLATES$
  98.  
  99.     GLOBAL WP60NAME$
  100.     GLOBAL WP60$
  101.     GLOBAL WP60DOCS$
  102.     GLOBAL WP60MACROS$
  103.     GLOBAL WP60TEMPLATES$
  104.  
  105.     GLOBAL WP61NAME$
  106.     GLOBAL WP61$
  107.     GLOBAL WP61DOCS$
  108.     GLOBAL WP61MACROS$
  109.     GLOBAL WP61TEMPLATES$
  110.  
  111.     GLOBAL WP70NAME$
  112.     GLOBAL WP70$
  113.     GLOBAL WP70DOCS$
  114.     GLOBAL WP70MACROS$
  115.     GLOBAL WP70TEMPLATES$
  116.  
  117.     GLOBAL MSW20NAME$
  118.     GLOBAL MSW20$
  119.     GLOBAL MSW20DOCS$
  120.     GLOBAL MSW20TEMPLATES$
  121.     GLOBAL MSW20STUFF$
  122.  
  123.     GLOBAL MSW60NAME$
  124.     GLOBAL MSW60$
  125.     GLOBAL MSW60DOCS$
  126.     GLOBAL MSW60TEMPLATES$
  127.     GLOBAL MSW60STARTUP$
  128.  
  129.     GLOBAL AP30INI$
  130.     GLOBAL AP30NAME$
  131.     GLOBAL AP30$
  132.     GLOBAL AP30DOCS$
  133.     GLOBAL AP30MACROS$
  134.     GLOBAL AP30ICONS$
  135.     GLOBAL AP30TEMPLATES$
  136.     GLOBAL AP30STYLES$
  137.  
  138.     GLOBAL TEMPLATEDIR$
  139.     GLOBAL MACRODIR$
  140.     GLOBAL WPDOCDIR$
  141.     GLOBAL SAMPLES$
  142. '$ENDIF
  143.  
  144. '******************* FUNCTION AND SUBROUTINE DECLARATIONS
  145. DECLARE SUB SetGlobals
  146. DECLARE SUB SetLogo
  147. DECLARE SUB InitInf
  148. DECLARE FUNCTION GetHDIString(key$,section$,default$) AS STRING
  149. DECLARE FUNCTION GetILString(section$) AS STRING
  150. DECLARE SUB InstallPref(prefName$,pref$)
  151. DECLARE SUB Install
  152. DECLARE SUB InstallCommonStuff
  153. DECLARE SUB NetscapeInstall LIB "MSCUISTF.DLL"
  154. DECLARE FUNCTION CheckForPanel LIB "MSCUISTF.DLL" (code AS INTEGER) AS INTEGER
  155. DECLARE FUNCTION SetKeys LIB "HD3REG.DLL" (szFile$,vType AS INTEGER,hfType AS INTEGER,pub$) AS INTEGER
  156. DECLARE FUNCTION ReplaceKeys LIB "HD3REG.DLL" (szFile$) AS INTEGER
  157. DECLARE FUNCTION MakePath (szDir$) AS STRING
  158. DECLARE SUB InstallWP(wpName$,wpPrefix$,wpTplDir$,wpDocDir$,wpLibName$)
  159. DECLARE SUB SetEditSyms(sym1$,sym2$,sym3$,sym4$,focus$)
  160. DECLARE SUB RemoveHDFile(fName$)
  161. DECLARE FUNCTION NewerVersion(versFile$,oldVers$) AS INTEGER
  162. '$IFDEF HOTDOCS
  163.     DECLARE FUNCTION CheckWPDirs(dir1$,dir2$) AS INTEGER
  164.     DECLARE SUB CreateHotDocsIcons
  165.     DECLARE SUB InstallHotDocsStuff
  166. '$ENDIF
  167. '$IFDEF HOTFORMS
  168.     DECLARE SUB InstallHotFormsStuff
  169.     DECLARE SUB CreateHotFormsIcons
  170. '$ENDIF
  171.  
  172. '***************** START OF SCRIPT
  173.  
  174. 'DO SOME OTHER INTIALIZATION
  175. SetGlobals
  176. SetLogo
  177. InitInf
  178.  
  179.     panelCode = 0
  180.     '$IFDEF HOTDOCS
  181.         panelCode = 1
  182.     '$ENDIF
  183.     '$IFDEF HOTFORMS
  184.         panelCode = panelCode + 2
  185.     '$ENDIF
  186. CHECKPNL:
  187.     IF CheckForPanel(panelCode) = 0 THEN
  188.         UIPopAll
  189.         GOSUB ASKQUIT
  190.         GOTO CHECKPNL
  191.     END IF
  192.  
  193.     '' CHECK HARDWARE AND SOFTWARE VERSION
  194.     CHECK_HW_SW:
  195.         majorVersion% = GetWindowsMajorVersion()
  196.         minorVersion% = GetWindowsMinorVersion()
  197.         windowsMode% = GetWindowsMode()
  198.         IF majorVersion < 3 OR minorVersion < 1  OR windowsMode < 2 THEN
  199.             sz$ = UIStartDlg(CUIDLL$, BAD_HW_SW, "FQuitDlgProc", 0, "")
  200.             IF sz$ = "EXIT" THEN
  201.                 UIPopAll
  202.                 ERROR STFQUIT
  203.             ELSEIF sz$ = "REACTIVATE" THEN
  204.                 GOTO CHECK_HW_SW
  205.             ELSE
  206.                 UIPop 1
  207.             END IF
  208.         END IF
  209.  
  210.     '$IFDEF RUNTIME
  211.         IF GetILString( "Welcome") = "YES" THEN
  212.             WELCOME_START:
  213.             sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc",0, "")
  214.             IF sz$ = "CONTINUE" THEN
  215.                 UIPop 1
  216.             ELSEIF sz$ = "REACTIVATE" THEN
  217.                 GOTO WELCOME_START
  218.             ELSE
  219.                 GOSUB ASKQUIT
  220.                 GOTO WELCOME_START
  221.             END IF
  222.         END IF
  223.     '$ENDIF
  224.  
  225. '$IFDEF HOTDOCS
  226.         ''*** GET WP70 PATHS
  227.         WP70DOCS$ = "c:\wpwin70"
  228.         WP70MACROS$ = "c:\wpwin70\macros"
  229.         WP70TEMPLATES$ = "c:\wpwin70\template"
  230.         WP70$ = "OFF"
  231.         '*** CHECK 32 BIT REGISTRATION DATABASE
  232.         INIFILE$ = WINDIR$ + "HDWIN32.INI"
  233.         IF DoesFileExist(INIFILE$,femExists) THEN
  234.             IF DoesIniKeyExist(INIFILE$,"Short Path Names","WP70DOCS") THEN
  235.                 WP70DOCS$ = GetIniKeyString(INIFILE$,"Short Path Names","WP70DOCS")
  236.                 WP70$ = "ON"
  237.             END IF
  238.             IF DoesIniKeyExist(INIFILE$,"Short Path Names","WP70TEMPLATES") THEN
  239.                 WP70TEMPLATES$ = UCASE$(GetIniKeyString(INIFILE$,"Short Path Names","WP70TEMPLATES"))
  240.             END IF
  241.             IF DoesIniKeyExist(INIFILE$,"Short Path Names","WP70MACROS") THEN
  242.                 WP70MACROS$ = GetIniKeyString(INIFILE$,"Short Path Names","WP70MACROS")
  243.             END IF
  244.         END IF
  245.         '*** CHECK PREVIOUS INSTALLATION
  246.         WP70DOCS$ = GetHDIString(WP70NAME$,DOCENTRY$,WP70DOCS$)
  247.         WP70TEMPLATES$ = GetHDIString(WP70NAME$,TPLENTRY$,WP70TEMPLATES$)
  248.         WP70MACROS$ = GetHDIString(WP70NAME$,MACROENTRY$,WP70MACROS$)
  249.         '$IFDEF RUNTIME
  250.             WP70DOCS$ = ""
  251.         '$ENDIF
  252.         'IF GetILString("WP70") <> "ON" THEN
  253.         '    WP70$ = GetILString("WP70")
  254.         'END IF
  255.  
  256.         ''*** GET WP61 PATHS
  257.         WP61PATH$ = "c:\wpwin61"
  258.         WP61$ = "OFF"
  259.         WP61MACROS$ = MakePath(GetRegKeyValue("WPConfig\Apps\WPWin61\Paths\MacroDir"))
  260.         WP61TEMPLATES$ = MakePath(GetRegKeyValue("WPConfig\Apps\WPWin61\Paths\TemplateDir"))
  261.         WP61DOCS$ = MakePath(GetRegKeyValue("WPConfig\Apps\WPWin61\Paths\DocumentsDir"))
  262.         IF WP61DOCS$ <> "" THEN
  263.             WP61$ = "ON"
  264.             docPos% = INSTR(UCASE$(WP61DOCS$),WPDOCDIR$)
  265.             IF docPos% <> 0 THEN
  266.                 WP61PATH$ = MID$(WP61DOCS$,1,docPos%-1)
  267.             END IF
  268.         ELSE
  269.             WP61DOCS$ = WP61PATH$ + WPDOCDIR$
  270.         END IF
  271.         IF WP61MACROS$ = "" THEN
  272.             WP61MACROS$ = WP61PATH$ + MACRODIR$
  273.         END IF
  274.         IF WP61TEMPLATES$ = "" THEN
  275.             WP61TEMPLATES$ = WP61PATH$ + TEMPLATEDIR$
  276.         END IF
  277.         WP61DOCS$ = GetHDIString(WP61NAME$,DOCENTRY$,WP61DOCS$)
  278.         WP61TEMPLATES$ = GetHDIString(WP61NAME$,TPLENTRY$,WP61TEMPLATES$ + "\HOTDOCS")
  279.         WP61MACROS$ = GetHDIString(WP61NAME$,MACROENTRY$,WP61MACROS$)
  280.         '$IFDEF RUNTIME
  281.             WP61DOCS$ = ""
  282.         '$ENDIF
  283.         'IF GetILString("WP61") <> "ON" THEN
  284.         '    WP61$ = GetILString("WP61")
  285.         'END IF
  286.  
  287.  
  288.         ''*** GET WP60 PATHS
  289.         WP60PATH$ = "c:\wpwin60"
  290.         WP60$ = "OFF"
  291.         WP60MACROS$ = MakePath(GetRegKeyValue("WPConfig\Apps\WPWin60\Normal\MacroDir"))
  292.         WP60TEMPLATES$ = MakePath(GetRegKeyValue("WPConfig\Apps\WPWin60\Normal\TemplateDir"))
  293.         IF WP60MACROS$ = "" THEN
  294.             WP60MACROS$ = WP60PATH$ + MACRODIR$
  295.         ELSE
  296.             WP60$ = "ON"
  297.             macroPos% = INSTR(UCASE$(WP60MACROS$),MACRODIR$)
  298.             IF macroPos% <> 0 THEN
  299.                 WP60PATH$ = MID$(WP60MACROS$,1,macroPos%-1)
  300.             END IF
  301.         END IF
  302.         IF WP60TEMPLATES$ = "" THEN
  303.             WP60TEMPLATES$ = WP60PATH$ + TEMPLATEDIR$
  304.         END IF
  305.         WP60DOCS$ = GetHDIString(WP60NAME$,DOCENTRY$,WP60PATH$ + WPDOCDIR$)
  306.         WP60TEMPLATES$ = GetHDIString(WP60NAME$,TPLENTRY$,WP60TEMPLATES$)
  307.         WP60MACROS$ = GetHDIString(WP60NAME$,MACROENTRY$,WP60MACROS$)
  308.         '$IFDEF RUNTIME
  309.             WP60DOCS$ = ""
  310.         '$ENDIF
  311.         'IF GetILString("WP60") <> "ON" THEN
  312.         '    WP60$ = GetILString("WP60")
  313.         'END IF
  314.  
  315.         ''*** GET WP52 PATHS
  316.         WP52PATH$ = "c:\wpwin"
  317.         WP52$   = "OFF"
  318.         INIFILE$ = WINDIR$ + "WPC.INI"
  319.         IF DoesFileExist(INIFILE$,femExists) AND DoesIniKeyExist(INIFILE$,"QuickList",GetILString( "QLMacros")) THEN
  320.             WP52STUFF$ = GetIniKeyString(INIFILE$,"QuickList",GetILString( "QLMacros"))
  321.             macroPos% = INSTR(UCASE$(WP52STUFF$),MACRODIR$)
  322.             IF macroPos% <> 0 THEN
  323.                 WP52PATH$ = MID$(WP52STUFF$,1,macroPos%-1)
  324.             END IF
  325.         END IF
  326.         IF IsDirWritable(WP52PATH$) THEN
  327.             IF DoesDirExist(WP52PATH$) THEN
  328.                 WP52$ = "ON"
  329.             END IF
  330.         END IF
  331.         WP52PATH$ = MakePath(WP52PATH$)
  332.         WP52DOCS$ = GetHDIString(WP52NAME$,DOCENTRY$,WP52PATH$)
  333.         WP52TEMPLATES$ = GetHDIString(WP52NAME$,TPLENTRY$,WP52PATH$ + TEMPLATEDIR$)
  334.         WP52MACROS$ = GetHDIString(WP52NAME$,MACROENTRY$,WP52PATH$ + MACRODIR$)
  335.         '$IFDEF RUNTIME
  336.             WP52DOC$ = ""
  337.         '$ENDIF
  338.         'IF GetILString("WP52") <> "ON" THEN
  339.         '    WP52$ = GetILString("WP52")
  340.         'END IF
  341.  
  342.         ''*** GET MSW60 PATH
  343.  
  344.         MSW60DOCS$ = "c:\winword"
  345.         MSW60TEMPLATES$ = "c:\winword" + TEMPLATEDIR$
  346.         MSW60STARTUP$ = "c:\winword" + GetILString( "StartupDir")
  347.         MSW60$ = "OFF"
  348.         '*** LOOK IN WINWORD6.INI
  349.         INIFILE$ = WINDIR$ + "WINWORD6.INI"
  350.         IF DoesFileExist(INIFILE$,femExists) THEN
  351.             IF DoesIniKeyExist(INIFILE$,"Microsoft Word","DOC-PATH") THEN
  352.                 MSW60DOCS$ = GetIniKeyString(INIFILE$,"Microsoft Word","DOC-PATH")
  353.             END IF
  354.             IF DoesIniKeyExist(INIFILE$,"Microsoft Word","USER-DOT-PATH") THEN
  355.                 MSW60TEMPLATES$ = UCASE$(GetIniKeyString(INIFILE$,"Microsoft Word","USER-DOT-PATH"))
  356.             END IF
  357.             IF DoesIniKeyExist(INIFILE$,"Microsoft Word","STARTUP-PATH") THEN
  358.                 MSW60STARTUP$ = GetIniKeyString(INIFILE$,"Microsoft Word","STARTUP-PATH")
  359.             END IF
  360.             MSW60$ = "ON"
  361.         END IF
  362.         '*** CHECK 32 BIT REGISTRATION DATABASE
  363.         INIFILE$ = WINDIR$ + "HDWIN32.INI"
  364.         IF DoesFileExist(INIFILE$,femExists) THEN
  365.             IF DoesIniKeyExist(INIFILE$,"Short Path Names","DOC-PATH") THEN
  366.                 MSW60DOCS$ = GetIniKeyString(INIFILE$,"Short Path Names","DOC-PATH")
  367.             END IF
  368.             IF DoesIniKeyExist(INIFILE$,"Short Path Names","LocalTemplates") THEN
  369.                 MSW60TEMPLATES$ = UCASE$(GetIniKeyString(INIFILE$,"Short Path Names","LocalTemplates"))
  370.             END IF
  371.             IF DoesIniKeyExist(INIFILE$,"Short Path Names","STARTUP-PATH") THEN
  372.                 MSW60STARTUP$ = GetIniKeyString(INIFILE$,"Short Path Names","STARTUP-PATH")
  373.             END IF
  374.             MSW60$ = "ON"
  375.         END IF
  376.  
  377.         '*** CHECK EXISTING INSTALLATION
  378.         MSW60DOCS$ = GetHDIString(MSW60NAME$,DOCENTRY$,MSW60DOCS$)
  379.         MSW60TEMPLATES$ = GetHDIString(MSW60NAME$,TPLENTRY$,MSW60TEMPLATES$)
  380.         'MSW60STARTUP$ = GetHDIString(MSW60NAME$,STARTUPENTRY$,MSW60STARTUP$)
  381.         '$IFDEF RUNTIME
  382.             MSW60DOCS$ = ""
  383.         '$ENDIF
  384.         'IF GetILString("MSW60") <> "ON" THEN
  385.         '    MSW60$ = GetILString("MSW60")
  386.         'END IF
  387.  
  388.       ''** GET MSW20 PATH
  389.         MSW20PATH$ = "c:\winword"
  390.         MSW20$ = "OFF"
  391.         IF DoesFileExist(WININI$,femExists) THEN
  392.             IF DoesIniKeyExist(WININI$,"Microsoft Word 2.0","programdir") THEN
  393.                 MSW20PATH$ = GetIniKeyString(WININI$,"Microsoft Word 2.0","programdir")
  394.             ELSEIF DoesIniKeyExist(WININI$,"MSWord Text Converters","MSWordDos") THEN
  395.                 MSW20STUFF$ = GetIniKeyString(WININI$,"MSWord Text Converters","MSWordDos")
  396.                 colonPos% = INSTR(MSW20STUFF$,":")
  397.                 winwordPos% = INSTR(UCASE$(MSW20STUFF$),"WORD\")
  398.                 IF colonPos% > 0 AND  winwordPos%>colonPos% THEN
  399.                     MSW20PATH$ = MID$(MSW20STUFF$,colonPos%-1,winwordPos%-colonPos%+5)
  400.                 END IF
  401.             END IF
  402.         END IF
  403.         IF MSW20PATH$ = "" THEN
  404.             MSW20PATH$ = "c:\winword\"
  405.         END IF
  406.         MSW20PATH$ = MakePath(MSW20PATH$)
  407.         MSW20DOCS$ = MSW20PATH$
  408.         MSW20TEMPLATES$ = UCASE$(MSW20PATH$ + TEMPLATEDIR$)
  409.         IF IsDirWritable(MSW20PATH$) THEN
  410.             IF DoesDirExist(MSW20PATH$) THEN
  411.                 IF MSW20TEMPLATES$ <> MSW60TEMPLATES$ THEN
  412.                     MSW20$ = "ON"
  413.                 END IF
  414.             END IF
  415.         END IF
  416.         MSW20DOCS$ = GetHDIString(MSW20NAME$,DOCENTRY$,MSW20DOCS$)
  417.         MSW20TEMPLATES$ = GetHDIString(MSW20NAME$,TPLENTRY$,MSW20TEMPLATES$)
  418.         '$IFDEF RUNTIME
  419.             MSW20DOCS$ = ""
  420.         '$ENDIF
  421.         'IF GetILString("MSW20") <> "ON" THEN
  422.         '    MSW20$ = GetILString("MSW20")
  423.         'END IF
  424.  
  425.         ''*** GET AMIPRO30 PATH
  426.         AP30DOCS$ = "c:\amipro" + GetILString( "APDocDir")
  427.         AP30MACROS$ = "c:\amipro" + MACRODIR$
  428.         AP30ICONS$ = "c:\amipro" + GetILString( "APIconDir")
  429.         AP30TEMPLATES$ = "c:\amipro" + TEMPLATEDIR$
  430.         AP30TEMPLATES$ = "c:\amipro" + GetILString( "StyleDir")
  431.         AP30$ = "OFF"
  432.         INIFILE$ = WINDIR$ + "AMIPRO.INI"
  433.         IF DoesFileExist(INIFILE$,femExists) THEN
  434.             IF DoesIniKeyExist(INIFILE$,"AmiPro","docpath") THEN
  435.                 AP30DOCS$ = GetIniKeyString(INIFILE$,"AmiPro","docpath")
  436.             END IF
  437.             IF DoesIniKeyExist(INIFILE$,"AmiPro","macrodir") THEN
  438.                 AP30MACROS$ = GetIniKeyString(INIFILE$,"AmiPro","macrodir")
  439.             END IF
  440.             IF DoesIniKeyExist(INIFILE$,"AmiPro","iconpath") THEN
  441.                 AP30ICONS$ = GetIniKeyString(INIFILE$,"AmiPro","iconpath")
  442.             END IF
  443.             IF DoesIniKeyExist(INIFILE$,"AmiPro","stypath") THEN
  444.                 AP30STYLES$ = GetIniKeyString(INIFILE$,"AmiPro","stypath")
  445.             END IF
  446.             macroPos% = INSTR(UCASE$(AP30MACROS$),MACRODIR$)
  447.             IF macroPos% <> 0 THEN
  448.                 AP30PATH$ = MID$(AP30MACROS$,1,macroPos%-1)
  449.             END IF
  450.             AP30$   = "ON"
  451.         END IF
  452.         AP30DOCS$ = GetHDIString(AP30NAME$,DOCENTRY$,AP30DOCS$)
  453.         AP30TEMPLATES$ = GetHDIString(AP30NAME$,TPLENTRY$,AP30PATH$ + TEMPLATEDIR$)
  454.         AP30MACROS$ = GetHDIString(AP30NAME$,MACROENTRY$,AP30MACROS$)
  455.         AP30STYLES$ = GetHDIString(AP30NAME$,STYLEENTRY$,AP30STYLES)
  456.         AP30ICONS$ = GetHDIString(AP30NAME$,ICONENTRY$,AP30ICONS$)
  457.         '$IFDEF RUNTIME
  458.             AP30DOCS$ = ""
  459.         '$ENDIF
  460.         'IF GetILString("AP30") <> "ON" THEN
  461.         '    AP30$ = GetILString("AP30")
  462.         'END IF
  463.  
  464.     '$ENDIF
  465.  
  466.     ''*** GET THE INSTALLATION TYPE
  467.     HDPROG$ = "ON"
  468.     HDUSER$ = "ON"
  469.     '$IFDEF HOTDOCS AND NOT RUNTIME AND NOT EVALUATE
  470.         IF GetILString("SamplesDir") <> "" THEN
  471.             SAMPLES$ = "ON"
  472.         ELSE
  473.             SAMPLES$ = "OFF"
  474.         ENDIF
  475.     '$ENDIF
  476.  
  477.      AddListItem    "CheckItemsIn", ""
  478.      AddListItem    "CheckItemsIn", ""
  479.      AddListItem    "CheckItemsIn", ""
  480.      AddListItem    "CheckItemsIn", ""
  481.      AddListItem    "CheckItemsIn", ""
  482.      AddListItem    "CheckItemsIn", ""
  483.      AddListItem    "CheckItemsIn", ""
  484.  
  485. OPTION:
  486.      ReplaceListItem   "CheckItemsIn", 1, HDPROG$
  487.      ReplaceListItem   "CheckItemsIn", 2, HDUSER$
  488. '$IFDEF HOTDOCS AND NOT RUNTIME AND NOT EVALUATE
  489.     ReplaceListItem    "CheckItemsIn", 3, SAMPLES$
  490. '$ENDIF
  491. OPTL1:
  492.      sz$ = UIStartDlg(CUIDLL$, INSTALLTYPE, "FCheckDlgProc", APPHELP, HELPPROC$)
  493.      HDPROG$ = GetListItem("CheckItemsOut",1)
  494.      HDUSER$ = GetListItem("CheckItemsOut",2)
  495.     '$IFDEF HOTDOCS AND NOT RUNTIME AND NOT EVALUATE
  496.         IF SAMPLES$ = "ON" THEN
  497.             SAMPLES$ = GetListItem("CheckItemsOut",3)
  498.         ENDIF
  499.     '$ENDIF
  500.      IF sz$ = "CONTINUE" THEN
  501.           UIPop(1)
  502.      ELSEIF sz$ = "REACTIVATE" THEN
  503.           GOTO OPTL1
  504.      ELSE
  505.           GOSUB ASKQUIT
  506.           GOTO OPTION
  507.      END IF
  508.  
  509.      ''*** GET THE HOTDOCS DIRECTORIES
  510.      HD_DIRS% = STD_DIRS
  511.      IF HDPROG$ = "ON" OR HDUSER$ = "ON" THEN
  512. GETPATH:
  513.         SetEditSyms HDDIR$,HDTPLPATH$,HDANSPATH$,HDCOMPPATH$,"END"
  514. GETPATHL1:
  515.         sz$ = UIStartDlg(CUIDLL$, HD_DIRS%, "FEditDlgProc", APPHELP, HELPPROC$)
  516.         HDDIR$ = GetSymbolValue("EditTextOut")
  517.         HDTPLPATH$ = GetSymbolValue("EditTextOut2")
  518.         HDANSPATH$ = GetSymbolValue("EditTextOut3")
  519.         HDCOMPPATH$ = GetSymbolValue("EditTextOut4")
  520.  
  521.         IF sz$ = "CONTINUE" THEN
  522.             hdDrive$ = MID$(HDDIR$,1,1)
  523.             IF DoesDirExist(HDDIR$) = 0 THEN
  524.                 '$IFDEF HOTFORMS
  525.                     spaceNeeded = 3000000 ' 3 MB
  526.                 '$ELSE
  527.                     spaceNeeded = 2500000 ' 2.5 MB
  528.                 '$ENDIF
  529.                 IF GetFreeSpaceForDrive(hdDrive$) < spaceNeeded THEN
  530.                     SetSymbolValue "BadPath", hdDrive$
  531.                     GOSUB NO_SPACE_DLG
  532.                     GOTO GETPATHL1
  533.                 END IF
  534.             END IF
  535.             IF IsDirWritable(HDDIR$) = 0 THEN
  536.                 SetSymbolValue "BadPath", HDDIR$
  537.                 GOSUB CANNOT_CREATE_DLG
  538.                 GOTO GETPATHL1
  539.             END IF
  540.             IF IsDirWritable(HDTPLPATH$) = 0 THEN
  541.                 SetSymbolValue "BadPath", HDTPLPATH$
  542.                 GOSUB CANNOT_CREATE_DLG
  543.                 GOTO GETPATHL1
  544.             END IF
  545.             IF IsDirWritable(HDANSPATH$) = 0 THEN
  546.                 SetSymbolValue "BadPath", HDANSPATH$
  547.                 GOSUB CANNOT_CREATE_DLG
  548.                 GOTO GETPATHL1
  549.             END IF
  550.             IF IsDirWritable(HDCOMPPATH$) = 0 THEN
  551.                 SetSymbolValue "BadPath", HDCOMPPATH$
  552.                 GOSUB CANNOT_CREATE_DLG
  553.                 GOTO GETPATHL1
  554.             END IF
  555.             IF HDPROG$ = "OFF" AND DoesDirExist(HDDIR$) = 0 THEN
  556.                 SetSymbolValue "BadPath", HDDIR$
  557.                 GOSUB DOES_NOT_EXIST
  558.                 GOTO GETPATHL1
  559.             END IF
  560.  
  561.             UIPop 1
  562.         ELSEIF sz$ = "REACTIVATE" THEN
  563.             GOTO GETPATHL1
  564.         ELSEIF sz$ = "BACK" THEN
  565.             UIPop 1
  566.             GOTO OPTION
  567.         ELSE
  568.             GOSUB ASKQUIT
  569.             GOTO GETPATH
  570.         END IF
  571.      END IF
  572.  
  573. '$IFDEF HOTDOCS
  574.     ''*** GET THE WORD PROCESSORS TO INSTALL FOR
  575.  
  576. WORDPROCS:
  577.          ReplaceListItem   "CheckItemsIn", 1, WP70$
  578.          ReplaceListItem   "CheckItemsIn", 2, WP61$
  579.          ReplaceListItem   "CheckItemsIn", 3, WP60$
  580.          ReplaceListItem   "CheckItemsIn", 4, WP52$
  581.          ReplaceListItem     "CheckItemsIn", 5, MSW60$
  582.          ReplaceListItem     "CheckItemsIn", 6, MSW20$
  583.          ReplaceListItem     "CheckItemsIn", 7, AP30$
  584.  
  585. WORDPROCS1:
  586.          sz$ = UIStartDlg(CUIDLL$, STD_WORDPROCS, "FCheckDlgProc", APPHELP, HELPPROC$)
  587.          WP70$ = GetListItem("CheckItemsOut",1)
  588.          WP61$ = GetListItem("CheckItemsOut",2)
  589.          WP60$ = GetListItem("CheckItemsOut",3)
  590.          WP52$ = GetListItem("CheckItemsOut",4)
  591.          MSW60$ = GetListItem("CheckItemsOut",5)
  592.          MSW20$ = GetListItem("CheckItemsOut",6)
  593.          AP30$ = GetListItem("CheckItemsOut",7)
  594.  
  595.          IF sz$ = "CONTINUE" THEN
  596.               UIPop(1)
  597.          ELSEIF sz$ = "REACTIVATE" THEN
  598.               GOTO WORDPROCS1
  599.         ELSEIF sz$ = "BACK" THEN
  600.           UIPop 1
  601.           GOTO OPTION
  602.          ELSE
  603.               GOSUB ASKQUIT
  604.               GOTO WORDPROCS
  605.          END IF
  606.  
  607.     IF WP70$ = "ON" THEN
  608. WP70:
  609.         SetEditSyms WP70DOCS$,WP70MACROS$,WP70TEMPLATES$,"","END"
  610. WP701:
  611.         sz$ = UIStartDlg(CUIDLL$, WP70DLG, "FEditDlgProc", APPHELP, HELPPROC$)
  612. '$IFNDEF RUNTIME
  613.         WP70DOCS$ = GetSymbolValue("EditTextOut")
  614. '$ELSE
  615.         WP70DOCS$ = ""
  616. '$ENDIF
  617.         WP70MACROS$ = GetSymbolValue("EditTextOut2")
  618.         WP70TEMPLATES$ = GetSymbolValue("EditTextOut3")
  619.  
  620.         IF sz$ = "CONTINUE" THEN
  621.             IF CheckWPDirs(WP70MACROS$,WP70DOCS$) = 0 THEN
  622.                 GOSUB DOES_NOT_EXIST
  623.                 GOTO WP701
  624.             END IF
  625.             IF IsDirWritable(WP70TEMPLATES$) = 0 THEN
  626.                 SetSymbolValue "BadPath", WP70TEMPLATES$
  627.                 GOSUB DOES_NOT_EXIST
  628.                 GOTO WP701
  629.             END IF
  630.           UIPop 1
  631.         ELSEIF sz$ = "REACTIVATE" THEN
  632.           GOTO WP701
  633.         ELSEIF sz$ = "BACK" THEN
  634.           UIPop 1
  635.               GOTO WORDPROCS
  636.         ELSE
  637.           GOSUB ASKQUIT
  638.           GOTO WP70
  639.         END IF
  640.     END IF
  641.     'SetSymbolValue "WP70Tpl", WP70TEMPLATES$
  642.  
  643.     IF WP61$ = "ON" THEN
  644. WP61:
  645.         SetEditSyms WP61DOCS$,WP61MACROS$,WP61TEMPLATES$,"","END"
  646. WP611:
  647.         sz$ = UIStartDlg(CUIDLL$, WP61DLG, "FEditDlgProc", APPHELP, HELPPROC$)
  648. '$IFNDEF RUNTIME
  649.         WP61DOCS$ = GetSymbolValue("EditTextOut")
  650. '$ELSE
  651.         WP61DOCS$ = ""
  652. '$ENDIF
  653.         WP61MACROS$ = GetSymbolValue("EditTextOut2")
  654.         WP61TEMPLATES$ = GetSymbolValue("EditTextOut3")
  655.  
  656.         IF sz$ = "CONTINUE" THEN
  657.             IF CheckWPDirs(WP61MACROS$,WP61DOCS$) = 0 THEN
  658.                 GOSUB DOES_NOT_EXIST
  659.                 GOTO WP611
  660.             END IF
  661.             IF IsDirWritable(WP61TEMPLATES$) = 0 THEN
  662.                 SetSymbolValue "BadPath", WP61TEMPLATES$
  663.                 GOSUB DOES_NOT_EXIST
  664.                 GOTO WP611
  665.             END IF
  666.           UIPop 1
  667.         ELSEIF sz$ = "REACTIVATE" THEN
  668.           GOTO WP611
  669.         ELSEIF sz$ = "BACK" THEN
  670.           UIPop 1
  671.               GOTO WORDPROCS
  672.         ELSE
  673.           GOSUB ASKQUIT
  674.           GOTO WP61
  675.         END IF
  676.     END IF
  677.     'SetSymbolValue "WP61Tpl", WP61TEMPLATES$
  678.  
  679.     IF WP60$ = "ON" THEN
  680. WP60:
  681.         SetEditSyms WP60DOCS$,WP60MACROS$,WP60TEMPLATES$,"","END"
  682. WP601:
  683.         sz$ = UIStartDlg(CUIDLL$, WP60DLG, "FEditDlgProc", APPHELP, HELPPROC$)
  684. '$IFNDEF RUNTIME
  685.         WP60DOCS$ = GetSymbolValue("EditTextOut")
  686. '$ELSE
  687.         WP60DOCS$ = ""
  688. '$ENDIF
  689.         WP60MACROS$ = GetSymbolValue("EditTextOut2")
  690.         WP60TEMPLATES$ = GetSymbolValue("EditTextOut3")
  691.  
  692.         IF sz$ = "CONTINUE" THEN
  693.             IF CheckWPDirs(WP60DOCS$,WP60MACROS$) = 0 THEN
  694.                 GOSUB DOES_NOT_EXIST
  695.                 GOTO WP601
  696.             END IF
  697.             IF IsDirWritable(WP60TEMPLATES$) = 0 THEN
  698.                 SetSymbolValue "BadPath", WP60TEMPLATES$
  699.                 GOSUB DOES_NOT_EXIST
  700.                 GOTO WP601
  701.             END IF
  702.           UIPop 1
  703.         ELSEIF sz$ = "REACTIVATE" THEN
  704.           GOTO WP601
  705.         ELSEIF sz$ = "BACK" THEN
  706.           UIPop 1
  707.           GOTO WORDPROCS
  708.         ELSE
  709.           GOSUB ASKQUIT
  710.           GOTO WP60
  711.         END IF
  712.     END IF
  713.     'SetSymbolValue "WP60Tpl", WP60TEMPLATES$
  714.  
  715.      IF WP52$ = "ON" THEN
  716. WP52:
  717.         SetEditSyms WP52DOCS$, WP52MACROS$, WP52TEMPLATES$,"","END"
  718. WP521:
  719.         sz$ = UIStartDlg(CUIDLL$, WP52DLG, "FEditDlgProc", APPHELP, HELPPROC$)
  720. '$IFNDEF RUNTIME
  721.         WP52DOCS$ = GetSymbolValue("EditTextOut")
  722. '$ELSE
  723.         WP52DOCS$ = ""
  724. '$ENDIF
  725.         WP52MACROS$ = GetSymbolValue("EditTextOut2")
  726.         WP52TEMPLATES$ = GetSymbolValue("EditTextOut3")
  727.  
  728.         IF sz$ = "CONTINUE" THEN
  729.             IF CheckWPDirs(WP52DOCS$,WP52MACROS$) = 0 THEN
  730.                 GOSUB DOES_NOT_EXIST
  731.                 GOTO WP521
  732.             END IF
  733.             IF IsDirWritable(WP52TEMPLATES$) = 0 THEN
  734.                 SetSymbolValue "BadPath", WP52TEMPLATES$
  735.                 GOSUB CANNOT_CREATE_DLG
  736.                 GOTO WP521
  737.             END IF
  738.           UIPop 1
  739.         ELSEIF sz$ = "REACTIVATE" THEN
  740.           GOTO WP521
  741.         ELSEIF sz$ = "BACK" THEN
  742.           UIPop 1
  743.           GOTO WORDPROCS
  744.         ELSE
  745.           GOSUB ASKQUIT
  746.           GOTO WP52
  747.         END IF
  748.     END IF
  749.  
  750.     IF MSW60$ = "ON" THEN
  751. MSW60:
  752.         SetEditSyms MSW60DOCS$, MSW60TEMPLATES$, MSW60STARTUP$, "", "END"
  753. MSW601:
  754.         sz$ = UIStartDlg(CUIDLL$, MSW60DLG, "FEditDlgProc", APPHELP, HELPPROC$)
  755. '$IFNDEF RUNTIME
  756.         MSW60DOCS$ = GetSymbolValue("EditTextOut")
  757. '$ELSE
  758.         MSW60DOCS$ = ""
  759. '$ENDIF
  760.         MSW60TEMPLATES$ = GetSymbolValue("EditTextOut2")
  761.         MSW60STARTUP$ = GetSymbolValue("EditTextOut3")
  762.  
  763.         IF sz$ = "CONTINUE" THEN
  764.             IF CheckWPDirs(MSW60DOCS$,MSW60STARTUP$) = 0 THEN
  765.                 GOSUB DOES_NOT_EXIST
  766.                 GOTO MSW601
  767.             END IF
  768.             'tDir$ = MSW60TEMPLATES$
  769.             'GetPathAlias(tDir$)
  770.             'IF UCASE$(tDir$) <> UCASE$(MSW60TEMPLATES$) THEN
  771.             'ELSE
  772.             IF IsDirWritable(MSW60TEMPLATES$) = 0 THEN
  773.                 SetSymbolValue "BadPath", MSW60TEMPLATES$
  774.                 GOSUB DOES_NOT_EXIST
  775.                 GOTO MSW601
  776.             END IF
  777.             UIPop 1
  778.         ELSEIF sz$ = "REACTIVATE" THEN
  779.           GOTO MSW601
  780.         ELSEIF sz$ = "BACK" THEN
  781.           UIPop 1
  782.           GOTO WORDPROCS
  783.         ELSE
  784.           GOSUB ASKQUIT
  785.           GOTO MSW60
  786.         END IF
  787.     END IF
  788.  
  789.     IF MSW20$ = "ON" THEN
  790. MSW20:
  791.         SetSymbolValue "EditTextIn", MSW20DOCS$
  792.         SetSymbolValue "EditTextIn2", MSW20TEMPLATES$
  793.         SetSymbolValue "EditFocus", "END"
  794. MSW201:
  795.         sz$ = UIStartDlg(CUIDLL$, MSW20DLG, "FEditDlgProc", APPHELP, HELPPROC$)
  796. '$IFNDEF RUNTIME
  797.         MSW20DOCS$ = GetSymbolValue("EditTextOut")
  798. '$ELSE
  799.         MSW20DOCS$ = ""
  800. '$ENDIF
  801.         MSW20TEMPLATES$ = GetSymbolValue("EditTextOut2")
  802.  
  803.         IF sz$ = "CONTINUE" THEN
  804.             IF CheckWPDirs(MSW20DOCS$,"") = 0 THEN
  805.                 GOSUB DOES_NOT_EXIST
  806.                 GOTO MSW201
  807.             END IF
  808.             IF IsDirWritable(MSW20TEMPLATES$) = 0 THEN
  809.                 SetSymbolValue "BadPath", MSW20TEMPLATES$
  810.                 GOSUB DOES_NOT_EXIST
  811.                 GOTO MSW201
  812.             END IF
  813.           UIPop 1
  814.         ELSEIF sz$ = "REACTIVATE" THEN
  815.           GOTO MSW201
  816.         ELSEIF sz$ = "BACK" THEN
  817.           UIPop 1
  818.           GOTO WORDPROCS
  819.         ELSE
  820.           GOSUB ASKQUIT
  821.           GOTO MSW20
  822.         END IF
  823.     END IF
  824.  
  825.      IF AP30$ = "ON" THEN
  826. AP30:
  827.         SetEditSyms AP30DOCS$, AP30MACROS$, AP30ICONS$, AP30TEMPLATES$, "END"
  828.         SetSymbolValue "EditTextIn5", AP30STYLES$
  829. AP301:
  830.         sz$ = UIStartDlg(CUIDLL$, AP30DLG, "FEditDlgProc", APPHELP, HELPPROC$)
  831. '$IFNDEF RUNTIME
  832.         AP30DOCS$ = GetSymbolValue("EditTextOut")
  833.         AP30MACROS$ = GetSymbolValue("EditTextOut2")
  834.         AP30ICONS$ = GetSymbolValue("EditTextOut3")
  835. '$ELSE
  836.         AP30DOCS$ = ""
  837.         AP30MACROS$ = ""
  838.         AP30ICONS$ = ""
  839. '$ENDIF
  840.         AP30TEMPLATES$ = GetSymbolValue("EditTextOut4")
  841.         AP30STYLES$ = GetSymbolValue("EditTextOut5")
  842.  
  843.         IF sz$ = "CONTINUE" THEN
  844.             IF CheckWPDirs(AP30DOCS$,AP30MACROS$) = 0 THEN
  845.                 GOSUB DOES_NOT_EXIST
  846.                 GOTO AP301
  847.             END IF
  848.             IF CheckWPDirs(AP30ICONS$,AP30STYLES$) = 0 THEN
  849.                 GOSUB DOES_NOT_EXIST
  850.                 GOTO AP301
  851.             END IF
  852.             IF IsDirWritable(AP30TEMPLATES$) = 0 THEN
  853.                 SetSymbolValue "BadPath", AP30TEMPLATES$
  854.                 GOSUB DOES_NOT_EXIST
  855.                 GOTO AP301
  856.             END IF
  857.             UIPop 1
  858.         ELSEIF sz$ = "REACTIVATE" THEN
  859.           GOTO AP301
  860.         ELSEIF sz$ = "BACK" THEN
  861.           UIPop 1
  862.           GOTO WORDPROCS
  863.         ELSE
  864.           GOSUB ASKQUIT
  865.           GOTO AP30
  866.         END IF
  867.     END IF
  868. '$ENDIF
  869.  
  870. SetSymbolValue "HDIniFile", HDINI$
  871. PERSONALINFO:
  872.     sz$ = UIStartDlg(CUIDLL$, PERSONALINFO, "GetPersonalInfo", APPHELP, HELPPROC$)
  873.  
  874.     IF sz$ = "CONTINUE" THEN
  875.         UIPop 1
  876.     ELSEIF sz$ = "REACTIVATE" THEN
  877.         GOTO PERSONALINFO
  878.     ELSEIF sz$ = "BACK" THEN
  879.         UIPop 1
  880.         '$IFDEF HOTDOCS
  881.             GOTO WORDPROCS
  882.         '$ELSE
  883.             GOTO OPTION
  884.         '$ENDIF
  885.     ELSE
  886.         GOSUB ASKQUIT
  887.         GOTO PERSONALINFO
  888.     END IF
  889. Install
  890. NetscapeInstall
  891.  
  892. '' HOTDOCS LABELS
  893. 'SET ERROR HANDLER
  894. ON ERROR GOTO ERRQUIT
  895.  
  896. QUIT:
  897.      IF ERR = 0 THEN
  898.           dlg% = EXITSUCCESS
  899.      ELSEIF ERR = STFQUIT THEN
  900.           dlg% = EXITQUIT
  901.      ELSE
  902.           dlg% = EXITFAILURE
  903.      END IF
  904. QUITL1:
  905.      sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  906.      IF sz$ = "REACTIVATE" THEN
  907.           GOTO QUITL1
  908.      END IF
  909.      UIPop 1
  910.      END
  911.  
  912. ERRQUIT:
  913.      i = DoMsgBox(GetILString( "ErrQuitMsg"), GetILString( "ErrQuitTitle"), MB_OK+MB_TASKMODAL+MB_ICONHAND)
  914.      END
  915.  
  916. BADPATH:
  917.      sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  918.      IF sz$ = "REACTIVATE" THEN
  919.           GOTO BADPATH
  920.      END IF
  921.      UIPop 1
  922.      RETURN
  923.  
  924. DOES_NOT_EXIST:
  925.      sz$ = UIStartDlg(CUIDLL$, DIR_NO_EXIST, "FInfo0DlgProc", 0, "")
  926.      IF sz$ = "REACTIVATE" THEN
  927.           GOTO DOES_NOT_EXIST
  928.      END IF
  929.      UIPop 1
  930.      RETURN
  931.  
  932. CANNOT_CREATE_DLG:
  933.      sz$ = UIStartDlg(CUIDLL$, CANNOT_CREATE, "FInfo0DlgProc", 0, "")
  934.      IF sz$ = "REACTIVATE" THEN
  935.           GOTO CANNOT_CREATE_DLG
  936.      END IF
  937.      UIPop 1
  938.      RETURN
  939.  
  940. NO_SPACE_DLG:
  941.      sz$ = UIStartDlg(CUIDLL$, NO_SPACE, "FInfo0DlgProc", 0, "")
  942.      IF sz$ = "REACTIVATE" THEN
  943.           GOTO NO_SPACE_DLG
  944.      END IF
  945.      UIPop 1
  946.      RETURN
  947.  
  948.  
  949. ASKQUIT:
  950.      sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  951.  
  952.      IF sz$ = "EXIT" THEN
  953.           UIPopAll
  954.           ERROR STFQUIT
  955.      ELSEIF sz$ = "REACTIVATE" THEN
  956.           GOTO ASKQUIT
  957.      ELSE
  958.           UIPop 1
  959.      END IF
  960.      RETURN
  961.  
  962. '******************* HOTDOCS INSTALL SUBROUTINE
  963. SUB Install STATIC
  964.     '*** GET RID OF OLD STUFF
  965.     '$IFNDEF RUNTIME
  966.         RemoveHDFile "\hdpanel.exe"
  967.         RemoveHDFile  "\hotdocs.dll"
  968.         RemoveHDFile  "\hdeng.dll"
  969.         RemoveHDFile "\hotdocs.hlp"
  970.     '$ENDIF
  971.     CREATECOMPDIR% = 0
  972.     InstallCommonStuff
  973.     '$IFDEF HOTDOCS
  974.         InstallHotDocsStuff
  975.     '$ENDIF
  976.     '$IFDEF HOTFORMS
  977.         InstallHotFormsStuff
  978.     '$ENDIF
  979.  
  980.     IF CREATECOMPDIR% = 1 THEN
  981.         '$IFDEF HOTDOCS AND NOT RUNTIME
  982.             AddSectionFilesToCopyList "CompFiles", SRCDIR$, HDCOMPPATH$
  983.         '$ENDIF
  984.     END IF
  985.  
  986.     '$IFDEF HOTDOCS AND NOT RUNTIME AND NOT EVALUATE
  987.         IF HDUSER$ = "ON" THEN
  988.             IF SAMPLES$ = "ON" THEN
  989.                 CreateDir HDTPLPATH$ + GetILString("SamplesDir"), cmoVital
  990.                 AddSectionFilesToCopyList "Samples", SRCDIR$, HDTPLPATH$ + GetILString("SamplesDir")
  991.                 AddSectionFilesToCopyList "SamplesLib", SRCDIR$, HDDIR$
  992.             END IF
  993.         END IF
  994.     '$ENDIF
  995.  
  996.     IF HDPROG$ = "ON" THEN
  997.         PUB_KEY$ = ""
  998.         PUB_NAME$ = ""
  999.         vType% = 1
  1000.         hfType% = 1
  1001.         pubKey$ = ""
  1002.         '$IFDEF EVALUATE
  1003.             vType% = 4
  1004.         '$ELSEIFNDEF RUNTIME
  1005.             vType% = 0
  1006.         '$ELSEIFDEF REGISTER
  1007.             vType% = 2
  1008.         ''$ELSEIFDEF LIMITED
  1009.         ''    vType% = 3
  1010.         '$ENDIF
  1011.         '$IFDEF HOTFORMS AND NOT REGISTER
  1012.             hfType = 0
  1013.         '$ENDIF
  1014.         replOk% = SetKeys(HDDIR$ + "\hd3vers.dll",vType%,hfType%,pubKey$)
  1015.     END IF
  1016.     IF GetILString("NoCopy") <> "YES" THEN
  1017.         CopyFilesInCopyList
  1018.     END IF
  1019.  
  1020.     IF HDPROG$ = "ON" THEN
  1021.         replOk% = ReplaceKeys(HDDIR$ + "\hd3vers.dll")
  1022.     END IF
  1023.  
  1024.     CreateProgmanGroup "HotDocs", "", cmoVital
  1025.     ShowProgmanGroup  "HotDocs", 1, cmoNone
  1026.     HDEXEC$ = HDDIR$ + "\HOTDOCS3.EXE "
  1027.     CreateProgmanItem "HotDocs", "HotDocs", HDEXEC$, "",cmoOverwrite
  1028.     PROGITEM$ = GetILString( "ProgName")
  1029.     IF PROGITEM$ <> "" THEN
  1030.         HDIcon$ = GetILString( "HDIcon")
  1031.         IF HDIcon$ <> "" THEN
  1032.             HDIcon$ = SRCDIR$+HDIcon$
  1033.         END IF
  1034.         HDEXEC$ = HDEXEC$ + GetILString( "CommandLine")
  1035.         CreateProgmanItem "HotDocs", PROGITEM$, HDEXEC$, HDIcon$,cmoOverwrite
  1036.     END IF
  1037.     '$IFDEF HOTDOCS
  1038.         CreateHotDocsIcons
  1039.     '$ENDIF
  1040.     '$IFDEF HOTFORMS
  1041.         CreateHotFormsIcons
  1042.     '$ENDIF
  1043. END SUB
  1044.  
  1045. ''**************** COMMON SUBS AND FUNCTION
  1046.  
  1047. SUB RemoveHDFile(fName$) STATIC
  1048.     IF DoesFileExist(HDDIR$ + fName$,femReadWrite) = 1 THEN
  1049.         RemoveFile HDDIR$ + fName$,cmoNone
  1050.     END IF
  1051. END SUB
  1052.  
  1053. SUB SetGlobals STATIC
  1054.     SRCDIR$ = GetSymbolValue("STF_SRCDIR")
  1055.  
  1056.     '' GET HOTDOCS.INI PREFERENCES
  1057.     TEMPLATEDIR$ = GetILString( "TemplateDir")
  1058.     DIRSECT$ = "Directories"
  1059.     PREFSECT$ = "Preferences"
  1060.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  1061.     HELPPROC$ = "" ''"FHelpDlgProc"          ''Help dialog procedure
  1062.     WINDIR$ = GetWindowsDir()
  1063.     WINSYSDIR$=GetWindowsSysDir()
  1064.     WININI$ = WINDIR$ + "WIN.INI"
  1065.     HDINI$ = WINDIR$ + "HOTDOCS.INI"
  1066.     HDDIR$ = GetHDIString(DIRSECT$,"HotDocs Directory","C:\HOTDOCS")
  1067.     HDTPLPATH$ = GetHDIString(DIRSECT$,TPLENTRY$,HDDIR$ + TEMPLATEDIR$)
  1068.     HDANSPATH$ = GetHDIString(DIRSECT$,"Answer File Directory",GetILString( "AnswerDir"))
  1069.     HDCOMPPATH$ = GetHDIString(DIRSECT$,"Component File Directory",GetILString( "CompDir"))
  1070.     LIBENTRY$ = "Library Path"
  1071.     TPLENTRY$ = "Template Directory"
  1072.  
  1073.     '$IFDEF HOTDOCS
  1074.         DEMOPATH$ = "Demo Rent Path"
  1075.         MACROENTRY$ = "Macro Directory"
  1076.         DOCENTRY$ = "Document Directory"
  1077.         STYLEENTRY$ = "Style Directory"
  1078.         ICONENTRY$ = "Icon Directory"
  1079.         STARTUPENTRY$ = "Startup Directory"
  1080.         WP52NAME$ = "WordPerfect for Windows 5.2"
  1081.         WP60NAME$ = "WordPerfect for Windows 6.0"
  1082.         WP61NAME$ = "WordPerfect for Windows 6.1"
  1083.         WP70NAME$ = "WordPerfect for Windows 7.0"
  1084.         MSW20NAME$ = "MS Word for Windows 2.0"
  1085.         MSW60NAME$ = "MS Word for Windows 6.0"
  1086.         AP30NAME$ = "Lotus Ami Pro 3.x"
  1087.         MACRODIR$ = GetILString( "MacroDir")
  1088.         WPDOCDIR$ = GetILString( "WPDocDir")
  1089.     '$ENDIF
  1090. END SUB
  1091.  
  1092. FUNCTION MakePath (szDir$) STATIC AS STRING
  1093.     IF LEN(szDir$) = 0 THEN
  1094.         MakePath = ""
  1095.      ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  1096.           MakePath = UCASE$(MID$(szDir$, 1, LEN(szDir$) - 1))
  1097.      ELSE
  1098.           MakePath = UCASE$(szDir$)
  1099.      END IF
  1100. END FUNCTION
  1101.  
  1102. FUNCTION GetHDIString (section$,entry$,default$) STATIC AS STRING
  1103.     GetHDIString = default$
  1104.     IF DoesIniKeyExist(HDINI$,section$,entry$) THEN
  1105.         GetHDIString = GetIniKeyString(HDINI$,section$,entry$)
  1106.     END IF
  1107. END FUNCTION
  1108.  
  1109. FUNCTION GetILString (section$) STATIC AS STRING
  1110.     GetILString = ""
  1111.     IF DoesIniKeyExist(SRCDIR$+"inst16.lst", "Strings", section$) THEN
  1112.         GetILString = GetIniKeyString(SRCDIR$+"inst16.lst", "Strings", section$)
  1113.     END IF
  1114. END FUNCTION
  1115.  
  1116. SUB InstallPref(prefName$,pref$) STATIC
  1117.     IF (pref$<>"") THEN
  1118.         CreateIniKeyValue HDINI$, PREFSECT$, prefName$, pref$, cmoOverwrite
  1119.     END IF
  1120. END SUB
  1121.  
  1122. SUB SetLogo STATIC
  1123.     SetBitmap CUIDLL$, LOGO
  1124.     SetTitle GetIniKeyString(SRCDIR$+"inst16.lst", "Params", "WndTitle")
  1125. END SUB
  1126.  
  1127. SUB InitInf STATIC
  1128.     '' SET .INF PATH TO APPROPRIATE PATH
  1129.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  1130.     IF szInf$ = "" THEN
  1131.         szInf$ = GetSymbolValue("STF_CWDDIR") + "HOTDOCS.INF"
  1132.     END IF
  1133.     ReadInfFile szInf$
  1134. END SUB
  1135.  
  1136. SUB InstallCommonStuff STATIC
  1137.     CreateIniKeyValue WININI$, "Extensions", "hdl", HDDIR$ + "\hotdocs3.exe /lf=^.hdl", cmoOverwrite
  1138.     CreateIniKeyValue HDINI$, DIRSECT$, "WinSys", WINSYSDIR$, cmoOverwrite
  1139.     AddSectionFilesToCopyList "WinSys",SRCDIR$,WINSYSDIR$
  1140.     IF (GetILString("Generics") = "YES") AND (HDUSER$ = "ON") THEN
  1141.         AddSectionFilesToCopyList "Templates",SRCDIR$,HDTPLPATH$
  1142.     END IF
  1143.     IF HDPROG$ = "ON" THEN
  1144.         CreateDir HDDIR$, cmoVital
  1145.         newerVers = 1
  1146.         IF NewerVersion(HDDIR$ + "\hd3lib.dll","3.0.2.0") = 1 THEN
  1147.             AddSectionFilesToCopyList "HotDocs", SRCDIR$, HDDIR$
  1148.             AddSectionFilesToCopyList "HDSys", SRCDIR$, HDDIR$
  1149.             AddSectionFilesToCopyList "HDSys", SRCDIR$, WINSYSDIR$
  1150.         ELSE
  1151.             newerVers = 0
  1152.         END IF
  1153.         '$IFDEF HOTFORMS
  1154.             '$IFDEF RUNTIME
  1155.                 prog$ = "HotForms Filler"
  1156.                 IF NewerVersion(HDDIR$ + "\hffill.exe","3.0.2.0") = 1 THEN
  1157.             '$ELSE
  1158.                 prog$ = "HotForms Automator"
  1159.                 IF NewerVersion(HDDIR$ + "\hotforms.exe","3.0.2.0") = 1 THEN
  1160.             '$ENDIF
  1161.                 AddSectionFilesToCopyList "HotForms", SRCDIR$, HDDIR$
  1162.                 '$IFNDEF RUNTIME
  1163.                     AddSectionFilesToCopyList "HFWinSys", SRCDIR$, WINSYSDIR$
  1164.                 '$ENDIF
  1165.             ELSE
  1166.                 newerVers = 0
  1167.             END IF
  1168.         '$ELSE
  1169.             prog$ = "HotDocs"
  1170.         '$ENDIF
  1171.         IF newerVers = 0 THEN
  1172.             msg$ = "Newer versions of some of the " + prog$ + " Program Files were found and will not"
  1173.             msg$ = msg$ + " be overwritten. To completely install this older version, first uninstall " + prog$ + "."
  1174.             i = DoMsgBox(msg$,"Install Message",MB_OK)
  1175.         END IF
  1176.         AddSectionFilesToCopyList "VersFile", SRCDIR$, HDDIR$
  1177.     END IF
  1178.     IF HDUSER$ = "ON" THEN
  1179.         CreateDir HDTPLPATH$, cmoVital
  1180.         CreateDir HDCOMPPATH$, cmoVital
  1181.         CreateDir HDANSPATH$, cmoVital
  1182.         CREATECOMPDIR% = 1
  1183.         CreateIniKeyValue HDINI$, DIRSECT$, "HotDocs Directory", HDDIR$, cmoOverwrite
  1184.         CreateIniKeyValue HDINI$, DIRSECT$, "Help Directory", HDDIR$, cmoOverwrite
  1185.         CreateIniKeyValue HDINI$, DIRSECT$, TPLENTRY$, HDTPLPATH$, cmoOverwrite
  1186.         CreateIniKeyValue HDINI$, DIRSECT$, "Answer File Directory", HDANSPATH$, cmoOverwrite
  1187.         CreateIniKeyValue HDINI$, DIRSECT$, "Component File Directory", HDCOMPPATH$, cmoOverwrite
  1188.         CreateIniKeyValue HDINI$, PREFSECT$, "Example Date", GetILString( "ExampleDate"), cmoVital
  1189.         CreateIniKeyValue HDINI$, PREFSECT$, "Seed Component File", "True", cmoVital
  1190.  
  1191.         caretEntry$ = GetILString( "CaretEntry")
  1192.         caretPath$ = GetILString( "CaretPath")
  1193.         IF (caretEntry$ <> "") AND (caretPath$ <> "") THEN
  1194.             CreateIniKeyValue HDINI$, DIRSECT$, caretEntry$, caretPath$, cmoVital
  1195.         END IF
  1196.         contact$ = GetILString( "Contact")
  1197.         IF contact$ <> "" THEN
  1198.             CreateIniKeyValue HDINI$, PREFSECT$, "Contact", contact$, cmoVital
  1199.         END IF
  1200.  
  1201.         '' ADD PREFERENCES INTO HOTDOCS.INI
  1202. '' GET HOTDOCS.INI PREFERENCES
  1203.         InstallPref "Language", GetILString( "Language")
  1204.         InstallPref "Text Formats", GetILString( "Text Formats")
  1205.         InstallPref "Date Formats", GetILString( "Date Formats")
  1206.         InstallPref "Validations", GetILString( "Validations")
  1207.         InstallPref "Merge Texts", GetILString( "Merge Texts")
  1208.         InstallPref "Group Formats", GetILString( "Group Formats")
  1209.         InstallPref "Currency Symbols", GetILString( "Currency Symbols")
  1210.         InstallPref "True/False Formats", GetILString( "True/False Formats")
  1211.     END IF
  1212.  
  1213.     '' SCULPTURED DIALOG BOXES DEFAULT TO ON
  1214.     CreateIniKeyValue HDINI$, PREFSECT$, "Sculptured Dialogs", "True", cmoOverwrite
  1215. END SUB 'InstallCommonStuff
  1216.  
  1217. FUNCTION NewerVersion(versFile$,newVers$) STATIC AS INTEGER
  1218.     NewerVersion = 1
  1219.     IF DoesFileExist(versFile$,femReadWrite) = 1 THEN
  1220.         oldVers$ = GetVersionOfFile(versFile$)
  1221.         new% = GetVersionNthField(newVers$,2)
  1222.         old% = GetVersionNthField(oldVers$,2)
  1223.         IF new% < old%  THEN
  1224.             NewerVersion = 0
  1225.         ELSEIF new% = old% THEN
  1226.             new% = GetVersionNthField(newVers$,3)
  1227.             old% = GetVersionNthField(oldVers$,3)
  1228.             IF new% < old%  THEN
  1229.                 NewerVersion = 0
  1230.             ELSEIF new% = old% THEN
  1231.                 new% = GetVersionNthField(newVers$,4)
  1232.                 old% = GetVersionNthField(oldVers$,4)
  1233.                 IF new% < old%  THEN
  1234.                     NewerVersion = 0
  1235.                 END IF
  1236.             END IF
  1237.         END IF
  1238.     END IF
  1239. END FUNCTION  'NewerVersion
  1240.  
  1241. SUB InstallWP(wpName$,wpPrefix$,wpTplDir$,wpDocDir$,wpLibName$) STATIC
  1242.     CreateIniKeyValue HDINI$, wpName$, TPLENTRY$, wpTplDir$, cmoOverwrite
  1243.     IF wpDocDir$ <> "" THEN
  1244.         CreateIniKeyValue HDINI$, PREFSECT$, "Default Word Processor", wpName$, cmoVital
  1245.     END IF
  1246.  
  1247.     '$IFNDEF RUNTIME
  1248.         IF wpDocDir$ <> "" THEN
  1249.             CreateIniKeyValue HDINI$, wpName$, DOCENTRY$, wpDocDir$, cmoOverwrite
  1250.         END IF
  1251.         IF (DoesIniKeyExist(HDINI$,wpName$,DEMOPATH$)) THEN
  1252.             RemoveIniKey HDINI$,wpName$, DEMOPATH$, cmoNone
  1253.         END IF
  1254.         IF (DoesIniKeyExist(HDINI$,wpName$,LIBENTRY$)) THEN
  1255.             RemoveIniKey HDINI$,wpName$, LIBENTRY$, cmoNone
  1256.         END IF
  1257.         IF wpDocDir$ <> "" THEN
  1258.             AddSectionFilesToCopyList wpPrefix$ + "Docs", SRCDIR$, wpDocDir$
  1259.         END IF
  1260.         CREATECOMPDIR% = 1
  1261.         IF wpLibName <> "" THEN
  1262.             CreateIniKeyValue HDINI$, DIRSECT$, LIBENTRY$, HDDIR$ + wpLibName$, cmoVital
  1263.             AddSectionFilesToCopyList wpPrefix$ + "Libraries", SRCDIR$, HDDIR$
  1264.         END IF
  1265.         CreateDir wpTplDir$, cmoVital
  1266.         AddSectionFilesToCopyList wpPrefix$ + "Templates", SRCDIR$, wpTplDir$
  1267.     '$ENDIF
  1268. END SUB
  1269.  
  1270. SUB SetEditSyms(sym1$,sym2$,sym3$,sym4$,focus$) STATIC
  1271.     SetSymbolValue "EditTextIn", sym1$
  1272.     SetSymbolValue "EditTextIn2", sym2$
  1273.     SetSymbolValue "EditTextIn3", sym3$
  1274.     SetSymbolValue "EditTextIn4", sym4$
  1275.     SetSymbolValue "EditFocus", focus$
  1276. END SUB
  1277.  
  1278. '***** COMMON FUNCTIONS
  1279.  
  1280.  
  1281. '$IFDEF HOTDOCS '**************** HOTDOCS SUBS AND FUNCTIONS
  1282.  
  1283.     FUNCTION CheckWPDirs(dir1$,dir2$) STATIC AS INTEGER
  1284.         CheckWPDirs = 1
  1285.         IF dir1$ <> "" THEN
  1286.             'tDir$ = dir1$
  1287.             'GetPathAlias(tDir$)
  1288.             'IF UCASE$(tDir$) <> dir1$ THEN
  1289.             'ELSE
  1290.             IF IsDirWritable(dir1$) = 0 THEN
  1291.                 SetSymbolValue "BadPath", dir1$
  1292.                 CheckWPDirs = 0
  1293.             ELSEIF DoesDirExist(dir1$) = 0 THEN
  1294.                 SetSymbolValue "BadPath", dir1$
  1295.                 CheckWPDirs = 0
  1296.             END IF
  1297.         END IF
  1298.         IF dir2$ <> "" THEN
  1299.             tDir$ = dir2$
  1300.             IF UCASE$(tDir$) <> UCASE$(dir1$) THEN
  1301.             ELSEIF IsDirWritable(dir2$) = 0 THEN
  1302.                 SetSymbolValue "BadPath", dir2$
  1303.                 CheckWPDirs = 0
  1304.             ELSEIF DoesDirExist(dir2$) = 0 THEN
  1305.                 SetSymbolValue "BadPath", dir2$
  1306.                 CheckWPDirs = 0
  1307.             END IF
  1308.         END IF
  1309.     END FUNCTION
  1310.  
  1311.     SUB InstallHotDocsStuff STATIC
  1312.         installHlp% = 1
  1313.         '$IFDEF RUNTIME
  1314.             IF DoesFileExist(HDDIR$ + "\hotdocs3.hlp",femReadWrite) = 1 THEN
  1315.                 IF GetSizeOfFile(HDDIR$ + "\hotdocs3.hlp") >  400000 THEN
  1316.                     installHlp% = 0
  1317.                 END IF
  1318.             END IF
  1319.         '$ENDIF
  1320.         IF installHlp% = 1 THEN
  1321.             AddSectionFilesToCopyList "HDHelp", SRCDIR$, HDDIR$
  1322.         END IF
  1323.         '*** Use WordPerfect 6.1 templates and library for WordPerfect 7.0
  1324.         IF WP70$ = "ON" THEN
  1325.             InstallWP WP70NAME$,"WP61",WP70TEMPLATES$,WP70DOCS$,"\WP61_30.HDL"
  1326.             AddSectionFilesToCopyList "WP70Macros", SRCDIR$, WP70MACROS$
  1327.             CreateIniKeyValue HDINI$, WP70NAME$, MACROENTRY$, WP70MACROS$, cmoOverwrite
  1328.         END IF
  1329.         IF WP61$ = "ON" THEN
  1330.             InstallWP WP61NAME$,"WP61",WP61TEMPLATES$,WP61DOCS$,"\WP61_30.HDL"
  1331.             AddSectionFilesToCopyList "WP61Macros", SRCDIR$, WP61MACROS$
  1332.             CreateIniKeyValue HDINI$, WP61NAME$, MACROENTRY$, WP61MACROS$, cmoOverwrite
  1333.         END IF
  1334.         IF WP60$ = "ON" THEN
  1335.             InstallWP WP60NAME$,"WP60",WP60TEMPLATES$,WP60DOCS$,"\WP60A_30.HDL"
  1336.             AddSectionFilesToCopyList "WP60Macros", SRCDIR$, WP60MACROS$
  1337.             CreateIniKeyValue HDINI$, WP60NAME$, MACROENTRY$, WP60MACROS$, cmoOverwrite
  1338.         END IF
  1339.         IF WP52$ = "ON" THEN
  1340.             InstallWP WP52NAME$,"WP52",WP52TEMPLATES$,WP52DOCS$,"\WP52_30.HDL"
  1341.             AddSectionFilesToCopyList "WP52Macros", SRCDIR$, WP52Macros$
  1342.             CreateIniKeyValue HDINI$, WP52NAME$, MACROENTRY$, WP52Macros$, cmoOverwrite
  1343.         END IF
  1344.         IF MSW60$ = "ON" THEN
  1345.             InstallWP MSW60NAME$,"MSW60",MSW60TEMPLATES$,MSW60DOCS$,"\MSW60_30.HDL"
  1346.             AddSectionFilesToCopyList "MSW60Startup", SRCDIR$, MSW60STARTUP$
  1347.             CreateIniKeyValue HDINI$, MSW60NAME$, STARTUPENTRY$, MSW60STARTUP$, cmoVital
  1348.         END IF
  1349.         IF MSW20$ = "ON" THEN
  1350.             InstallWP MSW20NAME$,"MSW20",MSW20TEMPLATES$,MSW20DOCS$,"\MSW20_30.HDL"
  1351.         END IF
  1352.         IF AP30$ = "ON" THEN
  1353.             InstallWP AP30NAME$,"AP30",AP30TEMPLATES$,AP30DOCS$,"\AP30_30.HDL"
  1354.             AddSectionFilesToCopyList "AP30Styles", SRCDIR$, AP30STYLES$
  1355.             CreateIniKeyValue HDINI$, AP30NAME$, STYLEENTRY$, AP30STYLES$, cmoVital
  1356.             '$IFNDEF RUNTIME
  1357.                 AP30INI$ = WINDIR$ + "AMIPRO.INI"
  1358.                 IF (DoesIniSectionExist(HDINI$,"Lotus AmiPro 3.0")) THEN
  1359.                     RemoveIniSection HDINI$, "Lotus AmiPro 3.0",cmoNone
  1360.                 END IF
  1361.                 AddSectionFilesToCopyList "AP30Macros", SRCDIR$, AP30MACROS$
  1362.                 CreateIniKeyValue HDINI$, AP30NAME$, MACROENTRY$, AP30MACROS$, cmoVital
  1363.                 AddSectionFilesToCopyList "AP30Icons", SRCDIR$, AP30ICONS$
  1364.                 CreateIniKeyValue HDINI$, AP30NAME$, ICONENTRY$, AP30ICONS$, cmoVital
  1365.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,V", AP30MACROS$+"\HDVAR.SMM", cmoOverwrite
  1366.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,C", AP30MACROS$+"\HDCLSTPL.SMM", cmoOverwrite
  1367.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,M", AP30MACROS$+"\HDMANAGE.SMM", cmoOverwrite
  1368.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,L", AP30MACROS$+"\HDLIB.SMM", cmoOverwrite
  1369.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,N", AP30MACROS$+"\HDINSERT.SMM", cmoOverwrite
  1370.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,I", AP30MACROS$+"\HDIF.SMM", cmoOverwrite
  1371.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,R", AP30MACROS$+"\HDREPEAT.SMM", cmoOverwrite
  1372.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,S", AP30MACROS$+"\HDSAVTPL.SMM", cmoOverwrite
  1373.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,T", AP30MACROS$+"\HDTSTASM.SMM", cmoOverwrite
  1374.                 CreateIniKeyValue AP30INI$, "AmiPro", "macro-SC,A", AP30MACROS$+"\HDASK.SMM", cmoOverwrite
  1375.             '$ENDIF
  1376.         END IF
  1377.         '$IFNDEF RUNTIME
  1378.             CreateIniKeyValue HDINI$, "Library", "Learning HotDocs", "Open", cmoOverwrite
  1379.             IF (GetIniKeyString(HDINI$,PREFSECT$,"Default Word Processor")="Lotus AmiPro 3.0") THEN
  1380.                 CreateIniKeyValue HDINI$, PREFSECT$, "Default Word Processor", AP30NAME$, cmoOverwrite
  1381.             END IF
  1382.         '$ENDIF
  1383.         IF (GetIniKeyString(HDINI$,PREFSECT$,"Default Word Processor")="MS Word for Windows 6.0/7.0") THEN
  1384.             CreateIniKeyValue HDINI$, PREFSECT$, "Default Word Processor", MSW60NAME$, cmoOverwrite
  1385.         END IF
  1386.         ''CreateIniKeyValue WININI$, "Extensions", "tpl", HDDIR$ + "\hotdocs3.exe /tf=^.tpl", cmoOverwrite
  1387.     END SUB '' InstallHotDocs Stuff
  1388.  
  1389.     SUB CreateHotDocsIcons STATIC
  1390.         '$IFNDEF RUNTIME
  1391.             CreateProgmanItem "HotDocs", "HotDocs ReadMe", HDDIR$+"\HDREADME.WRI","", cmoOverwrite
  1392.         '$ENDIF
  1393.     END SUB
  1394.  
  1395. '$ENDIF ''**** HOTDOCS SUBS AND FUNCTIONS
  1396.  
  1397. '$IFDEF HOTFORMS '************** HOTFORMS SUBS AND FUNCS
  1398.  
  1399.     SUB InstallHotFormsStuff STATIC
  1400.         '$IFNDEF RUNTIME
  1401.             HFAUTO$ = "HotForms Automator 3.0"
  1402.             HFDRV$ = "HotForms Driver 3.0"
  1403.             ''Create [HotFormS Automator 3.0] section
  1404.             InstallWP HFAUTO$,"HF30",HDTPLPATH$,"","\HOTFORMS.HDL"
  1405.             CreateIniKeyValue HDINI$, HFAUTO$, "Execution Path",HDDIR$ + "\hotforms.exe",cmoOverwrite
  1406.  
  1407.             ''Create [HotForms Driver 3.0] section
  1408.             CreateIniKeyValue HDINI$, HFDRV$,"Spool Directory", HDTPLPATH$, cmoOverwrite
  1409.             CreateIniKeyValue HDINI$, HFDRV$,"Notified Application", HDDIR$ + "\hotforms.exe -dde", cmoOverwrite
  1410.             UserName$=GetIniKeyString(HDINI,"Personal Info","NAME")
  1411.             CreateIniKeyValue HDINI$, HFDRV$,"User Name",UserName$, cmoOverwrite
  1412.             UserOrg$=GetIniKeyString(HDINI,"Personal Info","COMPANY")
  1413.             CreateIniKeyValue HDINI$, HFDRV$,"User Organization" ,UserOrg$, cmoOverwrite
  1414.             CreateIniKeyValue HDINI$, HFDRV$,"Document Directory", HDTPLPATH$, cmoOverwrite
  1415.             CreateIniKeyValue HDINI$, HFDRV$,"Destination","16", cmoOverwrite
  1416.             CreateIniKeyValue HDINI$, HFDRV$,"Custom Width","8.50", cmoOverwrite
  1417.             CreateIniKeyValue HDINI$, HFDRV$,"Custom Height","11.0", cmoOverwrite
  1418.             CreateIniKeyValue HDINI$, HFDRV$,"Paper Index","0", cmoOverwrite
  1419.             CreateIniKeyValue HDINI$, HFDRV$,"Scale","100", cmoOverwrite
  1420.             CreateIniKeyValue HDINI$, HFDRV$,"Custom Settings","300,300,24,300,300,8", cmoOverwrite
  1421.             CreateIniKeyValue HDINI$, HFDRV$,"Settings Index","0", cmoOverwrite
  1422.             CreateIniKeyValue WININI$,"ports","HFD:","",cmoOverwrite
  1423.             CreateIniKeyValue WININI$,"PrinterPorts",HFDRV$,"HFD30DR,HFD:,15,45",cmoOverwrite
  1424.             CreateIniKeyValue WININI$,"devices",HFDRV$,"HFD30DR,HFD:",cmoOverwrite
  1425.         '$ENDIF
  1426.  
  1427.         ''Create [HotForms Filler 3.0] section
  1428.         HFFILL$ = "HotForms Filler 3.0"
  1429.         CreateIniKeyValue HDINI, HFFILL$, TPLENTRY$, HDTPLPATH$, cmoOverwrite
  1430.         CreateIniKeyValue WININI$,"Extensions","hft",HDDIR$ + "\hotforms.exe ^.hft",cmoOverwrite
  1431.         CreateIniKeyValue WININI$,"Extensions","hfd",HDDIR$ + "\hotforms.exe ^.hfd",cmoOverwrite
  1432.     END SUB '' InstallHotFormsStuff
  1433.  
  1434.     SUB CreateHotFormsIcons STATIC
  1435.         '$IFDEF RUNTIME
  1436.             CreateProgmanItem "HotDocs", "HotForms Filler 3.0", HDDIR$ + "\HFFILL.EXE", "", cmoOverwrite
  1437.         '$ELSE
  1438.             CreateProgmanItem "HotDocs", "HotForms Library", HDDIR$ + "\HOTDOCS3.EXE /lf=HOTFORMS.HDL", "", cmoOverwrite
  1439.             CreateProgmanItem "HotDocs", "HotForms Automator 3.0", HDDIR$ + "\HOTFORMS.EXE", "", cmoOverwrite
  1440.             CreateProgmanItem "HotDocs", "HotForms 3.0 ReadMe", HDDIR$ + "\HFREADME.WRI", "", cmoOverwrite
  1441.         '$ENDIF
  1442.     END SUB
  1443.  
  1444. '$ENDIF '******** HOTFORMS SUBS AND FUNCS
  1445.