home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 February / PCWK0296.iso / abcflow / abc / network / install.ctl < prev    next >
Text File  |  1995-05-17  |  41KB  |  1,252 lines

  1. ##############################################################################
  2. #                                                                            #
  3. #     Copyright (c) Micrografx, Inc., 1991 - 1992. All rights reserved.      #
  4. #  Permission to use this work for any purpose must by obtained in writing   #
  5. #           from Micrografx, 1303 Arapaho, Richardson, TX. 75081.            #
  6. #                                                                            #
  7. ##############################################################################
  8.  
  9. # This line MgxExit
  10. # is so the installer cleans up correctly & kills the
  11. # loaded program when the install app is closed
  12. [MgxExit] ()
  13.  
  14. [MgxMain] ()
  15. BOOL    bCDROM          TRUE;      // Set to TRUE for CD based installer
  16. BOOL    bTrialVersion   TRUE;
  17.  
  18. BOOL    bNeedLocalDir   TRUE;
  19. BOOL    bCancel         FALSE;
  20. BOOL    bIcons          FALSE;
  21. BOOL    bNeedToRestart  FALSE;
  22. BOOL    bResult         FALSE;
  23. BOOL    bSuccess        FALSE;
  24. BOOL    bStop           FALSE;
  25. BOOL    bQuit           FALSE;
  26. BOOL    bAskIcons       FALSE;
  27. BOOL    bNeedToCopyOLEDLLs FALSE;
  28. BOOL    bNeedToRebootFirst FALSE;
  29. BOOL    bRunitMessage   FALSE;
  30. INT     nCount          0;
  31. INT     nMax            0;
  32. INT     nResult         0;
  33. INT     TT              6;
  34. STRING  pathWindows     "";
  35. STRING  pathSystem      "";
  36.  
  37. # All paths listed below are referenced in the 
  38. # MANIFEST.CTL for ABC 4.0 - they all need to
  39. # be set to something valid before the call to "Install"
  40. STRING  pathABC         "";
  41. STRING  pathABCView     "";
  42. STRING  pathWINSYS      "";
  43. STRING  pathDATA        "";
  44. STRING  pathDATASAMPLE  "";
  45. STRING  pathDATATUTOR   "";
  46. STRING  pathABCPAL      "";
  47. STRING  pathABCSAMPLE   "";
  48. STRING  pathABCTUTOR    "";
  49. STRING  pathCPPSAMPLE   "";
  50. STRING  pathCPPSAMPLERES "";
  51. STRING  pathFONT        "";
  52. STRING  pathSNAP        "";
  53. STRING  pathSNAPPAL     "";
  54. STRING  pathQuikTour    "";
  55. STRING  pathSNAPSAMPLE  "";
  56. # END - MANIFEST.CTL paths
  57.  
  58. STRING  pathABCNode     "";
  59.  
  60. STRING  szHelp          "";
  61. STRING  pathSavePAL     "";
  62. STRING  szProductIni    "";
  63. STRING  szTemp          "";
  64. STRING  szTemp2         "";
  65. STRING  szUser          "";
  66. STRING  szCompany       "";
  67. STRING  szRunEnd        "";
  68. STRING  szRunEndShort   "";
  69. STRING  szRunEndName    "";
  70. STRING  szABCAppName    "";
  71. STRING  szABCVIEWAppName "";
  72. STRING  szDATAAppName   "";
  73. STRING  szSNAPAppName   "";
  74. STRING  szSectionName   "";
  75. STRING  szRunDataEnd    "";
  76. STRING  szRunDataName   "";
  77. STRING  szABCName       "";
  78. STRING  szDataName      "";
  79. STRING  szSnapName      "";
  80. STRING  szDATFile       "";
  81. STRING  szOrderInfo     "";
  82.  
  83. SetValue(szABCName, "ABC FlowCharter");
  84. SetValue(szDataName, "ABC DataAnalyzer");
  85. SetIcon (ABCFlowIcon,1,1,'ABC FlowCharter');
  86.  
  87. if LT (SCRIPT.nWindowsVersion,310)
  88.    {
  89.    MessageBox("ABC FlowCharter 4.0 requires\nMicrosoft Windows 3.1 or greater for installion.", "ABC FlowCharter 4.0", MB_OK | MB_ICONEXCLAMATION);
  90.    bQuit = TRUE;
  91.    }
  92.  
  93. SetValue(szABCAppName, 'ABCFLOW.EXE');
  94. SetValue(szDATAAppName, 'ABCDATA.EXE');
  95. SetValue(szABCVIEWAppName, 'ABCVIEW.EXE');
  96. SetValue(szSNAPAppName, 'ABCSNAP.EXE');
  97.  
  98. if EQUALS(bDemoVersion, TRUE)
  99.    {
  100.    SetValue(szABCAppName, 'ABCDEMO.EXE');
  101.    }
  102.  
  103. SetText ("\n\n\n\n\n\n~One moment, please...");
  104.  
  105. PathCat(szTemp,SCRIPT.pathInstaller,'MGXNET.BIN');
  106. if EXISTS(szTemp)
  107.         {
  108.         LoadManifest(szTemp);
  109.         }
  110.  
  111. if EQUALS (SCRIPT.bRestart,TRUE)
  112.    {
  113.    PathCat(szTemp, SCRIPT.pathInstaller,'MAN_ABC.BIN');
  114.    LoadManifest(szTemp);
  115.    if EXISTS(szTemp)
  116.       {
  117.       Delete(szTemp); 
  118.       }
  119.    PathCat(szTemp, SCRIPT.pathInstaller,'VAR_ABC.BIN');
  120.    RestoreVariables(szTemp);
  121.    if EXISTS(szTemp)
  122.       {
  123.       Delete(szTemp); 
  124.       }
  125.    call FinalCopyStep;
  126.    bQuit = TRUE;
  127.    }
  128.  
  129. if EQUALS(bCDROM, TRUE)
  130. {
  131.       # running the CD install from \abc\network 
  132.       # set szTemp to \abc 
  133.       PathUp(szTemp, SCRIPT.pathInstaller);
  134.       pathABC = szTemp; 
  135.       pathABCView = szTemp; 
  136.       pathDATA = szTemp; 
  137.       pathSNAP = szTemp; 
  138.  
  139.       PathCat(pathQuikTour, szTemp, 'TUTORIAL');
  140.       PathCat(pathABCTUTOR, szTemp, 'TUTORIAL');
  141.       PathCat(pathDATATUTOR, szTemp, 'TUTORIAL');
  142.  
  143.       PathCat(pathABCSAMPLE, szTemp, 'SAMPLES');
  144.       PathCat(pathCPPSAMPLE, szTemp, 'SAMPLES');
  145.       PathCat(pathCPPSAMPLE, pathCPPSAMPLE, 'OLE_VBX');
  146. }
  147. else
  148. {
  149.    PathCat(szTemp,SCRIPT.pathInstaller,'MGXNET.INI');
  150.    if EXISTS(szTemp)
  151.         {
  152.         GetProfileString(szABCName,'ABCPath',pathABC, szTemp);
  153.         GetProfileString(szABCName,'ABCViewPath',pathABCView, szTemp);
  154.         GetProfileString(szABCName,'DataPath',pathDATA, szTemp);
  155.         GetProfileString(szABCName,'SNAPPath',pathSNAP, szTemp);
  156.         GetProfileString(szABCName,'QuikTourPath',pathQuikTour, szTemp);
  157.         GetProfileString(szABCName,'ABCTutorPath',pathABCTUTOR, szTemp);
  158.         GetProfileString(szABCName,'DATATutorPath',pathDATATUTOR, szTemp);
  159.         GetProfileString(szABCName,'SamplePath',pathABCSAMPLE, szTemp);
  160.         GetProfileString(szABCName,'CPPSamplePath',pathCPPSAMPLE, szTemp);
  161.         }
  162. }
  163.  
  164. GetWindowsPath (pathWindows);
  165. GetSystemPath (pathSystem);
  166. SetValue(pathOLE, pathSystem);
  167. SetValue(pathFONT, pathSystem);
  168.  
  169. SetProfileString('Micrografx', 'ABC FlowCharter 2.0', NULL);
  170. SetProfileString('Micrografx', 'ABC FlowCharter 3.0', NULL);
  171. GetProfileString('Micrografx', 'ABC FlowCharter 4.0 Node', pathABCNode);
  172.  
  173. if STRCMP (pathABCNode,'')
  174. {
  175.    PathUp (szTemp,pathWindows);
  176.    PathCat (pathABCNode, szTemp, 'ABC');
  177. }
  178.  
  179. PathCat (pathABCPAL, pathABCNode, 'PALETTES');
  180.  
  181. # start of main loop
  182. while EQUALS (bQuit,FALSE)
  183. {
  184. if EQUALS (bTrialVersion, FALSE)
  185.    {
  186.    call HandleSerialNo;
  187.    }
  188.  
  189. # test here because HandleSerialNo dialog has the only quit button
  190. if EQUALS(bQuit, FALSE)
  191. {
  192. bCancel  = FALSE;
  193. bIcons   = FALSE;
  194.  
  195. bNeedLocalDir = FALSE;
  196.  
  197. GetSelectCount (nCount,'pkgABC','','');
  198. if GT (nCount,0)
  199.    {
  200.    bNeedLocalDir = TRUE;
  201.    }
  202.  
  203. GetSelectCount (nCount,'pkgSNAP','','');
  204. if GT (nCount,0)
  205.    {
  206.    bNeedLocalDir = TRUE;
  207.    }
  208.  
  209. if EQUALS (bNeedLocalDir,TRUE)
  210. {
  211.    call ChooseABCPath;
  212. }
  213.  
  214. if EQUALS(bCancel, FALSE)
  215. {
  216.    bAskIcons = FALSE;
  217.    GetSelectCount (nCount,'pkgABC','','');
  218.    if GT (nCount,0)
  219.       {
  220.       bAskIcons = TRUE;
  221.       }
  222.  
  223.    GetSelectCount (nCount,'pkgABCSamples','','');
  224.    if GT (nCount,0)
  225.       {
  226.       bAskIcons = TRUE;
  227.       }
  228.  
  229.    GetSelectCount (nCount,'pkgABCView','','');
  230.    if GT (nCount,0)
  231.       {
  232.       bAskIcons = TRUE;
  233.       }
  234.  
  235.    GetSelectCount (nCount,'pkgDataCharter','','');
  236.    if GT (nCount,0)
  237.       {
  238.       bAskIcons = TRUE;
  239.       }
  240.  
  241.    GetSelectCount (nCount,'pkgSNAP','','');
  242.    if GT (nCount,0)
  243.       {
  244.       bAskIcons = TRUE;
  245.       }
  246.  
  247.    bIcons = FALSE;
  248.  
  249.    if(EQUALS(bAskIcons, TRUE)
  250.       {
  251.       SetHelp ("Click ADD to add icons.");
  252.       SetExtHelp ("");
  253.       SetButtons ("&Add","&Skip","Cancel",BUTTON1, BUTTON2, BUTTON3);
  254.       TextDialog (
  255.          "The installation program can add the ABC FlowCharter icons
  256.          " to the Program Manager for you. If you want to
  257.          " add icons, click ADD now.");
  258.       if PRESSED (BUTTON1)
  259.          {
  260.          bIcons = TRUE;
  261.          }
  262.       if PRESSED (BUTTON3)
  263.          {
  264.          bCancel = TRUE;
  265.          bStop = TRUE;
  266.          }
  267.       }
  268.  
  269.    call FinalCopyStep;
  270. }
  271. }
  272. }
  273.  
  274. [ChooseABCPath] ()
  275. SetHelp ("Click CONTINUE to proceed.");
  276. pathSavePAL = pathABCNode;
  277.  
  278. SetHelp ("Click OK to accept the local ABC directory.");
  279. SetExtHelp (
  280.    "You can choose where you want to install the local ABC
  281.    " files. It's as easy as accepting the drive and directory
  282.    " in the text box or typing new information in the text
  283.    " box.\n\n
  284.    "To select a drive and directory:\n
  285.    "- Type a new drive and directory in the text box, then
  286.    " click OK.\n
  287.    "\tOR\n
  288.    "- Accept the path listed in the text box by clicking OK.\n\n
  289.    "Note: The space available on each drive is located to the
  290.    " right of the drive letter in the list box.");
  291. SetButtons ("OK","Cancel","",BUTTON1,BUTTON2);
  292. AutoGetPath(pathABCNode,"Enter the path to use for your local ABC directory.
  293.    "Where do you want to put the local ABC files? The directory 
  294.    " you specify will contain the local ABC files when the installation process is complete.");
  295.  
  296. if PRESSED (BUTTON1)
  297. {
  298. PathCat (pathABCPAL, pathABCNode, 'PALETTES');
  299. }
  300.  
  301. if PRESSED (BUTTON2)
  302. {
  303.    pathABCNode = pathSavePAL;
  304.    bStop = TRUE;
  305.    bCancel = TRUE;
  306. }
  307.  
  308. [AddIcons] ()
  309. InitProgMan(bResult);
  310. if EQUALS(bResult,TRUE)
  311. {
  312.    # do the Demos icons first so the Program
  313.    # icons end up in front
  314.  
  315.    GetSelectCount (nCount,'pkgABCSamples','','');
  316.    if GT (nCount,0)
  317.       {
  318.       # only add the OLE AUTO Help Icon in this group if samples where installed
  319.       GetSelectCount (nCount,'pkgABC','','');
  320.       if GT (nCount,0)
  321.          {
  322.          SetValue(szGroupName, 'ABC OLE Automation Demos');
  323.  
  324.          PathCat (szTemp2,pathABC,"AUTOMATE.HLP");
  325.          SetValue(szTemp, 'WINHELP ');
  326.          strcat(szTemp, szTemp2);
  327.  
  328.          AddIcon (szGroupName,"ABC OLE Automation Help",szTemp,'WINHELP.EXE',0);
  329.          }
  330.  
  331.       SetValue(szGroupName, 'ABC OLE Automation Demos');
  332.  
  333.       # Add icons for the demo programs
  334.       PathCat (szTemp,pathWINSYS,"DEPLOY.EXE");
  335.       AddIcon (szGroupName,"Deployment Flowchart DEMO",szTemp,szTemp,0);
  336.       PathCat (szTemp,pathABCSAMPLE,"ORGCHART.EXE");
  337.       AddIcon (szGroupName,"Org Chart DEMO",szTemp,szTemp,0);
  338.       PathCat (szTemp,pathABCSAMPLE,"EXCELDAT.EXE");
  339.       AddIcon (szGroupName,"Excel 5.0 Data DEMO",szTemp,szTemp,0);
  340.       PathCat (szTemp,pathABCSAMPLE,"NETWORK.EXE");
  341.       AddIcon (szGroupName,"Network Database DEMO",szTemp,szTemp,0);
  342.       PathCat (szTemp,pathABCSAMPLE,"MOVE.EXE");
  343.       AddIcon (szGroupName,"Move Event DEMO",szTemp,szTemp,0);
  344.       PathCat (szTemp,pathABCSAMPLE,"EVENTS.EXE");
  345.       AddIcon (szGroupName,"Double-Click & Delete Events DEMO",szTemp,szTemp,0);
  346.       PathCat (szTemp,pathABCSAMPLE,"FIELD.EXE");
  347.       AddIcon (szGroupName,"Field Change DEMO",szTemp,szTemp,0);
  348.       PathCat (szTemp,pathABCSAMPLE,"LINEDRAW.EXE");
  349.       AddIcon (szGroupName,"Line Draw DEMO",szTemp,szTemp,0);
  350.       PathCat (szTemp,pathABCSAMPLE,"MENU.EXE");
  351.       AddIcon (szGroupName,"Menus DEMO",szTemp,szTemp,0);
  352.       PathCat (szTemp,pathABCSAMPLE,"T_ONLINE.EXE");
  353.       AddIcon (szGroupName,"Text On Lines DEMO",szTemp,szTemp,0);
  354.       PathCat (szTemp,pathCPPSAMPLE,"OLE_VBX.EXE");
  355.       AddIcon (szGroupName,"VC++/MFC Events DEMO",szTemp,szTemp,0);
  356.       }
  357.  
  358.    SetValue(szGroupName, 'ABC FlowCharter 4.0');
  359.  
  360.    GetSelectCount (nCount,'pkgABC','','');
  361.    if GT (nCount,0)
  362.       {
  363.       PathCat (szTemp,pathABC,szABCAppName);
  364.       if EQUALS (bTrialVersion, TRUE)
  365.          {
  366.          AddIcon (szGroupName,"ABC FlowCharter 30-Day Trial Version",szTemp,szTemp,0);
  367.          }
  368.       else
  369.          {
  370.          AddIcon (szGroupName,"ABC FlowCharter",szTemp,szTemp,0);
  371.          }
  372.       }
  373.  
  374.    GetSelectCount (nCount,'pkgABCView','','');
  375.    if GT (nCount,0)
  376.       {
  377.       PathCat (szTemp,pathABCView,szABCVIEWAppName);
  378.       AddIcon (szGroupName,"ABC Viewer",szTemp,szTemp,0);
  379.       }
  380.  
  381.    GetSelectCount (nCount,'pkgDataCharter','','');
  382.    if GT (nCount,0)
  383.       {
  384.       PathCat(szTemp,pathDATA,szDATAAppName);
  385.  
  386.       if EQUALS (bTrialVersion, TRUE)
  387.          {
  388.          AddIcon (szGroupName,"ABC DataAnalyzer 30-Day Trial Version",szTemp,szTemp,0);
  389.          }
  390.       else
  391.          {
  392.          AddIcon (szGroupName,"ABC DataAnalyzer",szTemp,szTemp,0);
  393.          }
  394.       }
  395.  
  396.    GetSelectCount (nCount,'pkgSNAP','','');
  397.    if GT (nCount,0)
  398.        {
  399.        # Delete the old icon(s) 
  400.        DeleteIcon ("Micrografx", "SnapGrafx");
  401.        DeleteIcon ("Micrografx", "ABC SnapGraphics 1.0");
  402.  
  403.        PathCat(szTemp,pathSNAP,szSNAPAppName);
  404.  
  405.       if EQUALS (bTrialVersion, TRUE)
  406.          {
  407.          AddIcon (szGroupName,"ABC SnapGraphics 30-Day Trial Version",szTemp,szTemp,0);
  408.          }
  409.       else
  410.          {
  411.          AddIcon (szGroupName,"ABC SnapGraphics",szTemp,szTemp,0);
  412.          }
  413.        }
  414.  
  415.     TermProgMan;
  416. }
  417.  
  418. [AddWinIni] ()
  419. # ABC FlowCharter stuff
  420. GetSelectCount (nCount,'pkgABC','','');
  421. if GT (nCount,0)
  422.    {
  423.    PathCat(szTemp,pathABC,szABCAppName);
  424.    strcat(szTemp, ' ^.af3');
  425.    SetProfileString ('Extensions','af3',szTemp);
  426.  
  427.    PathCat(szTemp,pathABC,szABCAppName);
  428.    strcat(szTemp, ' ^.af2');
  429.    SetProfileString ('Extensions','af2',szTemp);
  430.  
  431.    PathCat(szTemp,pathABC,szABCAppName);
  432.    strcat(szTemp, ' ^.abc');
  433.    SetProfileString ('Extensions','abc',szTemp);
  434.  
  435.    PathCat(szTemp,pathABC,szABCAppName);
  436.    strcat(szTemp, ' ^.aft');
  437.    SetProfileString ('Extensions','aft',szTemp);
  438.  
  439.    PathCat(szTemp,pathABC,szABCAppName);
  440.    strcat(szTemp, ' ^.afw');
  441.    SetProfileString ('Extensions','afw',szTemp);
  442.    SetProfileString('Micrografx', 'ABC FlowCharter 4.0 Node', pathABCNode);
  443.    }
  444.  
  445. GetSelectCount (nCount,'pkgDataCharter','','');
  446. if GT (nCount,0)
  447.    {
  448.    PathCat(szTemp,pathDATA,szDATAAppName);
  449.    strcat(szTemp, ' ^.dat');
  450.    SetProfileString ('Extensions','dat',szTemp);
  451.  
  452.    PathCat(szTemp,pathDATA,szDATAAppName);
  453.    strcat(szTemp, ' ^.grf');
  454.    SetProfileString ('Extensions','grf',szTemp);
  455.    SetProfileString('Micrografx', 'ABC LIBRARIES', pathDATA);
  456.    }
  457.  
  458. # ABC SnapGraphics stuff
  459. GetSelectCount (nCount,'pkgSNAP','','');
  460. if GT (nCount,0)
  461.    {
  462.    if EQUALS(bDemo, FALSE)
  463.       {
  464.       PathCat (szTemp,pathSNAP,szSNAPAppName);
  465.       strcat(szTemp, ' ^.sg');
  466.       SetProfileString ('Extensions','sg',szTemp);
  467.  
  468.       PathCat (szTemp,pathSNAP,szSNAPAppName);
  469.       strcat(szTemp, ' ^.sgt');
  470.       SetProfileString ('Extensions','sgt',szTemp);
  471.  
  472.       PathCat (szTemp,pathSNAP,szSNAPAppName);
  473.       strcat(szTemp, ' ^.sgw');
  474.       SetProfileString ('Extensions','sgw',szTemp);
  475.       }
  476.    }
  477.  
  478. [AddABCIni] ()
  479. PathCat(szTemp, pathWindows, 'ABC.INI');
  480. SetValue(szSectionName, 'ABC FlowCharter');
  481.  
  482. GetSelectCount (nCount,'pkgABC','','');
  483. if GT (nCount,0)
  484. {
  485.     SetProfileString (szSectionName,'PalettePath',pathABCPAL, szTemp);
  486.     SetProfileString (szSectionName,'SpellNumLanguages', "1", szTemp);
  487.     SetProfileString (szSectionName,'SpellLanguage1', "English (US),16,128,abcspeng.lex,abchyeng.lex", szTemp);
  488.     SetProfileString (szSectionName,'LastChartDir',pathABCNode, szTemp);
  489.     PathCat(szTemp2, pathABCNode, 'USER.DIC');
  490.     SetProfileString (szSectionName,'SpellUserDictionary', szTemp2,szTemp);
  491.     SetProfileString (szSectionName,'SpellDictionaryPath', pathABC, szTemp);
  492.  
  493.     SoftSetProfileString (szSectionName,'IndexCurrDir',pathABCTUTOR, szTemp);
  494.     SoftSetProfileString (szSectionName,'LastLogoDir',pathABCSAMPLE, szTemp);
  495.     SoftSetProfileString (szSectionName,'LastPaletteDir',pathABCPAL, szTemp);
  496.     SoftSetProfileString (szSectionName,'AppMaximized', 'true', szTemp);
  497.     SoftSetProfileString (szSectionName,'PaletteOn', 'true', szTemp);
  498.     SoftSetProfileString (szSectionName,'NoteOn', 'false', szTemp);
  499.     SoftSetProfileString (szSectionName,'IndexOn', 'false', szTemp);
  500.     SoftSetProfileString (szSectionName,'RulersOn', 'true', szTemp);
  501.     SoftSetProfileString (szSectionName,'ShapeSizing', '0', szTemp);
  502.     SoftSetProfileString (szSectionName,'DoubleClick', '0', szTemp);
  503.     SoftSetProfileString (szSectionName,'CtrlDblClick', '1', szTemp);
  504.     SoftSetProfileString (szSectionName,'IndexUseCurrDir', 'true', szTemp);
  505.     SoftSetProfileString (szSectionName,'IndexSrchSubDirs', 'false', szTemp);
  506.     SoftSetProfileString (szSectionName,'IndexView', '0', szTemp);
  507.     SoftSetProfileString (szSectionName,'Files', '64', szTemp);
  508.     SoftSetProfileString (szSectionName,'RulerSnap', 'true', szTemp);
  509.     SoftSetProfileString (szSectionName,'SnapResolution', '0', szTemp);
  510.     SoftSetProfileString (szSectionName,'GuidelineRange', '75', szTemp);
  511.  
  512.     SetProfileString (szSectionName,'RuleMeasure', NULL, szTemp);
  513.     SetProfileString (szSectionName,'IndexFont', NULL, szTemp);
  514.     SetProfileString (szSectionName,'HorzLineSpacing', NULL, szTemp);
  515.     SetProfileString (szSectionName,'VertLineSpacing', NULL, szTemp);
  516.     if EQUALS (bTrialVersion, FALSE)
  517.       {
  518.       SetProfileString (szSectionName,'Warning', '0', szTemp);
  519.       }
  520.     else
  521.       {
  522.       SetProfileString (szSectionName,'Warning', '1', szTemp);
  523.       }
  524.  
  525.     PathCat(szTemp2, pathABCSAMPLE, 'DEFAULT.AFT');
  526.     SetProfileString (szSectionName,'DefaultTemplate', szTemp2, szTemp);
  527.  
  528.     SetProfileString (szSectionName,'DefaultPalette','STD.AFP', szTemp);
  529.  
  530.     PathCat(szTemp2,pathABCPAL,"AUDIT.AFP");
  531.     AddShapePal(szTemp, szSectionName, szTemp2);
  532.     PathCat(szTemp2,pathABCPAL,"AUDIT1.AFP");
  533.     AddShapePal(szTemp, szSectionName, szTemp2);
  534.     PathCat(szTemp2,pathABCPAL,"BASIC.AFP");
  535.     AddShapePal(szTemp, szSectionName, szTemp2);
  536.     PathCat(szTemp2,pathABCPAL,"BASICC.AFP");
  537.     AddShapePal(szTemp, szSectionName, szTemp2);
  538.     PathCat(szTemp2,pathABCPAL,"BUSIPROC.AFP");
  539.     AddShapePal(szTemp, szSectionName, szTemp2);
  540.     PathCat(szTemp2,pathABCPAL,"CATALYST.AFP");
  541.     AddShapePal(szTemp, szSectionName, szTemp2);
  542.     PathCat(szTemp2,pathABCPAL,"COLORS.AFP");
  543.     AddShapePal(szTemp, szSectionName, szTemp2);
  544.     PathCat(szTemp2,pathABCPAL,"DATAFLOW.AFP");
  545.     AddShapePal(szTemp, szSectionName, szTemp2);
  546.     PathCat(szTemp2,pathABCPAL,"DIN66001.AFP");
  547.     AddShapePal(szTemp, szSectionName, szTemp2);
  548.     PathCat(szTemp2,pathABCPAL,"NETWORK1.AFP");
  549.     AddShapePal(szTemp, szSectionName, szTemp2);
  550.     PathCat(szTemp2,pathABCPAL,"NETWORK2.AFP");
  551.     AddShapePal(szTemp, szSectionName, szTemp2);
  552.     PathCat(szTemp2,pathABCPAL,"NETWORK3.AFP");   
  553.     AddShapePal(szTemp, szSectionName, szTemp2);
  554.     PathCat(szTemp2,pathABCPAL,"NETWORK4.AFP");   
  555.     AddShapePal(szTemp, szSectionName, szTemp2);
  556.     PathCat(szTemp2,pathABCPAL,"NETWORK5.AFP");   
  557.     AddShapePal(szTemp, szSectionName, szTemp2);
  558.     PathCat(szTemp2,pathABCPAL,"V_ADDONS.AFP");   
  559.     AddShapePal(szTemp, szSectionName, szTemp2);
  560.     PathCat(szTemp2,pathABCPAL,"OFFICE.AFP");
  561.     AddShapePal(szTemp, szSectionName, szTemp2);
  562.     PathCat(szTemp2,pathABCPAL,"ORGCHART.AFP");
  563.     AddShapePal(szTemp, szSectionName, szTemp2);
  564.     PathCat(szTemp2,pathABCPAL,"ORIGINAL.AFP");
  565.     AddShapePal(szTemp, szSectionName, szTemp2);
  566.     PathCat(szTemp2,pathABCPAL,"PROCESS.AFP");
  567.     AddShapePal(szTemp, szSectionName, szTemp2);
  568.     PathCat(szTemp2,pathABCPAL,"PROCESS1.AFP");
  569.     AddShapePal(szTemp, szSectionName, szTemp2);
  570.     PathCat(szTemp2,pathABCPAL,"QUALITY.AFP");
  571.     AddShapePal(szTemp, szSectionName, szTemp2);
  572.     PathCat(szTemp2,pathABCPAL,"QUALITY1.AFP");
  573.     AddShapePal(szTemp, szSectionName, szTemp2);
  574.     PathCat(szTemp2,pathABCPAL,"SCHEMA.AFP");
  575.     AddShapePal(szTemp, szSectionName, szTemp2);
  576.     PathCat(szTemp2,pathABCPAL,"SDL.AFP");
  577.     AddShapePal(szTemp, szSectionName, szTemp2);
  578.     PathCat(szTemp2,pathABCPAL,"SIMPLIFY.AFP");
  579.     AddShapePal(szTemp, szSectionName, szTemp2);
  580.     PathCat(szTemp2,pathABCPAL,"STD.AFP");
  581.     AddShapePal(szTemp, szSectionName, szTemp2);
  582.     PathCat(szTemp2,pathABCPAL,"TELCO.AFP");
  583.     AddShapePal(szTemp, szSectionName, szTemp2);
  584.     PathCat(szTemp2,pathABCPAL,"TPM.AFP");
  585.     AddShapePal(szTemp, szSectionName, szTemp2);
  586.     PathCat(szTemp2,pathABCPAL,"XTENSION.AFP");
  587.     AddShapePal(szTemp, szSectionName, szTemp2);
  588. }
  589.  
  590. # save out the user info
  591. SetProfileString ('User Info','Name', szUser, szTemp);
  592. SetProfileString ('User Info','Company', szCompany, szTemp);
  593.  
  594. # save out the pathnames of the ABC.EXE and ABCDATA.EXE
  595. PathCat(szTemp2,pathABC,szABCAppName);
  596. if EXISTS(szTemp2)
  597.    {
  598.    SetProfileString ('Components',szABCName,szTemp2, szTemp);
  599.    }       
  600. else
  601.    {
  602.    SetProfileString ('Components',szABCName,NULL, szTemp);
  603.    }
  604.  
  605. PathCat(szTemp2,pathDATA,szDATAAppName);
  606. if EXISTS(szTemp2)
  607.    {
  608.    # This is new for FlowCharter 4.0
  609.    SetValue(szTemp3, 'ABC DataAnalyzer,');
  610.    strcat(szTemp3, szTemp2);
  611.    SetProfileString(szSectionName,'AddOn1', szTemp3, szTemp);
  612.  
  613.    # This is the old line - left in, harmless
  614.    SetProfileString ('Components','ABC DataAnalyzer',szTemp2, szTemp);
  615.    }       
  616. else
  617.    {
  618.    SetProfileString ('Components','ABC DataAnalyzer', NULL, szTemp);
  619.    }
  620.  
  621. PathCat(szTemp2,pathSNAP,szSNAPAppName);
  622. if EXISTS(szTemp2)
  623.    {
  624.    SetValue(szTemp3, 'ABC SnapGraphics,');
  625.    strcat(szTemp3, szTemp2);
  626.    SetProfileString(szSectionName,'AddOn2', szTemp3, szTemp);
  627.  
  628.    SetProfileString ('Components','ABC SnapGraphics', szTemp2, szTemp);
  629.    }       
  630. else
  631.    {
  632.    SetProfileString ('Components','ABC SnapGraphics', NULL, szTemp);
  633.    }
  634.  
  635. SetProfileString ('ABC DataAnalyzer','Path',pathDATATUTOR,szTemp);
  636. SetProfileString ('ABC DataAnalyzer','BubbleHelp','1',szTemp);
  637.  
  638. if EQUALS (bTrialVersion, FALSE)
  639.    {
  640.    SetProfileString ('ABC DataAnalyzer','Warning', '0', szTemp);
  641.    }
  642. else
  643.    {
  644.    SetProfileString ('ABC DataAnalyzer','Warning', '1', szTemp);
  645.    }
  646.  
  647. [AddSNAPIni] ()
  648. if EQUALS(bDemo, TRUE)
  649.    {
  650.    PathCat(szTemp, pathWindows, 'ABCDEMO.INI');
  651.    }
  652. else
  653.    {
  654.    PathCat(szTemp, pathWindows, 'ABC.INI');
  655.    }
  656.  
  657. # Create a 'sub-path' for Snap Palettes
  658. SetProfileString ('SnapGraphics','PalettePath',pathABCPAL, szTemp);
  659.  
  660. # Create a 'sub-path' for CHARTS
  661. PathCat(szTemp2, pathABCNode, 'CHARTS');
  662. CreatePath(bResult, szTemp2);
  663. if EQUALS(bSuccess, TRUE)
  664. {
  665.    SetProfileString ('SnapGraphics','LastChartDir',szTemp2, szTemp);
  666. }
  667. else
  668. {
  669.    SetProfileString ('SnapGraphics','LastChartDir', NULL, szTemp);
  670. }
  671.  
  672. SetProfileString ('SnapGraphics','AppMaximized', 'true', szTemp);
  673. SetProfileString ('SnapGraphics','RuleMeasure', NULL, szTemp);
  674.  
  675. SetProfileString ('SnapGraphics','HintOff', 'false', szTemp);
  676. if EQUALS (bTrialVersion, FALSE)
  677.    {
  678.    SetProfileString ('SnapGraphics','Warning', '0', szTemp);
  679.    }
  680. else
  681.    {
  682.    SetProfileString ('SnapGraphics','Warning', '1', szTemp);
  683.    }
  684.  
  685. SetProfileString ('SnapGraphics','SpellNumLanguages','1' ,szTemp);
  686. SetProfileString ('SnapGraphics','SpellLanguage1','English (US),16,128,abcspeng.lex,abchyeng.lex',szTemp);
  687. SetProfileString ('SnapGraphics','SpellOptions','0' ,szTemp);
  688. SetProfileString ('SnapGraphics','SpellCurrLanguage','1' ,szTemp);
  689. PathCat(szTemp2, pathABCNode, 'USER.DIC');
  690. SetProfileString ('SnapGraphics','SpellUserDictionary', szTemp2,szTemp);
  691. SetProfileString ('SnapGraphics','SpellDictionaryPath',pathSNAP,szTemp);
  692.  
  693. # write out user info
  694. SetProfileString('User Info','Name', szUser, szTemp);
  695. SetProfileString('User Info','Company', szCompany, szTemp);
  696.  
  697. # register the SNAP OLE 2.0 server
  698. call SNAPServerReg;
  699.  
  700. # add icons to Word 6.0 and Excel 5.0
  701. if EQUALS (bTrialVersion, FALSE)
  702.    {
  703.    SetText ("\n\n\n\n\n\n~One moment, please...");
  704.    ShowWindow;
  705.    PathCat(szTemp,pathABCNode,'SNAPBTN.EXE');
  706.    WinExec(nResult,szTemp,SW_SHOW);
  707.    }
  708.  
  709. [ResultDialog] ()
  710. bCancel = FALSE;
  711. bStop   = FALSE;
  712. bQuit   = FALSE;
  713.  
  714. SetText ("\n\n\n\n\n\n~One moment, please...");
  715. if EQUALS (bSuccess,TRUE)
  716. {
  717.     SetExtHelp ('');
  718.  
  719.     SetHelp("");
  720.     GetSelectCount (nCount,'pkgABC','','');
  721.     if GT (nCount,0)
  722.             {
  723.             PathCat(szTemp,pathABC,szABCAppName);
  724.             SetValue(szRunEnd, szTemp);
  725.             SetValue(szRunEndShort, szABCAppName);
  726.             SetValue(szRunEndName, "ABC FlowCharter 4.0");
  727.  
  728.             GetSelectCount (nCount,'pkgDataCharter','','');
  729.             if GT (nCount,0)
  730.                {
  731.                SetValue(szRunDataShort, szDATAAppName);
  732.                SetValue(szRunDataName, "ABC DataAnalyzer 1.1");
  733.                }
  734.  
  735.             SetHelp("Click START to run ABC FlowCharter 4.0.");
  736.             }
  737.     else
  738.             {
  739.              GetSelectCount (nCount,'pkgSNAP','','');
  740.              if GT (nCount,0)
  741.                      {
  742.                      PathCat(szTemp,pathSNAP,szSNAPAppName);
  743.                      SetValue(szRunEnd, szTemp);
  744.                      SetValue(szRunEndName, "ABC SnapGraphics");
  745.                      SetValue(szRunEndShort, szSNAPAppName);
  746.                      SetHelp("Click START to run ABC SnapGraphics.");
  747.                      }
  748.              else
  749.                      {
  750.                       GetSelectCount (nCount,'pkgABCView','','');
  751.                       if GT (nCount,0)
  752.                         {
  753.                         PathCat(szTemp,pathABCView,szABCVIEWAppName);
  754.                         SetValue(szRunEnd, szTemp);
  755.                         SetValue(szRunEndName, "ABC Viewer");
  756.                         SetValue(szRunEndShort, szABCVIEWAppName);
  757.                         SetHelp("Click START to run ABC Viewer.");
  758.                         }
  759.                      else
  760.                         {
  761.                         GetSelectCount (nCount,'pkgDataCharter','','');
  762.                         if GT (nCount,0)
  763.                                  {
  764.                                  PathCat(szTemp,pathDATA,szDATAAppName);
  765.                                  SetValue(szRunEnd, szTemp);
  766.                                  SetValue(szRunEndName, "ABC DataAnalyzer");
  767.                                  SetValue(szRunEndShort, szDATAAppName);
  768.                                  SetHelp("Click START to run ABC DataAnalyzer.");
  769.                                  }
  770.                         }
  771.                      }
  772.             }
  773.  
  774.     bRunitMessage = FALSE;
  775.  
  776.     if EQUALS(SCRIPT.bNetwork, FALSE)
  777.         {
  778.         if EXISTS (szRunEnd)
  779.                 {
  780.                 bRunitMessage = TRUE;
  781.                 }
  782.         }
  783.  
  784.     if EQUALS(bRunitMessage, TRUE)
  785.     {
  786.         if EQUALS(bNeedToRestart, TRUE)
  787.         {
  788.            SetHelp ("Click QUIT to end Micrografx Installer.");
  789.            SetButtons ("&Quit",'','',BUTTON1,BUTTON1);
  790.            TextDialog (
  791.                "~Installation was successful!\n\n
  792.                "To start " szRunEndName ", you must exit Windows,
  793.                " make changes to your AUTOEXEC.BAT, and reboot your
  794.                " workstation.\n\n
  795.                "To end the Micrografx Installer, click QUIT now.");
  796.            SetHelp ('');
  797.            SetButtons ('','','',BUTTON1,BUTTON1);
  798.         }
  799.         else
  800.         {
  801.           if EQUALS(bRunitMessage, TRUE)
  802.           {
  803.               SetButtons ("&Start", "&Quit",'',BUTTON1,BUTTON2);
  804.               if EQUALS (bIcons,TRUE)
  805.               {
  806.                TextDialog (
  807.                    "~Installation was successful!\n\n
  808.                    "To start " szRunEndName ", click START now. Or, double
  809.                    " click the " szRunEndName " icon in the ABC FlowCharter 4.0 group
  810.                    " of the Program Manager.");
  811.               }
  812.               else
  813.               {
  814.                TextDialog (
  815.                    "~Installation was successful!\n\n
  816.                    "To start " szRunEndName ", click START now. Or, run the
  817.                    " File Manager, change to the " szRunEndName " directory,
  818.                    " and double click the file " szRunEndShort ".");
  819.               }
  820.               if PRESSED (BUTTON1)
  821.                   {
  822.                    WinExec(nResult,szRunEnd,SW_SHOW);
  823.                   }
  824.               call DoBasicSetIcon;
  825.               SetHelp ('');
  826.               SetButtons ('','','',BUTTON1,BUTTON1);
  827.           }
  828.           else
  829.           {
  830.               SetHelp ("Click QUIT to end Micrografx Installer.");
  831.               SetButtons ("&Quit",'','',BUTTON1,BUTTON1);
  832.               TextDialog (
  833.                   "~Installation was successful!\n\n
  834.                   "To end the Micrografx Installer, click QUIT now.");
  835.               SetHelp ('');
  836.               SetButtons ('','','',BUTTON1,BUTTON1);
  837.  
  838.           }
  839.       }
  840.    }
  841. }
  842.  
  843. bCancel = TRUE;
  844. bStop   = TRUE;
  845. bQuit   = TRUE;
  846.  
  847. [RegOLE2] ()
  848. # do the regedit for the OLE2 libraries
  849. PathCat(szTemp2,pathSystem,'OLE2.REG');
  850. SetValue(szTemp, 'REGEDIT /S ');
  851. strcat(szTemp, szTemp2);
  852. WinExec (nResult,szTemp,SW_HIDE);
  853.  
  854. [HandleSerialNo]
  855. GetModuleFileName(szTemp);
  856. PathUp(szTemp, szTemp);
  857.  
  858. if EQUALS(bCDROM, TRUE)
  859. {
  860.    PathCat(szHelp, szTemp, 'README.HLP');
  861. }
  862. else
  863. {
  864.    PathCat(szHelp, szTemp, 'NETWORK.HLP');
  865. }
  866.  
  867. WinHelp(bResult,szHelp,HELP_INDEX);
  868.  
  869. PathCat(szProductIni,SCRIPT.pathArchive,"PRODUCT.INI");
  870. if NOT EXISTS (szProductIni)
  871. {
  872.     PathCat (szProductIni,SCRIPT.pathInstaller,"PRODUCT.INI");
  873. }
  874.  
  875. if EQUALS (bCDROM,FALSE)
  876. {
  877.    GetProfileString ('Owner Info'  ,'Company',szCompany     ,szProductIni);
  878. }
  879.  
  880. if EQUALS (bTrialVersion, FALSE)
  881. {
  882. SetExtHelp (
  883.     "ABC FlowCharter is already installed on your network. The Micrografx
  884.     " Installer will make it available to you.\n\n
  885.     "Please enter your full name and company name (if applicable)
  886.     " in the boxes provided. ABC FlowCharter will display this information
  887.     " in its About box for easy identification.\n\n");
  888. }
  889. else
  890. {
  891. SetExtHelp (
  892.     "The 30-Day trial version of ABC FlowCharter is already installed on your network.
  893.     " The Micrografx Installer will make it available to you.\n\n
  894.     "Please enter your full name and company name (if applicable)
  895.     " in the boxes provided. ABC FlowCharter will display this information
  896.     " in its About box for easy identification.\n\n");
  897. }
  898.  
  899. bStop = FALSE;
  900. while EQUALS (bStop,FALSE)
  901. {
  902.    SetButtons ("&Continue","&Quit",'',BUTTON1,BUTTON2);
  903.    if EQUALS (bTrialVersion, TRUE)
  904.       {
  905.       Input2 (
  906.                szUser,"Enter your full name."
  907.                szCompany,"Enter your company name."
  908.                "Welcome to the Micrografx Installer for the 30-Day trial version of ABC
  909.                " FlowCharter 4.0 for quick and easy Windows flowcharting.\n\n
  910.                "Use this program to install ABC FlowCharter and its
  911.                " additional features such as tutorials and samples.\n\n");
  912.       }
  913.    else
  914.       {
  915.       Input2 (
  916.                szUser,"Enter your full name."
  917.                szCompany,"Enter your company name."
  918.                "Welcome to the Micrografx Installer for ABC FlowCharter 4.0
  919.                " for quick and easy Windows flowcharting.\n\n
  920.                "Use this program to install ABC FlowCharter and its
  921.                " additional features such as tutorials and samples.\n\n");
  922.       }
  923.  
  924.     if PRESSED (BUTTON1)
  925.     {
  926.         SetHelp ("Click CONTINUE to proceed.");
  927.         SetExtHelp ('');
  928.         SetButtons ("&Continue","&Back","",BUTTON1,BUTTON2);
  929.         TextDialog (
  930.             "Is this information correct?\n\n
  931.             "\tName:\t\t"  szUser    "\n
  932.             "\tCompany:\t" szCompany "\n\n
  933.             "If the information above is correct, click CONTINUE to
  934.             " proceed with installation, or click BACK to change your
  935.             " input.");
  936.         if PRESSED (BUTTON1)
  937.         {
  938.             SetProfileString ('Owner Info','Company',szCompany,szProductIni,1);
  939.             bStop = TRUE;
  940.         }
  941.     }
  942.     else
  943.     {
  944.         bStop = TRUE;
  945.         bQuit = TRUE;
  946.     }
  947. }
  948.  
  949.  
  950. [CopyOverNetFiles]
  951. NeedToInstallOLE2DLLs(bNeedToCopyOLEDLLs, bNeedToRebootFirst);
  952.  
  953. # prevent ENDLESS re-booting
  954. if EQUALS (SCRIPT.bRestart,TRUE)
  955.    {
  956.    bNeedToRebootFirst = FALSE;
  957.    }
  958.  
  959. if EQUALS (bNeedToRebootFirst, TRUE)
  960.    {
  961.    PathCat(szTemp, SCRIPT.pathInstaller,'MAN_ABC.BIN');
  962.    SaveManifest(szTemp);
  963.    PathCat(szTemp, SCRIPT.pathInstaller,'VAR_ABC.BIN');
  964.    SaveVariables(szTemp);
  965.  
  966.    SetIcon (LogoIcon,1,1,"ABC FlowCharter");
  967.  
  968.    SetHelp ("Click CONTINUE to proceed and restart Windows.");
  969.    SetButtons ("&Continue","&Quit","",BUTTON1,BUTTON2);
  970.    TextDialog (
  971.    "ABC FlowCharter 4.0 requires the latest OLE 2.0 libraries.\n
  972.    "To copy the libraries, Windows must restart.\n\n
  973.    "If you choose QUIT, ABC FlowCharter 4.0 will not install.");
  974.  
  975.    if PRESSED (BUTTON1)
  976.       {
  977.       RestartInstaller;
  978.       }
  979.    if PRESSED (BUTTON2)
  980.       {
  981.       bQuit = TRUE;
  982.       }
  983.    }
  984.  
  985. if EQUALS (bQuit, FALSE)
  986.    {
  987.    SetText ("\n\n\n\n\n\n~Copying font files...");
  988.    PathCat (szTemp,SCRIPT.pathInstaller,'*.TTF');
  989.    Copy(szTemp, pathSystem);
  990.    PathCat (szTemp,SCRIPT.pathInstaller,'*.FOT');
  991.    Copy(szTemp, pathSystem);
  992.  
  993.    if EQUALS (bNeedToCopyOLEDLLs, TRUE)
  994.       {
  995.       SetText("\n\n\n\n\n\n~Copying OLE 2.0 files...");
  996.       PathCat(szTemp,SCRIPT.pathInstaller,'*.DLL');
  997.       UpdateDLLs(szTemp, pathSystem);
  998.       }
  999.  
  1000.    PathCat(szTemp,SCRIPT.pathInstaller,'OLE2*.REG');
  1001.    UpdateFiles(szTemp, pathSystem);
  1002.  
  1003.    SetText("\n\n\n\n\n\n~Copying OLE Automation support files...");
  1004.  
  1005.    # get rid of the Toolkit 1.1 VBX
  1006.    PathCat(szTemp,pathSystem,'ABCFLOW.VBX');
  1007.    Delete(szTemp);
  1008.  
  1009.    PathCat(szTemp,SCRIPT.pathInstaller,'*.VBX');
  1010.    Copy(szTemp, pathSystem);
  1011.    PathCat(szTemp,pathSystem,'DEPLOY.INI');
  1012.    Delete(szTemp);
  1013.    PathCat(szTemp,SCRIPT.pathInstaller,'DEPLOY.*');
  1014.    Copy(szTemp, pathSystem);
  1015.    PathCat(szTemp,SCRIPT.pathInstaller,'NETWORK*.EXE');
  1016.    Copy(szTemp, pathSystem);
  1017.    PathCat(szTemp,SCRIPT.pathInstaller,'ABCAUTO*.REG');
  1018.    Copy(szTemp, pathSystem);
  1019.  
  1020.    GetSelectCount (nCount,'pkgABC','','');
  1021.    if GT (nCount,0)
  1022.       {
  1023.       CreatePath(bSuccess, pathABCPAL);
  1024.       if EQUALS(bSuccess, TRUE)
  1025.           {
  1026.           SetText ("\n\n\n\n\n\n~Copying ABC shape palette files...");
  1027.           PathCat(szTemp,SCRIPT.pathInstaller,'*.AFP');
  1028.           UpdateFiles(szTemp, pathABCPAL);
  1029.           }
  1030.       }
  1031.  
  1032.    GetSelectCount (nCount,'pkgSNAP','','');
  1033.    if GT (nCount,0)
  1034.       {
  1035.       CreatePath(bSuccess, pathABCPAL);
  1036.       if EQUALS(bSuccess, TRUE)
  1037.           {
  1038.           SetText ("\n\n\n\n\n\n~Copying ABC shape palette files...");
  1039.           PathCat(szTemp,SCRIPT.pathInstaller,'*.SGP');
  1040.           UpdateFiles(szTemp, pathABCPAL);
  1041.           }
  1042.       
  1043.       # copy the Word & Excel button programs to the 
  1044.       # local node
  1045.       PathCat(szTemp,pathSNAP,'SNAPBTN*.*');
  1046.       Copy(szTemp, pathABCNode);
  1047.       }
  1048.    }
  1049.  
  1050. [FinalCopyStep] ()
  1051. if EQUALS(bCancel, FALSE)
  1052. {
  1053. Call CopyOverNetFiles;
  1054.  
  1055. SetHelp ('');
  1056. SetButtons ('','','',BUTTON1,BUTTON1);
  1057. ClearInfoPanel (CLEAR_ALL);
  1058.  
  1059. # ABC 4.0 no longer installs fonts
  1060. # SetText ("\n\n\n\n\n\n~Processing fonts...");
  1061. # ProcessFonts(bSuccess, '', TT, TRUE, 'pkgFonts', TRUE);
  1062. # FontChange;
  1063. # WinIniChange("fonts");
  1064.  
  1065. if EQUALS (bIcons,TRUE)
  1066. {
  1067.     SetText ("\n\n\n\n\n\n~Adding icons...");
  1068.     call AddIcons;
  1069. }
  1070.  
  1071. call RegOLEAutomation;
  1072.  
  1073. SetText ("\n\n\n\n\n\n~Processing WIN.INI...");
  1074. call AddWinIni;
  1075. SetText ("\n\n\n\n\n\n~Processing ABC.INI...");
  1076. call AddABCIni;
  1077. call AddViewerIni;
  1078. GetSelectCount (nCount,'pkgSNAP','','');
  1079. if GT (nCount,0)
  1080. {
  1081.    call AddSNAPIni;
  1082. }
  1083.  
  1084. if EQUALS(bNeedToCopyOLEDLLs, TRUE)
  1085.    {
  1086.    SetText ("\n\n\n\n\n\n~Registering OLE 2.0 libraries...");
  1087.    call RegOLE2;
  1088.    }
  1089.  
  1090.  
  1091. GetSelectCount (nCount,'pkgABC','','');
  1092. if GT(nCount,0)
  1093.   {
  1094.   SetText ("\n\n\n\n\n\n~Registering ABC FlowCharter OLE Server...");
  1095.   call RegFlowOLE;
  1096.   }
  1097.  
  1098. GetSelectCount (nCount,'pkgDataCharter','','');
  1099. if GT(nCount,0)
  1100.   {
  1101.   SetText ("\n\n\n\n\n\n~Registering ABC DataAnalyzer OLE Server...");
  1102.   call RegDAOLE;
  1103.   }
  1104.  
  1105. call ResultDialog;
  1106. }
  1107.  
  1108. [RegOLEAutomation]
  1109. # do the regedit for the ABC OLE Automation Support
  1110. PathCat(szTemp2,pathABC,'ABCAUTO.REG');
  1111.  
  1112. if EXISTS(szTemp2)
  1113. {
  1114.    SetValue(szTemp, 'REGEDIT /S ');
  1115.    strcat(szTemp, szTemp2);
  1116.    WinExec (nResult,szTemp,SW_HIDE);
  1117.  
  1118.    # now clean up the paths for the OLE Automation
  1119.    # server entries
  1120.  
  1121.    PathCat(szTemp2,pathABC,'abcflow.exe');
  1122.    if EXISTS(szTemp2)
  1123.       {
  1124.       PathCat(szTemp,pathABC,'abcflow.exe /automation');
  1125.       }
  1126.    else
  1127.       {
  1128.       PathCat(szTemp2,pathABCView,'abcview.exe');
  1129.       if EXISTS(szTemp2)
  1130.          {
  1131.          PathCat(szTemp,pathABCView,'abcview.exe /automation');
  1132.          }
  1133.       else
  1134.          {
  1135.          PathCat(szTemp,pathABC,'abcflow.exe /automation');
  1136.          }
  1137.       }
  1138.  
  1139.    RegSetValue("CLSID\\{B9513B80-ECC8-101A-9DC4-0000C0B58E81}\\LocalServer", szTemp);
  1140.    PathCat(szTemp,pathABC,'ABCAUTO.TLB');
  1141.    RegSetValue("TypeLib\\{02C28460-F307-101A-9DC4-0000C0B58E81}\\4\\409\\win16", szTemp);
  1142.    RegSetValue("TypeLib\\{02C28460-F307-101A-9DC4-0000C0B58E81}\\4\\HELPDIR", pathABC);
  1143. }
  1144.  
  1145. [DoBasicSetIcon] ()
  1146. SetIcon (ABCFlowIcon,1,1,"ABC FlowCharter");
  1147.  
  1148. [SNAPServerReg] ()
  1149. # do the regedit for the SNAP OLE 2.0 Server Support
  1150. PathCat(szTemp2,pathSNAP,'SNAP.REG');
  1151. if EXISTS(szTemp2)
  1152. {
  1153.    SetValue(szTemp, 'REGEDIT /S ');
  1154.    strcat(szTemp, szTemp2);
  1155.    WinExec (nResult,szTemp,SW_HIDE);
  1156.  
  1157.    PathCat(szTemp,pathSNAP,szSNAPAppName);
  1158.  
  1159.    # HKEY_CLASSES_ROOT\CLSID\{1B46B1A1-6F12-101B-8432-0000C083742D}\LocalServer = c:\snap\abcsnap.exe
  1160.    RegSetValue('CLSID\\{1B46B1A1-6F12-101B-8432-0000C083742D}\\LocalServer', szTemp);
  1161.    #HKEY_CLASSES_ROOT\ABCSnap\protocol\StdFileEditing\server = c:\snap\abcsnap.exe
  1162.    RegSetValue('ABCSnap\\protocol\\StdFileEditing\\server', szTemp);
  1163.  
  1164.    #HKEY_CLASSES_ROOT\ABCSnap\shell\print\command = C:\SNAP\ABCSNAP.EXE /p %1
  1165.    PathCat(szTemp,pathSNAP,szSNAPAppName);
  1166.    strcat(szTemp,  ' /p %%1');
  1167.    RegSetValue('ABCSnap\\shell\\print\\command', szTemp);
  1168.  
  1169.    #HKEY_CLASSES_ROOT\ABCSnap\shell\open\command = C:\SNAP\SNAP.EXE %1
  1170.    PathCat(szTemp,pathSNAP,szSNAPAppName);
  1171.    strcat(szTemp,  ' %%1');
  1172.    RegSetValue('ABCSnap\\shell\\open\\command', szTemp);
  1173.  
  1174.    # HKEY_CLASSES_ROOT\CLSID\{1B46B1A1-6F12-101B-8432-0000C083742D}\DefaultIcon = c:\snap\snap.exe,0
  1175.    PathCat(szTemp,pathSNAP,szSNAPAppName);
  1176.    strcat(szTemp, ',0');
  1177.    RegSetValue('CLSID\\{1B46B1A1-6F12-101B-8432-0000C083742D}\\DefaultIcon', szTemp);
  1178. }
  1179.  
  1180. [AddViewerIni] ()
  1181. PathCat(szTemp, pathWindows, 'ABC.INI');
  1182. SetValue(szSectionName, 'ABC Viewer');
  1183.  
  1184. GetSelectCount (nCount,'pkgABCView','','');
  1185. if GT (nCount,0)
  1186. {
  1187.    SetProfileString (szSectionName,'LastChartDir',pathABCNode, szTemp);
  1188.    SoftSetProfileString (szSectionName,'IndexCurrDir',pathABCTUTOR, szTemp);
  1189.  
  1190.    GetSelectCount (nCount,'pkgABCSamples','','');
  1191.    if GT (nCount,0)
  1192.      {
  1193.      SetProfileString (szSectionName,'LastChartDir',pathABCSAMPLE, szTemp);
  1194.      SoftSetProfileString (szSectionName,'LastLogoDir',pathABCSAMPLE, szTemp);
  1195.      }
  1196.  
  1197.     SoftSetProfileString (szSectionName,'AppMaximized', 'true', szTemp);
  1198.     SoftSetProfileString (szSectionName,'PaletteOn', 'true', szTemp);
  1199.     SoftSetProfileString (szSectionName,'NoteOn', 'false', szTemp);
  1200.     SoftSetProfileString (szSectionName,'IndexOn', 'false', szTemp);
  1201.     SoftSetProfileString (szSectionName,'RulersOn', 'true', szTemp);
  1202.     SoftSetProfileString (szSectionName,'ShapeSizing', '0', szTemp);
  1203.     SoftSetProfileString (szSectionName,'DoubleClick', '0', szTemp);
  1204.     SoftSetProfileString (szSectionName,'CtrlDblClick', '1', szTemp);
  1205.     SoftSetProfileString (szSectionName,'IndexUseCurrDir', 'true', szTemp);
  1206.     SoftSetProfileString (szSectionName,'IndexSrchSubDirs', 'false', szTemp);
  1207.     SoftSetProfileString (szSectionName,'IndexView', '0', szTemp);
  1208.     SoftSetProfileString (szSectionName,'Files', '64', szTemp);
  1209.     SoftSetProfileString (szSectionName,'RulerSnap', 'true', szTemp);
  1210.     SoftSetProfileString (szSectionName,'SnapResolution', '0', szTemp);
  1211.     SoftSetProfileString (szSectionName,'GuidelineRange', '75', szTemp);
  1212.  
  1213.     SetProfileString (szSectionName,'RuleMeasure', NULL, szTemp);
  1214.     SetProfileString (szSectionName,'IndexFont', NULL, szTemp);
  1215.     SetProfileString (szSectionName,'HorzLineSpacing', NULL, szTemp);
  1216.     SetProfileString (szSectionName,'VertLineSpacing', NULL, szTemp);
  1217. }
  1218.  
  1219.  
  1220. [RegDAOLE] ()
  1221. # register the ABC PA OLE 1.0 server
  1222. PathCat(szTemp2,pathDATA,'ABCDATA.REG');
  1223. SetValue(szTemp, 'REGEDIT /S ');
  1224. strcat(szTemp, szTemp2);
  1225. WinExec (nResult,szTemp,SW_HIDE);
  1226.  
  1227. # fix up all the paths
  1228. PathCat(szTemp,pathDATA,'abcdata.exe %%1');
  1229. RegSetValue("ABCData\\shell\\open\\command", szTemp);
  1230. PathCat(szTemp,pathDATA,'abcdata.exe /p %%1');
  1231. RegSetValue("ABCData\\shell\\print\\command", szTemp);
  1232. PathCat(szTemp,pathDATA,'abcdata.exe');
  1233. RegSetValue("ABCData\\protocol\\StdFileEditing\\server", szTemp);
  1234. PathCat(szTemp,pathDATA,'abcdhnd.dll');
  1235. RegSetValue("ABCData\\protocol\\StdFileEditing\\handler", szTemp);
  1236.  
  1237. [RegFlowOLE] ()
  1238. # register the ABC PA OLE 1.0 server
  1239. PathCat(szTemp2,pathABC,'ABCFLOW.REG');
  1240. SetValue(szTemp, 'REGEDIT /S ');
  1241. strcat(szTemp, szTemp2);
  1242. WinExec (nResult,szTemp,SW_HIDE);
  1243.  
  1244. # fix up all the paths
  1245. PathCat(szTemp,pathABC,'abcflow.exe %%1');
  1246. RegSetValue("ABCFlow\\shell\\open\\command", szTemp);
  1247. PathCat(szTemp,pathABC,'abcflow.exe /p %%1');
  1248. RegSetValue("ABCFlow\\shell\\print\\command", szTemp);
  1249. PathCat(szTemp,pathABC,'abcflow.exe');
  1250. RegSetValue("ABCFlow\\protocol\\StdFileEditing\\server", szTemp);
  1251.