home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 6 / 06.iso / b / b010 / 1.ddi / BOOKMK.MS_ / BOOKMK.bin
Encoding:
Text File  |  1994-05-18  |  9.3 KB  |  314 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. DECLARE FUNCTION AddFontResource LIB "GDI" (szFont$) AS INTEGER
  6. DECLARE FUNCTION SendMessage& LIB "USER" (hwnd%,msg%,wparam%,lparam AS ANY)
  7. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%, iShow%) AS INTEGER
  8. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  9.  
  10. '$DEFINE DEBUG  ''Define for script development/debugging
  11.  
  12. '$INCLUDE 'setupapi.inc'
  13. '$INCLUDE 'msdetect.inc'
  14.  
  15. ''Dialog ID's
  16. CONST WELCOME       = 100
  17. CONST ASKQUIT       = 200
  18. CONST DESTPATH      = 300
  19. CONST EXITFAILURE   = 400
  20. CONST EXITQUIT      = 600
  21. CONST EXITSUCCESS   = 700
  22. CONST OPTIONS       = 800
  23. CONST APPHELP       = 900
  24. CONST CHECK        = 2500
  25. CONST BADPATH       = 6400
  26.  
  27. '' these constants for windows maximize
  28. CONST WS_VISIBLE = &H10000000
  29. CONST WS_BORDER = &H00800000
  30. CONST WS_CLIPCHILDREN = &H02000000
  31. CONST GWL_STYLE = -16
  32. CONST SW_SHOWMAXIMIZED = 3
  33.  
  34. ''Bitmap ID
  35. CONST LOGO = 1
  36.  
  37. 'GLOBAL CONST HWND_BROADCAST = &Hffff
  38. 'GLOBAL CONST WM_FONTCHANGE = &H1d
  39.  
  40. GLOBAL DEST$        ''Default destination directory.
  41. GLOBAL OPTCUR$      ''Option selection from option dialog.
  42. GLOBAL CHECKSTATES$
  43.  
  44. DECLARE SUB Install
  45. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  46.  
  47. INIT:
  48.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  49.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  50.  
  51.     SetBitmap CUIDLL$, LOGO
  52.     SetTitle "╖║╤╟╝»│╔░∞╣½╧╡═│░▓╫░"
  53.  
  54.  
  55.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  56.     IF szInf$ = "" THEN
  57.         szInf$ = GetSymbolValue("STF_CWDDIR") + "BOOKMK.INF"
  58.     END IF
  59.     ReadInfFile szInf$
  60.  
  61.     OPTCUR$ = "1"
  62.     DEST$ = "C:\PANASIA"
  63.     CHECKSTATES$ = "ON"
  64.  
  65. '$IFDEF DEBUG
  66.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  67.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  68.     IF IsDriveValid(WinDrive$) = 0 THEN
  69.         i% = DoMsgBox("Windows ╟²╢»╞≈ ('"+WinDrive$+"') ▓╗╩╟║╧╖¿╟²╢»╞≈.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  70.         GOTO QUIT
  71.     END IF
  72. '$ENDIF ''DEBUG
  73.  
  74.     hWnd% = HwndFrame()
  75.     il& = SetWindowLong(hWnd%, GWL_STYLE, WS_VISIBLE + WS_BORDER + WS_CLIPCHILDREN)
  76.     jl% = ShowWindow(hWnd%, SW_SHOWMAXIMIZED)
  77.  
  78. WELCOME:
  79.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  80.     IF sz$ = "CONTINUE" THEN
  81.         UIPop 1
  82.     ELSE
  83.         GOSUB ASKQUIT
  84.         GOTO WELCOME
  85.     END IF
  86.  
  87. OPTION:
  88.     SetSymbolValue "RadioDefault", OPTCUR$
  89. OPTL1:
  90.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  91.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  92.  
  93.     IF sz$ = "CONTINUE" THEN
  94.         UIPop(1)
  95.     ELSEIF sz$ = "REACTIVATE" THEN
  96.         GOTO OPTL1
  97.     ELSE
  98.         GOSUB ASKQUIT
  99.         GOTO OPTION
  100.     END IF
  101.  
  102. IF OPTCUR$ <> "1" THEN
  103.     CHECKSTATES$ = "OFF"
  104.     GOTO GETPATH
  105. END IF
  106.  
  107. FONT:
  108.     AddListItem "CheckItemsIn", CHECKSTATES$
  109. CHK1:
  110.     sz$ = UIStartDlg(CUIDLL$, CHECK, "FCheckDlgProc", APPHELP, HELPPROC$)
  111.     CHECKSTATES$ = GetListItem("CheckItemsOut",1)
  112.  
  113.     IF sz$ = "CONTINUE" THEN
  114.         UIPop(1)
  115.     ELSEIF sz$ = "REACTIVATE" THEN
  116.         GOTO CHK1
  117.     ELSEIF sz$ = "BACK" THEN
  118.        UIPop 1
  119.         GOTO OPTL1
  120.     ELSE
  121.         GOSUB ASKQUIT
  122.         GOTO CHK1
  123.     END IF
  124.  
  125. 'CreateIniKeyValue "WIN.INI", "PanAisa", "Check", CHECKSTATES$, cmoOverwrite
  126.  
  127. GETPATH:
  128.     SetSymbolValue "EditTextIn", DEST$
  129.     SetSymbolValue "EditFocus", "END"
  130. GETPATHL1:
  131.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  132.     DEST$ = GetSymbolValue("EditTextOut")
  133.  
  134.     IF sz$ = "CONTINUE" THEN
  135.         IF IsDirWritable(DEST$) = 0 THEN
  136.             GOSUB BADPATH
  137.             GOTO GETPATHL1
  138.         END IF
  139.         UIPop 1
  140.     ELSEIF sz$ = "REACTIVATE" THEN
  141.         GOTO GETPATHL1
  142.     ELSEIF sz$ = "BACK" THEN
  143.         UIPop 1
  144.         IF OPTCUR$ = "1" THEN
  145.             GOTO CHK1
  146.         ELSE
  147.             GOTO OPTL1
  148.         END IF
  149.     ELSE
  150.         GOSUB ASKQUIT
  151.         GOTO GETPATH
  152.     END IF
  153.  
  154.  
  155.     Install
  156.  
  157.  
  158. QUIT:
  159.     ON ERROR GOTO ERRQUIT
  160.  
  161.     IF ERR = 0 THEN
  162.         dlg% = EXITSUCCESS
  163.     ELSEIF ERR = STFQUIT THEN
  164.         dlg% = EXITQUIT
  165.     ELSE
  166.         dlg% = EXITFAILURE
  167.     END IF
  168. QUITL1:
  169.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  170.     IF sz$ = "REACTIVATE" THEN
  171.         GOTO QUITL1
  172.     END IF
  173.     UIPop 1
  174.  
  175.     END
  176.  
  177. ERRQUIT:
  178.     i% = DoMsgBox("░▓╫░┼╠╬─╝■│÷┤φú¼╟δ╙δ╧·╩█╔╠┴¬╧╡!", "░▓╫░╨┼╧ó", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  179.     END
  180.  
  181.  
  182.  
  183. BADPATH:
  184.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  185.     IF sz$ = "REACTIVATE" THEN
  186.         GOTO BADPATH
  187.     END IF
  188.     UIPop 1
  189.     RETURN
  190.  
  191.  
  192.  
  193. ASKQUIT:
  194.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  195.  
  196.     IF sz$ = "EXIT" THEN
  197.         UIPopAll
  198.         ERROR STFQUIT
  199.     ELSEIF sz$ = "REACTIVATE" THEN
  200.         GOTO ASKQUIT
  201.     ELSE
  202.         UIPop 1
  203.     END IF
  204.     RETURN
  205.  
  206. '**
  207. '** Purpose:
  208. '**     Builds the copy list and performs all installation operations.
  209. '** Arguments:
  210. '**     none.
  211. '** Returns:
  212. '**     none.
  213. '*************************************************************************
  214. SUB Install STATIC
  215.  
  216.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  217.     CreateDir DEST$, cmoNone
  218.  
  219.     szSysDir$ = GetWindowsSysDir()
  220.     IF szSysDir$ = "" THEN
  221.         szSysDir$ = GetWindowsDir()
  222.     END IF
  223.  
  224.  
  225.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  226.     WriteToLogFile ""
  227.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  228.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  229.     WriteToLogFile ""
  230.     WriteToLogFile "May have had to create the directory: " + DEST$
  231.     WriteToLogFile ""
  232.  
  233.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  234.     IF CHECKSTATES$ = "ON" THEN
  235.     AddSectionFilesToCopyList "Options", SrcDir$, szSysDir$
  236.     END IF
  237.  
  238.     CopyFilesInCopyList
  239.  
  240. '    CreateIniKeyValue "WIN.INI", "PanAisa", "Options", OPTCUR$, cmoOverwrite
  241. '    CreateIniKeyValue "WIN.INI", "PanAisa", "Check", CHECKSTATES$, cmoOverwrite
  242.  
  243.     IF CHECKSTATES$ = "ON" THEN
  244.     res%=AddFontResource("ZY.FOT")
  245. '    res%=AddFontResource("DLSIMHEI.FOT")
  246. '    res%=AddFontResource("DLSIMSUN.FOT")
  247.     res%=AddFontResource("FZY.FOT")
  248.     res%=AddFontResource("SIMHEI.FOT")
  249.     res%=AddFontResource("SIMSUN.FOT")
  250.     res%=AddFontResource("FHP.FOT")
  251.     res%=AddFontResource("WB.FOT")
  252. '    res%=AddFontResource("XST.FOT")
  253.     res%=AddFontResource("XBS.FOT")
  254.     res%=AddFontResource("XK.FOT")
  255. '    OK=SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0)
  256.     OK=SendMessage(65535,29,0,0)
  257.     CreateIniKeyValue "WIN.INI", "fonts", "║┌╠σ (TrueType)", "SIMHEI.FOT", cmoOverwrite
  258.     CreateIniKeyValue "WIN.INI", "fonts", "╦╬╠σ (TrueType)", "SIMSUN.FOT", cmoOverwrite
  259.     CreateIniKeyValue "WIN.INI", "fonts", "╬║▒« (TrueType)", "WB.FOT", cmoOverwrite
  260.     CreateIniKeyValue "WIN.INI", "fonts", "╨╨┐¼ (TrueType)", "XK.FOT", cmoOverwrite
  261.     CreateIniKeyValue "WIN.INI", "fonts", "╖▒╫█╥╒ (TrueType)", "FZY.FOT", cmoOverwrite
  262.     CreateIniKeyValue "WIN.INI", "fonts", "╖▒τ·τΩ (TrueType)", "FHP.FOT", cmoOverwrite
  263.     CreateIniKeyValue "WIN.INI", "fonts", "╫╝╘░╠σ (TrueType)", "ZY.FOT", cmoOverwrite
  264.     CreateIniKeyValue "WIN.INI", "fonts", "╨í▒Ω╦╬ (TrueType)", "XBS.FOT", cmoOverwrite
  265.     END IF
  266.  
  267.  
  268.     IF OPTCUR$ = "1" THEN
  269.     CreateProgmanGroup "╖║╤╟╝»│╔░∞╣½╧╡═│", "", cmoNone
  270.     ShowProgmanGroup  "╖║╤╟╝»│╔░∞╣½╧╡═│", 1, cmoNone
  271.     CreateProgmanItem "╖║╤╟╝»│╔░∞╣½╧╡═│", "BookMaker╬─╩Θ▒α┼┼╧╡═│", MakePath(DEST$,"bookmakr.exe"), "", cmoOverwrite
  272.     CreateProgmanItem "╖║╤╟╝»│╔░∞╣½╧╡═│", "MagzMaker═╝╬─╗∞┼┼╧╡═│", MakePath(DEST$,"magzmakr.exe"), "", cmoOverwrite
  273.     CreateProgmanItem "╖║╤╟╝»│╔░∞╣½╧╡═│", "Table▒φ╕±▒α┼┼╧╡═│", MakePath(DEST$,"Table.exe"), "", cmoOverwrite
  274.     CreateProgmanItem "╖║╤╟╝»│╔░∞╣½╧╡═│", "╦╡├≈╩Θ", MakePath(DEST$,"bookmakr.exe readme.bmk"), "", cmoOverwrite
  275.     ELSE
  276.     CreateProgmanGroup "PanaOffice for Windows", "", cmoNone
  277.     ShowProgmanGroup  "PanaOffice for Windows", 1, cmoNone
  278.     CreateProgmanItem "PanaOffice for Windows", "BookMaker", MakePath(DEST$,"bookmakr.exe"), "", cmoOverwrite
  279.     CreateProgmanItem "PanaOffice for Windows", "MagzMaker", MakePath(DEST$,"magzmakr.exe"), "", cmoOverwrite
  280.     CreateProgmanItem "PanaOffice for Windows", "Table", MakePath(DEST$,"Table.exe"), "", cmoOverwrite
  281.     CreateProgmanItem "PanaOffice for Windows", "BookMaker", MakePath(DEST$,"bookmakr.exe readme.bmk"), "", cmoOverwrite
  282.     END IF
  283.  
  284.     ''AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  285.  
  286.     CloseLogFile
  287.  
  288. END SUB
  289.  
  290.  
  291.  
  292. '**
  293. '** Purpose:
  294. '**     Appends a file name to the end of a directory path,
  295. '**     inserting a backslash character as needed.
  296. '** Arguments:
  297. '**     szDir$  - full directory path (with optional ending "\")
  298. '**     szFile$ - filename to append to directory
  299. '** Returns:
  300. '**     Resulting fully qualified path name.
  301. '*************************************************************************
  302. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  303.     IF szDir$ = "" THEN
  304.         MakePath = szFile$
  305.     ELSEIF szFile$ = "" THEN
  306.         MakePath = szDir$
  307.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  308.         MakePath = szDir$ + szFile$
  309.     ELSE
  310.         MakePath = szDir$ + "\" + szFile$
  311.     END IF
  312. END FUNCTION
  313.  
  314.