home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1998 April A
/
Pcwk4a98.iso
/
Lotus
/
Domino46
/
INSTALL.DSK
/
CALLBACK.LSS
< prev
next >
Wrap
Text File
|
1997-09-18
|
122KB
|
3,668 lines
''*********************************************************************
''
'' Module Name: cominst\toolkit\callback.lss
''
'' Module Code: COMINST
''
'' Author: Dave Dupre
''
'' Creation Date: Wednesday January 5, 1994
''
'' Copyright Lotus Development Corporation, (c) 1994
''
''
'' Description:
''
''
'' Additional authors: MZ
''
'' Change History:
'' $Log:
''
'' Rev 1.162.1.0 Oct 19 1995 13:54:24 cmoy
'' merged fe3 to fe5
''
'' Rev 1.162 28 Sep 1995 10:26:40 amontalv
'' Changed how the default folder is gotten to allow clients to change it when they
'' change default program group name. This broke when I changed the UI for folders.
''
'' Rev 1.161 27 Sep 1995 16:40:52 amontalv
'' Don't allow entries of illegal characters or blank fields for program folders.
''
'' Rev 1.160 26 Sep 1995 13:01:48 amontalv
'' Having problem redisplaying item that was previously clicked on after clicking on
'' tab, so reset gPrevInst% when you click on tab.
''
'' Rev 1.159 26 Sep 1995 12:40:00 amontalv
'' Changed check for invalid characters.
''
'' Rev 1.158 25 Sep 1995 17:45:42 amontalv
'' Added code to check for valid folder item. If invalid do not allow user to
'' change selection or hit okay.
''
'' Rev 1.157 Sep 25 1995 10:58:40 cmoy
'' Fixed declaration errors
''
'' Rev 1.156 22 Sep 1995 16:44:24 tveerapp
'' Fixed spr# LSCR2VZVGB. GETLOTUSAPPDIRCB changes.
''
'' Rev 1.155 22 Sep 1995 15:07:12 jdonohue
'' Remove SYM_LOTUSUSERDIR$ processing
''
'' Rev 1.154 22 Sep 1995 12:17:10 amontalv
'' Check for focus before making change to Program Folder entry in tree from edit line.
''
'' Rev 1.153 21 Sep 1995 15:40:10 amontalv
'' Fixed notebook focus issues. Had to call text1 and bitmap window directly.
'' Also changed check for updating these.
''
'' Rev 1.152 21 Sep 1995 09:33:56 jdonohue
'' Disable browse buttons 2 and 3 for a language install
''
'' Rev 1.151 20 Sep 1995 13:38:08 glutz
'' CUSTOM2CB disables the path change button if the selected component
'' belongs in the component dir.
''
'' Rev 1.150 19 Sep 1995 15:30:00 amontalv
'' After creating new folder, put focus in edit box.
''
'' Rev 1.149 Sep 14 1995 18:30:06 cmoy
'' fixed focus problem (Mak Inada)
''
'' Rev 1.148 14 Sep 1995 12:26:20 cmoy
'' fixed folder to foldername
''
'' Rev 1.147 13 Sep 1995 16:31:34 amontalv
'' Resourced New folder name.
''
'' Rev 1.146 13 Sep 1995 16:26:36 amontalv
'' Changed processing for program folder input dialog.
''
'' Rev 1.145 07 Sep 1995 15:21:50 amontalv
'' Added check to make sure folders names are not blank.
''
'' Rev 1.144 05 Sep 1995 16:39:26 amontalv
'' Added logic to get readnet.txt out of temp directory if it exists.
''
'' Rev 1.143 31 Aug 1995 15:09:22 callanan
'' Displaying tip in custom dlg using the setsymbol, to avoid losing bitmap. Also added param to SetCustomInfo
''
'' Rev 1.142 29 Aug 1995 08:29:10 jdonohue
'' Changed symbol of USERDIR to LOTUSUSERDIR
''
'' Rev 1.141 25 Aug 1995 14:22:56 amontalv
'' Always calculate size when item gets clicked.
''
'' Rev 1.140 24 Aug 1995 07:55:18 jdonohue
'' Added SYM_USERDIR and set it
''
'' Rev 1.139 23 Aug 1995 15:33:14 cmoy
'' Moved MAX_NO_DRIVECOMBOS to toolkit.lss
''
'' Rev 1.138 21 Aug 1995 14:24:48 tveerapp
'' Made MAX_NO_DRIVECOMBOS a POUBLIC CONST.
''
'' Rev 1.137 18 Aug 1995 17:27:44 tveerapp
'' Fixed ResetWinWinSys to fix spr#JHAE2V7UNL.(This involved backing out
'' Jdonahue's change on July29.)
''
'' Rev 1.136 18 Aug 1995 16:38:24 glutz
'' Took out a print statement.
''
'' Rev 1.135 18 Aug 1995 16:35:54 glutz
'' Had to make sure SetCustomInfo does not enable IDC_B1 if it is not
'' visible.
''
'' Rev 1.134 18 Aug 1995 11:13:34 callanan
'' If item in custom dlg has no bmp set ID_BMP1 to null string, this will cause
'' the bitmap symbol handler to clear out the old bmp.
''
'' Rev 1.133 17 Aug 1995 14:16:54 callanan
'' Changed the default way to handle bitmaps in dialogs
''
'' Rev 1.132 14 Aug 1995 10:35:00 callanan
'' Changed CUSTOM2CB to only display bitmap once when select
''
'' Rev 1.131 11 Aug 1995 10:44:16 jdonohue
'' Disable path change for server language install
''
'' Rev 1.130 08 Aug 1995 17:03:06 tveerapp
'' Added the browse functionality to GETLOTUSAPPDIRCB.
''
'' Rev 1.129 08 Aug 1995 16:18:54 glutz
'' Had to make sure in sizeofinstallcb the edit boxes only get validated
'' if they exist.
''
'' Rev 1.128 07 Aug 1995 08:28:24 mmeth
'' Part 2 of fix for SPR# JHOH2M4HZL:
'' In WELCOMECB changed the length of the truncations from 30 to 80.
''
'' Rev 1.127 05 Aug 1995 15:51:36 tveerapp
'' Removed a space that was put in when the second path was being validated
'' in SIZEOFINSTALLCB.
''
'' Rev 1.126 05 Aug 1995 15:05:12 tveerapp
'' Fixed an spr. Changed SIZEOFINSTALLCB. For server components dir use
'' IDC_EDIT3 and IDC_COMBO3 to be consistent with the dialog templates.
''
'' Rev 1.125 04 Aug 1995 16:39:30 glutz
'' ParentDirCB and SizeofInstallCB always start out with dirchanged true.
''
'' Rev 1.124 04 Aug 1995 11:15:06 jdonohue
'' Don't allow user path changes for a language install
''
'' Rev 1.123 01 Aug 1995 16:01:30 glutz
'' Commented out 4 lines in SetCustomInfo so paths would show for tabs in
'' server install.
''
'' Rev 1.122 30 Jul 1995 07:51:20 glutz
'' Added unc paths to Lot_SetSpaceDirTip.
''
'' Rev 1.121 29 Jul 1995 17:44:12 jdonohue
'' Set WINDIR and WINSYSDIR back to defaults if change from server to other
''
'' Rev 1.120 29 Jul 1995 15:39:08 jdonohue
'' PARENTDIRCB set dirChanged to true always for server since we fiddle with
'' drives list
''
'' Rev 1.119 28 Jul 1995 16:47:56 pdonahue
'' modified sizeofinstall in case of server to use IDC_Edit3 for lotusapp.
''
'' Rev 1.118 27 Jul 1995 13:00:04 amontalv
'' Changed the program manager group name to not do certain check if we
'' are in Win95.
''
'' Rev 1.117 26 Jul 1995 10:36:52 pdonahue
'' added error message for invalid folder name in case of win95 install.
''
'' Rev 1.116 25 Jul 1995 12:43:10 jdonohue
'' Grey out change path when on tab and item not selected
''
'' Rev 1.115 20 Jul 1995 15:52:00 glutz
'' SetCustomInfo now calls GetFreeSpaceForDrive every time a tab changes.
''
'' Rev 1.114 20 Jul 1995 10:55:24 glutz
'' GetFreeSpaceForDrive now returns K bytes so I made changes accordingly.
''
'' Rev 1.113 17 Jul 1995 16:39:44 glutz
'' Callback functions that have browse buttons now call ValidateBrowse if
'' IDC_BROWSE is the callback message.
''
'' Rev 1.112 17 Jul 1995 13:17:30 amontalv
'' Added check to see if current folder existed after the removal of a folder.
'' If the folder exists then the Remove Folder button must be disabled, which it
'' is, but the focus must be moved off this disabled button. This part was
'' missing and I added it here.
''
'' Rev 1.111 14 Jul 1995 14:50:08 glutz
'' SetCustomInfo had wrong return val type for call to LcbGetChapterCost.
''
'' Rev 1.110 11 Jul 1995 12:04:56 glutz
'' In CUSTOM1CB if it's a server install IDC_TEXT4 and IDC_B1 are hidden
'' and IDC_TEXT8 is made visible.
''
'' Rev 1.109 11 Jul 1995 08:53:08 glutz
'' Disable IDC_B1 in CUSTOM1CB when the control is hidden.
''
'' Rev 1.108 10 Jul 1995 15:02:16 glutz
'' Set IDC_TEXT2 after browse in DISTSIZEINSTALLCB.
''
'' Rev 1.107 05 Jul 1995 14:24:52 amontalv
'' Added test to check if path already exists before accepting it on New Folder.
''
'' Rev 1.106 30 Jun 1995 22:11:14 amontalv
'' Added code to display Current Folder in Select Folder dialog. And ended up adding
'' a hack to allow me to display this when the dialog first comes up.
''
'' Rev 1.105 30 Jun 1995 10:49:20 glutz
'' Straightend out some problems with second path in sizeofinstallcb.
''
'' Rev 1.104 29 Jun 1995 11:47:28 jdonohue
'' Took out print statement
''
'' Rev 1.103 28 Jun 1995 19:57:30 amontalv
'' Changed the possible length of program group from 30 to 254 characters.
''
'' Rev 1.102 28 Jun 1995 19:49:22 amontalv
'' Added check to make sure you couldn't create a folder
'' with just spaces.
''
'' Rev 1.101 26 Jun 1995 19:06:28 amontalv
'' Added check for length of path for folders.
''
'' Rev 1.100 22 Jun 1995 16:44:12 glutz
'' SIZEOFINSTALLCB has to differentiate between dirChanged and dischanged2.
''
'' Rev 1.99 22 Jun 1995 15:30:08 tveerapp
'' Changed WELCOMECB. case IDC_BACK (which is called when the esc. key is hit).
'' Allow the user to quit from the Welcome dialog when the esc. key is hit.
''
'' Rev 1.98 22 Jun 1995 10:21:56 pdonahue
'' fixed merge error
''
'' Rev 1.97 22 Jun 1995 09:31:06 pdonahue
'' fixed bug in additional directory code,
''
'' Rev 1.96 21 Jun 1995 14:28:46 glutz
'' Simplified UNC and browse validations in callbacks
''
'' Rev 1.95 19 Jun 1995 10:25:36 amontalv
'' Put in code to add function to New Folder button and Remove Folder button. Also
'' fixed some of the selection problems in the tree list.
''
'' Rev 1.94 16 Jun 1995 13:53:36 glutz
'' Don't set drvIndex if SelectDriveCombo returns false
''
'' Rev 1.93 16 Jun 1995 11:50:02 amontalv
'' Made program groups list box get entries form Common Program Groups instead of
'' Current user program groups. Also made it so that it would be easier to display
'' both if necessary.
''
'' Rev 1.92 14 Jun 1995 22:12:10 amontalv
'' Gave program folder a new look.
''
'' Rev 1.91 14 Jun 1995 16:31:38 amontalv
'' Fixed problem with 1 Program Groups. Look through the registry for
'' program groups and display them for the user. Most of the code
'' is in C in lotusui.c. Put calls to registry functions in regwrap.
''
'' Rev 1.90 12 Jun 1995 17:40:36 cmoy
'' fixed bug in changing paths
''
'' Rev 1.89 12 Jun 1995 14:36:54 amontalv
'' SPR KHAN2SSMDL - Resourced name of program group and added to end.
''
'' Rev 1.88 09 Jun 1995 16:41:04 glutz
'' Fixed bug with browse not chaging drive letter
''
'' Rev 1.87 07 Jun 1995 20:59:26 amontalv
'' Moved setting of Tree item around so that it would be set correctly
''
'' Rev 1.86 07 Jun 1995 17:51:28 amontalv
'' Don't set the selected folder again at OK of callback.
''
'' Rev 1.85 07 Jun 1995 16:30:34 amontalv
'' Changed the Win95 start folder so that it initializes
'' earlier in the program. This should make automation
'' easier to implement for it. There are still a couple of
'' bugs that I need to work out, but I feel that I should
'' check what I have now.
''
'' Rev 1.84 02 Jun 1995 14:51:06 tveerapp
'' Changed IDC_HELP to IDC_CITHELP.
''
'' Rev 1.83 01 Jun 1995 11:10:44 amontalv
'' Added API function CreateLink to create shortcuts. Also added functions
'' to save and get the link path to support the CreateLink. I also changed
'' the startup program folder code to use the default dialog proc and changed
'' the default dialog proc to process directory trees.
''
'' Rev 1.82 30 May 1995 15:03:40 amontalv
'' Needed to lower case drive letter before looking for cost.
''
'' Rev 1.81 25 May 1995 20:54:56 amontalv
'' Added Win95 Program folder dialog and supporting code. Still need to write code
'' that creates the link files.
''
'' Rev 1.80 22 May 1995 19:19:06 mzgripce
'' delete print messages
''
'' Rev 1.79 21 May 1995 17:21:28 mzgripce
'' display the DB_SIZEOFINSTALL# depending on components support and
'' set the components symbol when SIZEOFINSTALLCB runs
''
'' Rev 1.78 20 May 1995 20:11:12 glutz
'' Added UNC and Browse to DISTSIZEOFINSTALLCB and NODENODEOPTIONSCB
''
'' Rev 1.77 19 May 1995 18:20:26 glutz
'' SIZEOFINSTALLCD now supports Browse and UNC in multiple
'' Combo and Edit controls
''
'' Rev 1.76 19 May 1995 14:58:48 glutz
'' Added UNC and Browse to PARENTDIRCB
''
'' Rev 1.75 18 May 1995 12:11:26 tveerapp
'' Fixed a Numdirs% in sizeofinstallcb
''
'' Rev 1.74 18 May 1995 12:05:24 tveerapp
'' 1. Added call to SetTheComponentsDir to PARENTDIRCB.
'' 2. Fixed SIZEOFINSTALLCB added check for extra directory.
''
'' Rev 1.73 17 May 1995 15:11:44 mzgripce
'' change >= with > in GetListLength in SIZEOFINSTALLCB
''
'' Rev 1.72 16 May 1995 17:09:32 glutz
'' Changed USE to AUTOMATE
''
'' Rev 1.71 16 May 1995 12:53:00 mzgripce
'' added PARENTDIRCB subroutine
''
'' Rev 1.70 16 May 1995 11:57:50 glutz
'' Added UNC paths to CHANGEPRODUCTDIRCB, SIZEOFINSTALLCB and SetCustomInfo
''
'' Rev 1.69 16 May 1995 09:47:54 pdonahue
'' fixed typo
''
'' Rev 1.68 16 May 1995 09:39:04 pdonahue
'' added support for additional directories.
''
'' Rev 1.67 03 May 1995 13:04:58 amontalv
'' Upped the number of tabs from 8 to 9.
''
'' Rev 1.66 02 May 1995 12:52:30 cmoy
'' Merged c2 into cf build
''
'' Rev 1.68 18 Apr 1995 17:31:04 mheerman
'' SetFocus now returns a long. I changed the variables which catch its
'' return value to long to avoid an overflow.
''
'' Rev 1.67 11 Apr 1995 14:23:02 amontalv
'' Deleted debug print
''
'' Rev 1.66 07 Apr 1995 19:35:44 amontalv
'' LSS 32 bit port merge changes.
''
'' Rev 1.65 06 Apr 1995 17:43:28 tveerapp
'' Script port changes to CBs and Window calls.
''
'' Rev 1.64 05 Apr 1995 20:21:18 amontalv
'' Porting to 32 bit.
''
'' Rev 1.63 02 Feb 1995 14:32:40 cmoy
''
'' Added Thangaraj's fix to Pipeline Problem
''
'' Rev 1.62 29 Dec 1994 10:31:08 tveerapp
''
'' Commented out the Restart processing (IDC_CONTINUE) in INSTALLCOMPLETECB.
''
'' Rev 1.61 09 Dec 1994 14:38:38 cmoy
'' No change.
''
'' Rev 1.60 06 Dec 1994 09:48:00 cmoy
'' No change.
''
'' Rev 1.59 18 Nov 1994 16:12:56 amontalv
'' Japan DBCS: Added some resources to
''
'' Rev 1.58 14 Oct 1994 11:40:12 tveerapp
'' Fixed spr#1022903. The fix is in SRVNODEOPTIONSCB.
''
'' Rev 1.57 11 Oct 1994 15:21:20 tveerapp
''
'' Added check to see if the prod. was not deselected to account
'' for the min. and max size in SIZEOFINSTALLCB. This fixes spr#
'' 32162.
''
'' Rev 1.56 30 Sep 1994 14:48:20 cmoy
'' Added InvChar("(") to the list of invalid chars.
''
'' Rev 1.55 27 Sep 1994 14:07:44 cmoy
''
'' Changed find window inside INSTALLCOMPLETECB to use resourced
'' string SID_INST_WINDOW_TITLE
'' the WndTitle field in install.lst must match this field for reboot
'' and restart functionality to work properly.
''
'' Rev 1.54 27 Sep 1994 13:06:22 cmoy
''
'' moved rebooting and restarting constants to toolkit.lss
''
'' Rev 1.53 26 Sep 1994 16:30:00 cmoy
''
'' Added Constant UM_RESTARTWINDOWS=1528
''
'' Rev 1.52 16 Sep 1994 11:53:34 tveerapp
'' Changed ProgmanCB. failed% =1. This change should have been made with
'' the previous change.
''
'' Rev 1.51 15 Sep 1994 16:17:14 tveerapp
'' Changed ProgmangroupCb to accept characters that can be allowed to create
'' program groups. InvChar is now a list.
''
'' Rev 1.50 25 Aug 1994 16:46:22 mzgripce
'' Gray out the Change Path button for win and winsys dir
''
'' Rev 1.49 02 Aug 1994 16:46:52 mzgripce
'' put a check for Lot_IsTheNodeOptionsAvailtoNode() bfore turning
'' the options on in NODENODEOPTIONSCB
''
'' Rev 1.48 24 Jun 1994 11:30:08 thangv
'' Reverted back to using the old value (fixedin lcb.c by james) of
'' Lot_LCBGetItem(..LCBITEM_SELECTED) in SRVNODEOPTIONSCB. The change was in
'' line 1991 and 1999 in the check for the Selection% variable.
''
'' Rev 1.47 21 Jun 1994 13:00:18 thangv
'' Added code(lines 2010 and 2011) to get the groups chapter$. This was not
'' having the right chapter number(had only the options for the group).This
'' should fix the tip not showing up.(spr# 30277).
''
'' Rev 1.46 21 Jun 1994 10:41:20 thangv
'' Added code to CHANGEPRODUCTDIRCB (981-985) to restore the original
'' value of the path if the product group rejects the path in their
'' PathCahnge function.
''
'' Rev 1.45 20 Jun 1994 14:49:36 thangv
'' Changed the value of Selection% being checked in line 1970,1978 in
'' SRVNODEOPTIONSCB to fix spr#31525. Lot_LCBGetItem returns the present state
'' and not after the checkbox has been refreshed.
''
'' Rev 1.44 16 Jun 1994 10:16:42 thangv
''
'' Added code to ungrey IDC_TEXT4 andIDC_TEXT5 in SIZEOFINSTALLCB,
'' lines 1249 and 1250 to fix the bug for organizer(product with only full
'' install and lotusapp support).
''
'' Rev 1.43 08 Jun 1994 17:19:26 thangv
'' The NODENODEOPTIONSCB was not calling the pathchange function for
'' the products. Added the Lot_CallOneProd... function in the callback.
'' This fixes Amipro's problem.
''
'' Rev 1.42 06 Jun 1994 14:09:04 cmoy
'' In SetCustomInfo refreshed the drive space available box more often.
''
'' Rev 1.41 05 Jun 1994 20:11:46 ptilton
'' Added calls to update OracleHomeDir and NotesDataDir Symbols in copylist
''
'' Rev 1.40 02 Jun 1994 12:49:04 thangv
''
'' Removed an extra , in line 1759.
''
'' Rev 1.39 02 Jun 1994 12:43:38 thangv
''
'' Added TrimNetlotusapp code to NODELOTUSAPPCB.
''
'' Rev 1.38 01 Jun 1994 16:54:36 mmeth
'' Check The return code from change path, and don't bring down the
'' dialog, if the calling function returns gBACK
''
'' Rev 1.37 26 May 1994 17:14:12 thangv
''
'' Added a check to ungrey IDC_TEXT3 in SIZEOFINSTALLCB for a simple
'' product (like organizer) that supports only full install.
''
'' Rev 1.36 25 May 1994 14:32:46 cmoy
''
'' removed rebooting feature instead a msg is sent to install.c
''
'' Rev 1.35 18 May 1994 14:56:34 tingmann
'' add SetYieldActive calls around lcb handling
''
'' Rev 1.34 09 May 1994 15:11:36 ddupre
'' Moved RegisterCallback call inside while loop in Custom1cb subroutine. JG
''
'' Rev 1.33 06 May 1994 14:17:56 mzgripce
''
'' change progmancb to work for server
''
'' Rev 1.32 06 May 1994 08:32:38 ddupre
'' Added Lot_LCBSetSel to the SRVNODEOPTIONSCB SUB to select the first lb item
''
'' Rev 1.31 05 May 1994 15:42:50 thangv
'' Fixed the problem with the size of installcb not putting
'' the correct focus on the radio button.
''
'' Rev 1.30 05 May 1994 15:35:22 mzgripce
'' fixed spr #28876
''
'' Rev 1.29 02 May 1994 13:55:26 mmeth
'' Jame's fix for set focus
''
'' Rev 1.27 26 Apr 1994 18:33:14 mzgripce
'' fixed spr 28121
''
'' Rev 1.26 15 Apr 1994 13:15:06 mmeth
'' added space between notepad.exe and readme.txt
''
'' Rev 1.25 13 Apr 1994 14:07:22 cmoy
''
'' Modified callbacks to unbold text.
''
'' Rev 1.24 13 Apr 1994 12:40:20 thangv
'' Removed the extra `character in line 2010.
''
'' Rev 1.23 13 Apr 1994 09:24:02 cmoy
'' Added AUTOEXECCB and INSTALLCOMPLETECB
''
'' Rev 1.22 12 Apr 1994 16:51:10 thangv
'' Changed SIZEOFINSTALLCB: Removed the truncation of lotusapp
'' in the display.Now lotusapp will be displayed.(lines 1033,1034 old
'' code.). Fixed the bug.
''
'' Rev 1.21 31 Mar 1994 10:30:38 thangv
''
'' Size of Install Callback for a single product with no lotusapp
'' was trying to validate lotusappdir. put the check to see if the
'' product supported share. fixed it.
''
'' Rev 1.20 28 Mar 1994 17:10:02 thangv
''
'' resourced Notepad.exe and readnet.txt to SID_NOTEPADEXE and
'' SID_READNETTXT
''
'' Rev 1.19 28 Mar 1994 15:39:46 mzgripce
'' change SIZEOFINSTALLCB to not add lotusapp word to the lotusapp directory for
'' server
''
'' Rev 1.18 28 Mar 1994 14:29:08 mmeth
'' Changes with Christopher, obsoleteing dialosg
''
'' Rev 1.17 28 Mar 1994 10:01:12 mmeth
'' Greying out Change Directory Boutton for Shared Components
''
'' Rev 1.16 25 Mar 1994 14:14:12 mzgripce
'' added getlotusappdircb
''
'' Rev 1.15 15 Mar 1994 12:30:18 jbrodeur
'' Fix Node Inst Error
''
'' Rev 1.14 11 Mar 1994 17:07:26 thangv
''
'' Set the SYM_NETWORK symbol to gDISTRIBUTION and checked
'' to incorporate this WELCOMECB
''
'' Rev 1.13 08 Mar 1994 14:47:22 mmeth
''
'' Hide the path button in custom1cb
''
'' Rev 1.12 08 Mar 1994 14:35:14 mzgripce
'' move ResetWinWinsys... call out of single prod if in SIZEOFINSTALLCB
''
'' Rev 1.11 08 Mar 1994 10:55:28 mmeth
'' fixed the Welcome Box
''
'' Rev 1.10 07 Mar 1994 18:08:38 cmoy
'' Added DISTSIZEINSTALLCB callback
''
'' Rev 1.9 07 Mar 1994 17:56:04 mzgripce
'' make resetWinWinsys SUB public
''
'' Rev 1.8 07 Mar 1994 15:31:12 mzgripce
'' fixed NODENODEDEOPTIONSCB
''
'' Rev 1.7 02 Mar 1994 09:18:14 mzgripce
'' Fixed SRVNODEOPTIONSCB using Reg_ReSet... and counting for customize
''
'' Rev 1.6 01 Mar 1994 11:29:46 mmeth
'' Fixed misspelling in SYM_SMARTSUITE....
''
'' Rev 1.5 01 Mar 1994 10:33:06 mmeth
'' ELSE IF --> ELSEIF
''
'' Rev 1.4 28 Feb 1994 17:21:10 cmoy
'' Added DB_SIZEOFINSTALL6 & 7 for server and standard
'' installs in Lot_GetSizeofInstall
''
'' Rev 1.3 25 Feb 1994 18:37:12 mzgripce
'' add Lot_SetSpaceDirTip(), SRVNODEOPTIONSCB AND NODENODEOPTIONSCB
''
'' Rev 1.2 18 Feb 1994 13:29:52 mmeth
''
'' Now check for Listlength of Reg_GetDirSymbolList
''
'' Rev 1.1 15 Feb 1994 15:01:50 mmeth
'' added pvcs line for toolkit.lss &
''
'' Rev 1.0 11 Feb 1994 10:56:22 jbrodeur
'' Initial Revision
''----------------------------------------------------------------------
'' Date Vers. Pgmr SPR# Change
''----------------------------------------------------------------------
'' 02-04-94 0018 MMETH changed characters allowed in progrmangroup
'' 02-04-94 0017 MMETH SIZEOFINSTALLCB now support distribtuin dialog also
''!
'' 02-01-94 0016 MZ Added PROGMANGROUPCB
'' 02-02-94 0015 MMETH added NODELOTUSAPP stuff
'' 01-24-94 0014 TQI Capture all function returns (lsi36)
'' 01-21-94 0013 DND Custom2 shows the tips in normal text.
'' 01-21-94 0012 MZ Add SRV_SUCCESSCB
'' 01-21-94 0011 MMETH Added gNext parm to Lot_Call1Product
'' 01-21-94 0010 DND The path change dialogs now work correctly
'' for server.
'' 01-20-94 0009 DND SIZEOFINSTALL should work for SmartSuite.
'' Call the PathChange callbacks
'' 01-19-94 0008 DND Finish SINGLESIZEOFINSTALLCB. Added
'' Lot_GetSizeOfInstall
'' 01-19-94 0007 MMeth Move SYM_UPDATELIST$ abd SYM_NORMALFONT
'' 01-13-94 0006 DND Add ability to change the currently shown
'' path. Removed CHNGPATHBASE, PROGRAMPATHCB,
'' Lot_DetectVersionPriorToDarwinA,
'' PathChange123A, Lot_CheckProductDirs.
'' 01-12-94 0005 DND The custom dialogs now show the path
'' based on what LCB item is selected.
'' IN PROCESS
'' 01-12-94 0004 MMETH Changed Return code of CallProd to string
'' 01-12-94 0003 MMETH Commented out call to PathChang123A
'' 01-11-94 0002 TQI Option declare
'' 01-10-94 0001 MZ Make all symbols Constants and put them
'' in GLOBALS.LSS
'' 01-05-94 0000 DND Initial checkin
''----------------------------------------------------------------------
''
''**********************************************************************
USE "AUTOMATE"
OPTION DECLARE
'** Constants ----------------------------------------------------------
CONST MAX_PAGES = 9 '** Match LT_MAXPAGES from notebook.h
CONST LCBITEM_ENTIRE = 0
CONST LCBITEM_SELECTED = 1
CONST LCBITEM_TEXT = 2
CONST LCBITEM_SIZE = 3
CONST LCBITEM_CHAPTER = 4
CONST SYM_CUSTOMCOST$ = "CustomCostList" '** Use only in this module
CONST UM_SETBITMAP = WM_USER+100
'** Module globals -----------------------------------------------------
'** Structure to contain static information of a page (Custom)
TYPE PAGEINFO
szChapter AS STRING '** Chapter that started the page
idPage AS INTEGER '** Page ID
hDlgPage AS LONG '** Page dialog handle
nSel AS INTEGER '** Current Selection in page
END TYPE
'** These module globals are used for CUSTOM1 and CUSTOM2
DIM ghdlg& '** Save the parent dialog
DIM gCurrentPageIndex% '** The current page index (into array)
DIM gNumPages% '** Number of pages in gPageArray
DIM gPageArray(MAX_PAGES) AS PAGEINFO '** Page info for up to 8 pages
'** Folder
DIM gEntered$
'** Focus problems
DIM gPrevInst%
'** Declares -----------------------------------------------------------
DECLARE PUBLIC FUNCTION Lot_ConfirmNamesDlg () AS STRING
DECLARE PUBLIC FUNCTION Lot_GetSizeOfInstall () AS STRING
DECLARE PUBLIC SUB ResetWinWinsysSymbols()
DECLARE SUB SetCustomInfo(fOnTab%,fNewSpace%,fUpdateAll%)
DECLARE FUNCTION DoesFileExistInDir (dirlist$) AS INTEGER
DECLARE SUB Lot_SetSpaceDirTip(hDlg&,chpt$,index%,ProdNum%,tiponly%)
'*************************************************************************
'************************* Public Functions ******************************
'*************************************************************************
'*************************************************************************
'** PUBLIC FUNCTION Lot_ConfirmNamesDlg () AS STRING
'** Purpose: This function puts up the DB_CONFIRMNAME dlg box.
'**
'**
'** Author:
'** Arguments:
'**
'** Returns:
'**
'*************************************************************************
PUBLIC FUNCTION Lot_ConfirmNamesDlg () AS STRING
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT3)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT4)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
SetListItem "IDC_TEXT", 1, GetSymbolValue(SYM_NAME$)
SetListItem "IDC_TEXT", 2, GetSymbolValue(SYM_COMPANY$)
Lot_ConfirmNamesDlg = PopupModalDlg (DB_CONFIRMNAMES, DB_CONFIRMNAMES)
END FUNCTION
'*************************************************************************
'** PUBLIC FUNCTION Lot_GetSizeOfInstall () AS STRING
'** Purpose: Bring up the appropriate size dialog. When this dialog
'** comes in, all products are set to the value in
'** SYM_SIZEOFINSTALL$. Before leaving all products are
'** set again to the value in SYM_SIZEOFINSTALL$
'**
'** Author: DND
'** Arguments:
'** Symbols: SYM_SIZEOFINSTALL$ - The default install type. Reset
'** to the selected when done.
'**
'** Returns: Value from PopupModalDlg
'**
'*************************************************************************
PUBLIC FUNCTION Lot_GetSizeOfInstall () AS STRING
DIM IdDlg%, i%, nProds%, network$, size$, notused%, NumDirs%
'** Set all the applications to start with the default
size$ = GetSymbolValue(SYM_SIZEOFINSTALL$)
nProds% = Reg_GetNumberOfProducts()
FOR i% = 1 to nProds%
Reg_SetSelectedInstallType i%, size$
NEXT
'** Bring up the size of install dialog
network$ = GetSymbolValue(SYM_NETWORK$)
NumDirs% = Reg_GetProdSupportForExtraProdDirs(1)
IF NumDirs < 1 Then
IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
'** Check for the case where the product only does full install
IF Reg_GetProdSupportForFullInstall(1) <> FALSE AND _
Reg_GetProdSupportForMinInstall (1) = FALSE AND _
Reg_GetProdSupportForCustInstall(1) = FALSE THEN
'** This product only allows full install. If server then
'** Ask for two paths. If not, then ask for one.
IF network$ = gSERVER$ THEN
IF Reg_GetProdSupportForShare32(1) <> FALSE Then
IdDlg% = DB_SIZEOFINSTALL2
ELSE
IdDlg% = DB_SIZEOFINSTALL1
END IF
ELSE
IdDlg% = DB_SIZEOFINSTALL1
END IF
ELSEIF network$ = gSERVER$ THEN
'** For server, only Full and Custom are allowed. Both the
'** main path and lotusapp are asked for
IF Reg_GetProdSupportForShare32(1) <> FALSE Then
IdDlg% = DB_SIZEOFINSTALL3
ELSE
IdDlg% = DB_SIZEOFINSTALL5
END IF
ELSE
'** Use the dialog with three choices and choices are grayed.
'** Only the main path is asked for.
IdDlg% = DB_SIZEOFINSTALL4
END IF
'** SmartSuite
ELSEIF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
IF network$ = gSERVER$ THEN
IdDlg% = DB_SIZEOFINSTALL6 '** server
ELSE
IdDlg% = DB_SIZEOFINSTALL7 '** standard or node
END IF
ELSE
'** TEMPORARY ???MMETH
IdDlg% = DB_SIZEOFINSTALL4
END IF
ELSE
IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
'** Check for the case where the product only does full install
IF Reg_GetProdSupportForFullInstall(1) <> FALSE AND _
Reg_GetProdSupportForMinInstall (1) = FALSE AND _
Reg_GetProdSupportForCustInstall(1) = FALSE THEN
'** This product only allows full install. If server then
'** Ask for two paths. If not, then ask for one.
IF network$ = gSERVER$ THEN
IF Reg_GetProdSupportForShare32(1) <> FALSE Then
IdDlg% = DB_SIZEOFINSTALL9
ELSE
IdDlg% = DB_SIZEOFINSTALL8
END IF
ELSE
IdDlg% = DB_SIZEOFINSTALL8
END IF
ELSEIF network$ = gSERVER$ THEN
'** For server, only Full and Custom are allowed. Both the
'** main path and lotusapp are asked for
IF Reg_GetProdSupportForShare32(1) <> FALSE Then
IdDlg% = DB_SIZEOFINSTALL10
ELSE
IdDlg% = DB_SIZEOFINSTALL12
END IF
ELSE
'** Use the dialog with three choices and choices are grayed.
'** Only the main path is asked for.
IdDlg% = DB_SIZEOFINSTALL11
END IF
'** SmartSuite
ELSEIF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
IF network$ = gSERVER$ THEN
IdDlg% = DB_SIZEOFINSTALL6 '** server
ELSE
IdDlg% = DB_SIZEOFINSTALL7 '** standard or node
END IF
ELSE
'** TEMPORARY ???MMETH
IdDlg% = DB_SIZEOFINSTALL11
END IF
END IF
'** Ask the user for the selected size
notused% = RegisterCallback("CALLBACK", "SIZEOFINSTALLCB")
Lot_GetSizeOfInstall = PopupModalDlg (IdDlg%, CLNG(IdDlg%))
'** Reset all the sizes
size$ = GetSymbolValue(SYM_SIZEOFINSTALL$)
FOR i% = 1 to nProds%
Reg_SetSelectedInstallType i%, size$
NEXT
END FUNCTION
'*************************************************************************
'** PUBLIC FUNCTION GetGroupName () AS STRING
'** Purpose: Get the group name from the dialog and verify it.
'**
'** Author:
'** Arguments:
'** fDisplayErr% - TRUE if the error needs to be displayed.
'** Symbols:
'**
'** Returns: Program Group Name
'**
'*************************************************************************
FUNCTION GetGroupName () AS STRING
DIM count%, charlen%, failed%, inloopset%
DIM CheckName$, targetstr$, EnteredName$
DIM InvChar LIST AS STRING
''** HISHI - Aug/23/95
IF LENBP(GetListItem ("IDC_EDIT", 1)) < 254 THEN
EnteredName$=GetListItem("IDC_EDIT",1)
ELSE
targetstr$ = GetListItem ("IDC_EDIT", 1)
IF IsDBCSFirstAtOffset (targetstr$, 254) = 1 THEN
''** HISHI - Aug/23/95
EnteredName$=LEFTBP(GetListItem ("IDC_EDIT", 1), 253)
ELSE
''** HISHI - Aug/23/95
EnteredName$=LEFTBP(GetListItem ("IDC_EDIT", 1), 254)
END IF
END IF
IF EnteredName$ = "" AND NOT IsNewShell() THEN
EnteredName$=Reg_GetProgManagerGroupName(1)
END IF
InvChar("\") = "1"
InvChar("/") = "1"
InvChar("<") = "1"
InvChar(">") = "1"
InvChar("*") = "1"
InvChar("?") = "1"
InvChar(|"|) = "1"
InvChar("|") = "1"
InvChar(":") = "1"
failed% = 0
IF IsNewShell() THEN
' Look for invalid char. Fail if any are invalid
CheckName$ = EnteredName$
FOR count% = 1 TO LEN(EnteredName$)
''** HISHI - Aug/01/95
'' charlen% = FDBCSCharLen(CheckName$,0)
IF ISELEMENT(InvChar(LEFT$(CheckName$,1))) = TRUE THEN
failed% = 1
EXIT FOR
END IF
'' count% = count% + charlen% - 1
CheckName$ = RIGHT$(Checkname$,LEN(CheckName$)-1)
''** END HISHI
NEXT
InvChar(" ") = "1"
END IF
IF NOT IsNewShell() THEN
InvChar("+") = "1"
InvChar("=") = "1"
InvChar("[") = "1"
InvChar("]") = "1"
InvChar(";") = "1"
InvChar(",") = "1"
InvChar(")") = "1"
InvChar("(") = "1"
InvChar(".") = "1" '* MMETH; I believe that this is a valid character
'TV: These are also invalid characters.
InvChar("'") = "1"
InvChar("@") = "1"
InvChar("{") = "1"
InvChar("}") = "1"
InvChar("#") = "1"
InvChar("%") = "1"
InvChar("!") = "1"
InvChar("`") = "1"
InvChar("$") = "1"
InvChar("^") = "1"
InvChar("~") = "1"
InvChar("-") = "1"
InvChar("_") = "1"
InvChar("&") = "1"
END IF
IF failed% = 0 THEN
failed% = 1
' Validate the name if it is a new one
' The ilegal characters in the name are:
' * + | : " < > ? + { } \ ; , / MMETH removed the period
' if the path consists only of " then the group name will be )]
' if the path consists only of ) or ] or , the group is not created
'** TV: Reject only if the group name consists entirely of Invalid
'**characters
CheckName$ = EnteredName$
FOR count% = 1 TO LEN(EnteredName$)
''** HISHI - Aug/01/95
'' charlen% = FDBCSCharLen(CheckName$,0)
IF ISELEMENT(InvChar(LEFT$(CheckName$,1))) = FALSE THEN
failed% = 0
EXIT FOR
END IF
'' count% = count% + charlen% - 1
CheckName$ = RIGHT$(Checkname$,LEN(CheckName$)-1)
''** END HISHI
NEXT
END IF
'*** TV: The " character cannot be permitted.
'** This breaks the script execution later!!
IF INSTR(1,EnteredName$,|"|) <> 0 THEN
failed% = 1
END IF
IF IsNewShell() THEN
IF failed% <> 0 THEN
ShowPathErrorNoDlgExit SID_ERR_INVALIDFOLDERNAME,SID_ERR_INVALIDFOLDERNAMEDESC95,EnteredName$
GetGroupName = ""
ELSE
GetGroupName = EnteredName$
END IF
ELSE
IF failed% <> 0 THEN
ShowPathErrorNoDlgExit SID_ERR_INVALIDGROUPNAME,SID_ERR_INVALIDGROUPNAMEDESC,EnteredName$
GetGroupName = ""
ELSE
GetGroupName = EnteredName$
END IF
END IF
END FUNCTION
'*************************************************************************
'************************* Callbacks *************************************
'*************************************************************************
'*************************************************************************
'** PROGMANGROUPCB
'** Purpose: This is a for the Program Group selection
'** IN SYMBOLS
'**
'** Author:
'** Arguments:
'**
'**
'** Returns:
'**
'*************************************************************************
SUB PROGMANGROUPCB (hDlg&, CtrlId%, Classes$, LInst&)
DIM ProgManIni$, Group$, GroupId%, Index%,notused%,DefaultGroup$
DIM EnteredName$,order%,RootFolder$
DIM Inst%
' *** script port to win32
Inst% = CINT(LInst&)
SELECT CASE Classes$
CASE "__DLGINIT"
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
IF NOT IsNewShell() THEN
ProgManIni$=GetWindowsDir()+"progman.ini"
END IF
DefaultGroup$=Reg_GetProgManagerGroupName(1)
IF DefaultGroup$="" THEN
DefaultGroup$=LdString(SID_TKT_DEF_PROGMANGRP)
END IF
SetListItem "IDC_EDIT", 1, DefaultGroup$
IF IsNewShell() THEN
SetListItem "IDC_TREE",1, Reg_GetSelectedFolder(1)
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
AddListItem SYM_UPDATELIST$, "IDC_TREE"
AddListItem SYM_UPDATELIST$, "IDC_B1"
AddListItem SYM_UPDATELIST$, "IDC_B2"
AddListItem SYM_UPDATELIST$, "IDC_B3"
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_B1), TRUE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_B2), FALSE))
ELSE
if (GetListLength("IDC_LIST1") > 1) THEN
RemoveSymbol("IDC_LIST1")
END IF
SetListItem "IDC_LIST1",1, DefaultGroup$
notused% = CInt(FAddProgramGroupsToList(HKEY_LOCAL_MACHINE&, gPROGMANREGNAME, "IDC_LIST1", DefaultGroup$))
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
AddListItem SYM_UPDATELIST$, "IDC_LIST1"
END IF
CASE "IDC_EDIT"
IF IsNewShell() THEN
IF GetFocus() = GetDlgItem(hDlg, IDC_EDIT1) THEN
EnteredName$ = GetGroupName()
IF EnteredName$ = "" THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_B1), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
SetFocus(GetDlgItem(hDlg&,IDC_EDIT1))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_B1), TRUE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
gEntered$=GetListItem("IDC_EDIT",1)
notused%=FChangeNameCurrTreeItem(hDlg&, gEntered$)
Reg_SetProgManagerGroup 1,gEntered
END IF
END IF
END IF
CASE "IDC_TREE"
EnteredName$=GetGroupName()
IF EnteredName$ = "" THEN
SetListItem "__LASTSTATUS", 1, "Q"
SetFocus(GetDlgItem(hDlg&,IDC_EDIT1))
EXIT SUB
END IF
DISPLAYTEXT:
EnteredName$ = GetListItem("IDC_TREE",Inst%)
Reg_SetSelectedFolder 1,EnteredName$
IF DoesDirExist (Reg_GetSelectedFolder(1)) THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_EDIT1), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_B2), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_EDIT1), TRUE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_B2), TRUE))
END IF
RootFolder = Reg_GetRootFolder()
order% = 1
DO
Index% = order%
order% = InStr(Index%+1,RootFolder,"\")
LOOP UNTIL order% = 0
Group$ = RIGHT$(EnteredName$,LEN(EnteredName$)-Index%)
SetListItem "IDC_TEXT",3,Group$
AddListItem SYM_UPDATELIST$, "IDC_TEXT3"
gEntered = GetLastPathComponent(Group$)
SetListItem "IDC_EDIT", 1, gEntered
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
CASE "IDC_LIST1"
EnteredName$=GetListItem("IDC_LIST1",Inst%)
SetListItem "IDC_EDIT", 1, EnteredName$
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
CASE "IDC_B"
IF CtrlId% = cIDC_B1 THEN
IF GetSymbolValue("USEDEFAULTGRP")<>"" THEN
EnteredName$=Reg_GetProgManagerGroupName(1)
IF EnteredName$="" THEN
EnteredName$=LdString(SID_TKT_DEF_PROGMANGRP)
END IF
RemoveSymbol("USEDEFAULTGRP")
ELSE
EnteredName$=LdString(SID_TKT_DEF_NEWFOLDERNAME)
END IF
Group$ = GetListItem("IDC_TREE",Inst%)+"\"+EnteredName$
''** HISHI - Aug/01/95
IF LENBP(Group$) > (MAX_DIR_PATH - 11) THEN
'** This is only about the path length and might need a new message
ShowPathError SID_ERR_PATHLEN, SID_ERR_PATHLEN_DESCR, _
STR$(MAX_DIR_PATH - CINT(GetSymbolValue(SYM_DOSMAXPATHDIFF$)))+LdString(SID_ERR_PATHLEN_CHARS)
ELSE
Index% = 0
DO WHILE DoesDirExist (Group$)
Index% = Index%+1
Group$ = GetListItem("IDC_TREE",Inst%)+"\"+EnteredName$+"("+CSTR(Index%)+")"
LOOP
If Index% > 0 Then
EnteredName$ = EnteredName$+"("+CSTR(Index%)+")"
End If
Reg_SetProgManagerGroup 1,EnteredName$
notused% = FAddItemToTree(hDlg&, EnteredName$)
SetFocus(GetDlgItem(hDlg&,IDC_EDIT1))
END IF
ELSEIF CtrlId% = cIDC_B1+1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_B1), TRUE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
notused%=FDeleteCurrTreeItem(hDlg&)
IF DoesDirExist(GetListItem("IDC_TREE",1)) THEN
SetFocus(GetDlgItem(hDlg&,IDC_B1))
END IF
ELSE
Inst% = 1
GOTO DISPLAYTEXT
END IF
CASE "IDC_OK"
IF IsNewShell() THEN
Reg_SetSelectedFolder 1,GetListItem("IDC_TREE",Inst%)
ELSE
Reg_SetProgManagerGroup 1,GetGroupName()
END IF
CASE "IDC_BACK"
CASE "IDC_CITHELP"
CASE "IDC_EXIT"
END SELECT
END SUB
'*************************************************************************
'** WELCOMECB
'** Purpose: This is a for the Welcome Dialog Boxes
'** there are two distinct types of dialogs:
'** A STANDARD/SERVER dialog vs a NODE dialog.
'**
'** IN SYMBOLS NAME, COMPANY, NETWORK
'**
'** Author:
'** Arguments:
'**
'**
'** Returns:
'**
'*************************************************************************
SUB WELCOMECB (hDlg&, CtrlId%, Classes$, LInst&)
DIM lname$, company$, network$, i%, notused%
DIM sz$
' Changes from Japan for DBCS
DIM targetstr$, Inst%
Inst% = CINT(LInst&)
' End: Changes from Japan for DBCS
SELECT CASE Classes$
CASE "__DLGINIT"
'** Set the product bitmap
SetListItem "IDC_BMP", 1, STR$(IDD_TKT_PROD_BMP)
lname$ = GetSymbolValue(SYM_NAME$)
company$ = GetSymbolValue(SYM_COMPANY$)
SetListItem "IDC_EDIT", 1, lname$
SetListItem "IDC_EDIT", 2, company$
'** Set text to normal font
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT4)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT5)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT6)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT7)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT8)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
AddListItem SYM_UPDATELIST$, "IDC_BMP1"
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
AddListItem SYM_UPDATELIST$, "IDC_EDIT2"
network$ = GetSymbolValue(SYM_NETWORK$)
IF network$ = "" THEN
SetSymbolValue SYM_NETWORK$, gSTANDARD$
ELSEIF network$ = gNODE$ Then
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_EDIT2), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_TEXT3), FALSE))
ELSEIF network$ = gSERVER$ OR network$ = gDISTRIBUTION$ THEN
SetListItem "IDC_B", 1, "T"
AddListItem SYM_UPDATELIST$, "IDC_B1"
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_EDIT1), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_TEXT2), FALSE))
END IF
'** if userName OR companyName is empty inctivate the next button
IF network$ = gSTANDARD$ THEN
IF LEN(GetListItem ("IDC_EDIT", 1)) < 1 OR _
LEN(GetListItem ("IDC_EDIT", 2)) < 1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
ELSEIF network$ = gNODE$ THEN
IF LEN(GetListItem ("IDC_EDIT", 1)) < 1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
ELSEIF network$ = gSERVER$ THEN
IF LEN(GetListItem ("IDC_EDIT", 2)) < 1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
CASE "IDC_B"
If GetListItem("IDC_B",1) = "F" Then
SetSymbolValue SYM_NETWORK$, gSTANDARD$
Else
'*** if both Srv and Dist are supported then Srv overrides
If Reg_GetProdSupportForSrv(1) = 1 Then
SetSymbolValue SYM_NETWORK$, gSERVER$
ElseIf Reg_GetProdSupportForDist(1) = 1 Then
SetSymbolValue SYM_NETWORK$, gDISTRIBUTION$
End If
End If
'** If Server checkbox is selected, grey out the User name.
IF IsDlgButtonChecked(hDlg&,IDC_B1) <> FALSE THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_EDIT1), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_TEXT2), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_EDIT1), TRUE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_TEXT2), TRUE))
END IF
network$ = GetSymbolValue(SYM_NETWORK$)
IF network$ = gSTANDARD$ THEN
IF LEN(GetListItem ("IDC_EDIT", 1)) < 1 OR _
LEN(GetListItem ("IDC_EDIT", 2)) < 1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
ELSEIF network$ = gNODE$ THEN
IF LEN(GetListItem ("IDC_EDIT", 1)) < 1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
ELSEIF network$ = gSERVER$ THEN
IF LEN(GetListItem ("IDC_EDIT", 2)) < 1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
CASE "IDC_EDIT"
network$ = GetSymbolValue(SYM_NETWORK$)
IF network$ = gSTANDARD$ THEN
IF LEN(GetListItem ("IDC_EDIT", 1)) < 1 OR _
LEN(GetListItem ("IDC_EDIT", 2)) < 1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
ELSEIF network$ = gNODE$ THEN
IF LEN(GetListItem ("IDC_EDIT", 1)) < 1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
ELSEIF network$ = gSERVER$ THEN
IF LEN(GetListItem ("IDC_EDIT", 2)) < 1 THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), FALSE))
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
ELSE
notused% = CINT(EnableWindow(GetDlgItem(hDlg&,IDC_OK), TRUE))
END IF
CASE "IDC_OK"
network$ = GetSymbolValue(SYM_NETWORK$)
FOR i% = 1 TO 2
IF network$ = gNODE$ AND i% = 2 THEN
Exit For
END IF
IF network$ = gSERVER$ AND i% = 1 THEN
GOTO NEXTFIELD
END IF
IF LEN(GetListItem ("IDC_EDIT", i%)) < 1 THEN
ErrorMsgNoDlgExit SID_TKT_ERR_NEEDNAMES, ""
EXIT FOR
END IF
NEXTFIELD:
NEXT
' Changes from Japan for DBCS
' This code is intimately related to code in
' callback.lss:Lot_ReadDefaultsfromRi &
' lcomstf\userreg.cpp:ReadDefaultsfromRi
''** HISHI - Aug/29/95
IF LENBP(GetListItem ("IDC_EDIT", 1)) < 80 THEN
SetSymbolValue SYM_NAME$, GetListItem ("IDC_EDIT", 1)
ELSE
targetstr$ = GetListItem ("IDC_EDIT", 1)
IF IsDBCSFirstAtOffset (targetstr$, 80) = 1 THEN
''** HISHI - Aug/29/95
SetSymbolValue SYM_NAME$, LEFTBP(GetListItem ("IDC_EDIT", 1), 79)
ELSE
''** HISHI - Aug/29/95
SetSymbolValue SYM_NAME$, LEFTBP(GetListItem ("IDC_EDIT", 1), 80)
END IF
END IF
''** HISHI - Aug/29/95
IF LENBP(GetListItem ("IDC_EDIT", 2)) < 80 THEN
SetSymbolValue SYM_COMPANY$, GetListItem ("IDC_EDIT", 2)
ELSE
targetstr$ = GetListItem ("IDC_EDIT", 2)
IF IsDBCSFirstAtOffset (targetstr$, 80) = 1 THEN ''** HISHI - Aug/14/95
''** HISHI - Aug/29/95
SetSymbolValue SYM_COMPANY$, LEFTBP(GetListItem ("IDC_EDIT", 2), 79)
ELSE
''** HISHI - Aug/29/95
SetSymbolValue SYM_COMPANY$, LEFTBP(GetListItem ("IDC_EDIT", 2), 80)
END IF
END IF
' End: Changes from Japan for DBCS
'** Allow the user to exit without hitting the button
Case "IDC_BACK"
sz$ = PopupModalDlg (DB_EXITHISTORY, DB_EXITHISTORY)
If sz$ = "BACK" Then
SetListItem "__LASTSTATUS", 1, "Q"
End If
END SELECT
END SUB
'************************************************************************
'* Routines to handle Custom *
'************************************************************************
'*************************************************************************
'** SUB CUSTOM1CB (hDlg&, CtrlId%, Classes$, LInst&)
'**
'** Purpose: Customize a product. This is main dialog proc. Each dialog
'** page uses CUSTOM2CB.
'**
'** This dialog callback can be used only once! Do not display
'** more than one dialog at a time with this callback!
'**
'** Author: DND
'** Arguments: Callback args
'** Returns: NONE
'*************************************************************************
SUB CUSTOM1CB (hDlg&, CtrlId%, Classes$, LInst&)
DIM chpt$, product_name$, child$, dirsym$, network$
DIM page%, tab_handle&
DIM RC$, i%, notused%, Inst%, unused&
Inst% = CINT(LInst&)
SELECT CASE Classes$
case "__DLGINIT"
'** Set some globals
gNumPages% = 0
ghdlg& = hDlg&
''Display bmps with transparent background
SetSymbolValue SYM_BMP_DISPLAY_MODE$, "STRETCH"
'** make text normal
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT6)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
'** Hide the Path Button for a server or a language install
network$ = GetSymbolValue(SYM_NETWORK$)
If network$ = gSERVER$ OR _
GetSymbolValue(SYM_INSTALLKIND$) = gLANGUAGEINSTALL$ _
Then
notused% = CINT(ShowWindow (GetDlgItem(hDlg&, IDC_B1), SW_HIDE))
notused% = CINT(ShowWindow (GetDlgItem(hDlg&, IDC_TEXT4), SW_HIDE))
notused% = CINT(ShowWindow (GetDlgItem(hDlg&, IDC_TEXT8), SW_SHOW))
End If
notused% = CINT(EnableWindow (GetDlgItem(ghdlg&, IDC_B1), FALSE))
'** Set the starting chapter based on the current product
i% = Lot_GetCurrentProduct()
chpt$ = Lot_GetChapterFromKeyword(Reg_GetProductAcronym(i%) + gTOP$)
chpt$ = Lot_GetFirstChild(chpt$, F_DISPLAY + F_CUSTOM)
'** DND: If no first chapter then we need to do somthing
WHILE (chpt$ <> "")
product_name$ = Lot_GetChapterValStr(chpt$, F_NAME)
child$ = Lot_GetFirstChild(chpt$, F_DISPLAY + F_CUSTOM)
'** Add new page to notebook
notused% = RegisterCallback("CALLBACK","CUSTOM2CB")
page% = Lot_AddPagetoNotebook(hDlg&,IDC_NOTEBOOK1,DBNM_1,product_name$)
tab_handle& = Lot_GetPagehandle(hDlg&,IDC_NOTEBOOK1,page%)
IF FPopulateLCB(tab_handle&, child$) = FALSE THEN
ErrorMsg SID_ERR_POPULATELCB, ""
ERROR STFQUIT
END IF
'** Store the page information
gNumPages% = gNumPages% + 1
gPageArray(gNumPages%).szChapter = chpt$
gPageArray(gNumPages%).idPage = page%
gPageArray(gNumPages%).hDlgPage = tab_handle&
gPageArray(gNumPages%).nSel = 1
'** Make sure to save the page id of the first page. For now,
'** use gCurrentPageIndex to save the page id of first page.
IF gNumPages% = 1 THEN gCurrentPageIndex% = page%
'** Goto next sibling of chpt$
chpt$ = Lot_GetNextSibling(chpt$, F_DISPLAY + F_CUSTOM)
WEND
Lot_TurnToPage hDlg&, IDC_NOTEBOOK1, gCurrentPageIndex%
gCurrentPageIndex% = 1
SetCustomInfo TRUE, TRUE, TRUE
case "IDC_B"
chpt$ = Lot_LCBGetItem(gPageArray(gCurrentPageIndex%).hDlgPage, _
gPageArray(gCurrentPageIndex%).nSel, _
LCBITEM_CHAPTER)
dirsym$ = Lot_GetChapterValStr(chpt$, F_DESTDIRSYM)
SetSymbolValue SYM_CHANGEDIRSYMBOL$, dirsym$
IF GetSymbolValue(SYM_NETWORK$) = gSTANDARD$ THEN
IF (dirsym$ <> SYM_LOTUSAPPDIR$ AND _
dirsym$ <> SYM_WINDIR$ AND _
dirsym$ <> SYM_WINSYSDIR$) THEN
notused% = RegisterCallback ("CALLBACK", "CHANGEPRODUCTDIRCB")
RC$ = PopupModalDlg (DBM_CHANGEDIR, DBM_CHANGEDIR)
END IF
ELSE
'** For server, change the LOTUSAPPDIR can go anywhere. The
'** user is only allowed to change the main directory.
IF dirsym$ <> SYM_LOTUSAPPDIR$ THEN
dirSym$ = Reg_GetDirSymbolList(Lot_GetCurrentProduct())
'** SHOULD NEVER BE IN THIS CODE ANYWAY
If GetListLength(dirSym$) >= 1 Then
dirSym$ = GetListItem(dirSym$, 1)
SetSymbolValue SYM_CHANGEDIRSYMBOL$, dirsym$
notused% = RegisterCallback ("CALLBACK", "CHANGEPRODUCTDIRCB")
RC$ = PopupModalDlg (DBM_CHANGEDIR, DBM_CHANGEDIR)
End If
END IF
END IF
'' SELECT CASE RC$
''
'' case "OK"
'' SetCustomInfo FALSE, TRUE, TRUE
'' unused& = SetFocus(GetDlgItem(hDlg&, IDC_B1))
''
'' case "BACK"
'' SetCustomInfo TRUE, TRUE, TRUE
'' unused& = SetFocus(GetDlgItem(hDlg&, IDC_B1))
''
'' END SELECT
SetCustomInfo FALSE, TRUE, TRUE
case "IDC_NOTEBOOK"
FOR i% = 1 TO gNumPages%
IF gPageArray(i%).idPage = Inst% THEN
gCurrentPageIndex% = i%
gPrevInst% = -1
SetCustomInfo TRUE, FALSE, TRUE
EXIT FOR
END IF
NEXT
case "IDC_OK"
''**Display bitmaps the default way from now on
SetSymbolValue SYM_BMP_DISPLAY_MODE$, ""
ResetWinWinsysSymbols
case "__DLGDESTROY"
''**Display bitmaps the default way from now on
SetSymbolValue SYM_BMP_DISPLAY_MODE$, ""
RemoveSymbol SYM_CUSTOMCOST$
RemoveSymbol SYM_CHANGEDIRSYMBOL$
END SELECT
END SUB
'*************************************************************************
'** SUB CUSTOM2CB (hDlg&, CtrlId%, Classes$, LInst&)
'**
'** Purpose: Page dialogs. Use with CUSTOM1
'**
'** This dialog callback can be used only once! Do not display
'** more than one dialog at a time with this callback!
'**
'** Author: DND
'** Arguments: Callback args
'** Returns: NONE
'*************************************************************************
SUB CUSTOM2CB (hDlg&, CtrlId%, Classes$, LInst&)
DIM chpt$, tiponly%, index%, dirsym$, notused%, Inst%
STATIC PrevPage%
Inst% = CINT(LInst&)
SELECT CASE Classes$
case "__DLGINIT"
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
case "IDC_LCB"
SetYieldActive FALSE
'** If Inst% is negative that just means that the section changed.
'** If Inst% is positive then a check box was toggled.
IF Inst% < 0 THEN
Inst% = -Inst%
tiponly% = TRUE
ELSE
tiponly% = FALSE
END IF
'** Get the chapter from the LCB item
index% = Inst% - IDC_LCB1 + 1
chpt$ = Lot_LCBGetItem(hDlg&, index%, LCBITEM_CHAPTER)
gPageArray(gCurrentPageIndex%).nSel = index%
'** Process the LCB info
IF chpt$ <> "" THEN
IF tiponly% = FALSE THEN
Lot_ToggleChapterFilesInCopyList chpt$
END IF
'** Only redisplay if the page or the selection has changed
IF (PrevPage% <> gCurrentPageIndex% OR Inst% <> gPrevInst%) THEN
SetCustomInfo FALSE, TRUE, TRUE
ELSE
SetCustomInfo FALSE, TRUE, FALSE
END IF
END IF
''* Disable the Change Path.. Button if on a shared directory
IF GetSymbolValue(SYM_NETWORK$) = gSTANDARD$ THEN
chpt$ = Lot_LCBGetItem(gPageArray(gCurrentPageIndex%).hDlgPage, _
gPageArray(gCurrentPageIndex%).nSel, _
LCBITEM_CHAPTER)
dirsym$ = Lot_GetChapterValStr(chpt$, F_DESTDIRSYM)
IF (dirsym$ = SYM_LOTUSAPPDIR$ OR _
dirsym$ = SYM_COMPONENTSDIR$ OR _
dirsym$ = SYM_WINDIR$ OR _
dirsym$ = SYM_WINSYSDIR$) THEN
notused% = CINT(EnableWindow (GetDlgItem(ghdlg&, IDC_B1), FALSE))
ELSE
IF IsWindowVisible(GetDlgItem(ghdlg&, IDC_B1)) <> FALSE THEN
notused% = CINT(EnableWindow (GetDlgItem(ghdlg&, IDC_B1), TRUE))
END IF
END IF
END IF
'** Remember last page and selection for next time
PrevPage% = gCurrentPageIndex%
gPrevInst% = Inst%
SetYieldActive TRUE
END SELECT
END SUB
'*************************************************************************
'** SUB CHANGEPRODUCTDIRCB (hDlg&, CtrlId%, Classes$, LInst&)
'**
'** Purpose: Callback to handle dialog that lets you change one product
'** directory.
'**
'** Author: DND
'** Arguments: Callback args
'** SymbolsIn: SYM_CHANGEDIRSYMBOL$
'** Returns: NONE
'*************************************************************************
SUB CHANGEPRODUCTDIRCB (hDlg&, CtrlId%, Classes$, LInst&)
STATIC drvIndex%, dirChanged%
DIM dirSym$, dirToChange$, dirName$, rc$, i%, olddir$, Inst%
'** UNC DIMS
DIM uncPath$, fullPath$, dirPath$, drvPath$ '** MZ
DIM drvSel%, DriveChangedFlag% '** MZ
DIM curCombo$, uncOff&, unusedPath$, notused%
Inst% = CINT(LInst&)
'**UNC stuff
IF INSTR(Classes$, "IDC_COMBO") THEN
i% = VAL(MID$(Classes$, 10, LEN(Classes$) - 9))
drvIndex% = Inst%
dirChanged% = TRUE
curCombo$ = GetListItem("IDC_COMBO1", Inst%)
fullPath$ = GetListItem("IDC_EDIT",1)
Lot_SplitUNCPath fullPath$, uncPath$, dirPath$
uncOff& = INSTR(1, curCombo$, "\\")
IF uncOff > 0 THEN
Lot_SplitUNCPath MID$(curCombo$, uncOff&), uncPath$, unusedPath$
ELSE
uncPath$ = ""
END IF
SetListItem "IDC_EDIT", 1, uncPath$ + dirPath$
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
EXIT SUB
END IF
SELECT CASE Classes$
case "__DLGINIT"
dirChanged% = FALSE
dirSym$ = GetSymbolValue(SYM_CHANGEDIRSYMBOL$)
dirToChange$ = GetSymbolValue(dirSym$)
dirName$ = GetSymbolValue(dirSym$ + gNAME$)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
SetWindowText GetDlgItem(hDlg&, IDC_GROUP1), dirName$
Lot_GetDriveFreeSpaceList "IDC_COMBO1"
' drvIndex% = SelectDriveCombo ("IDC_COMBO1", dirToChange$)
IF dirSym$ = SYM_LOTUSAPPDIR$ AND _
GetSymbolValue(SYM_NETWORK$) <> gSTANDARD$ THEN
i% = INSTR(dirToChange$, gLOTUSAPP$)
IF i% > 1 THEN dirToChange$ = LEFT$(dirToChange$, i% - 1)
END IF
SetListItem "IDC_EDIT", 1, dirToChange$
drvIndex% = ValidateEditBox(hDlg& , 1)
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
case "IDC_EDIT"
dirChanged% = TRUE
case "IDC_BRWSDIR"
drvSel% = ValidateBrowse(hDlg& , Inst%)
dirChanged% = TRUE
case "IDC_COMBO1"
drvIndex% = Inst%
dirChanged% = TRUE
case "IDC_OK"
IF dirChanged% = TRUE THEN
dirSym$ = GetSymbolValue(SYM_CHANGEDIRSYMBOL$)
olddir$ = GetSymbolValue(dirSym$)
drvSel% = ValidateEditBox(hDlg& , 1)
IF drvSel% = 0 THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
drvIndex% = drvSel%
END IF
Lot_SplitUNCPath GetListItem("IDC_EDIT",1), uncPath$, dirPath$
IF uncPath$ = "" THEN
drvPath = LEFT$(GetListItem("IDC_COMBO1",drvIndex%), 2)
ELSE
drvPath = ""
END IF
dirToChange$ = drvPath$ + uncPath + dirPath$
'** For server lotusapp dir, add on lotusapp
IF dirSym$ = SYM_LOTUSAPPDIR$ AND _
GetSymbolValue(SYM_NETWORK$) <> gSTANDARD$ THEN
i% = TRUE
dirToChange$ = MakePath(dirToChange$,gLOTUSAPP$)
ELSE
i% = FALSE '** Use i as a temp flag
END IF
IF ValidatePath(dirToChange$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
ELSE
dirSym$ = GetSymbolValue(SYM_CHANGEDIRSYMBOL$)
SetSymbolValue dirSym$, dirToChange$
'** Only call product if not server lotusapp
IF i% = FALSE THEN
'** Server is only allowed to change main product dir
IF GetSymbolValue(SYM_NETWORK$) <> gSTANDARD$ THEN
dirName$ = |"| + dirSym$ + |",TRUE|
ELSE
dirName$ = |"| + dirSym$ + |",FALSE|
END IF
rc$ = Lot_CallOneProductFunction(Lot_GetCurrentProduct(), _
"PathChange", gNEXT$, _
FALSE, dirName$)
If rc$ = gBACK Then
SetListItem "IDC_EDIT", 1, Lot_ExtractDirectory(olddir$)
drvIndex% = SelectDriveCombo ("IDC_COMBO1", olddir$)
SetSymbolValue dirSym$, olddir$
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
End If
END IF
Lot_RefreshDestination(dirSym$)
END IF
END IF
END SELECT
END SUB
'*************************************************************************
'** SUB CHANGELOTUSAPPDIRCB (hDlg&, CtrlId%, Classes$, LInst&)
'**
'** Purpose: Change the Lotusapp dir in standard install
'**
'** Author: DND
'** Arguments: Callback args
'** Returns: NONE
'*************************************************************************
SUB CHANGELOTUSAPPDIRCB (hDlg&, CtrlId%, Classes$, LInst&)
STATIC drvIndex%, dirChanged%
DIM dirSym$, dirToChange$, dirName$, winLotApp$, Inst%
Inst% = CINT(LInst&)
SELECT CASE Classes$
case "__DLGINIT"
dirChanged% = FALSE
dirSym$ = GetSymbolValue(SYM_CHANGEDIRSYMBOL$)
dirToChange$ = GetSymbolValue(dirSym$)
dirName$ = GetSymbolValue(dirSym$ + gNAME$)
winLotApp$ = GetWindowsDir() + gLOTUSAPP$ + "\"
SetWindowText GetDlgItem(hDlg&, IDC_GROUP1), dirName$
SetWindowText GetDlgItem(hDlg&, IDC_B1), winLotApp$
Lot_GetDriveFreeSpaceList "IDC_COMBO1"
drvIndex% = SelectDriveCombo ("IDC_COMBO1", dirToChange$)
IF dirToChange$ = winLotApp$ THEN
SetListItem "IDC_B", 1 , "T"
SetListItem "IDC_B", 2 , "F"
ELSE
SetListItem "IDC_B", 1 , "F"
SetListItem "IDC_B", 2 , "T"
END IF
AddListItem SYM_UPDATELIST$, "IDC_B1"
AddListItem SYM_UPDATELIST$, "IDC_B2"
case "IDC_COMBO1"
drvIndex% = Inst%
dirChanged% = TRUE
SetListItem "IDC_B", 1 , "F"
SetListItem "IDC_B", 2 , "T"
AddListItem SYM_UPDATELIST$, "IDC_B1"
AddListItem SYM_UPDATELIST$, "IDC_B2"
case "IDC_B"
dirChanged% = TRUE
case "IDC_OK"
IF dirChanged% = TRUE THEN
If IsDlgButtonChecked(hDlg&,IDC_B1) = FALSE Then
dirToChange$ = _
MakePath(MID$(GetListItem("IDC_COMBO1",drvIndex%), 1, 2), _
gLOTUSAPP$)
ELSE
dirToChange$ = GetWindowsDir() + gLOTUSAPP$
END IF
IF ValidatePath(dirToChange$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
ELSE
dirSym$ = GetSymbolValue(SYM_CHANGEDIRSYMBOL$)
SetSymbolValue dirSym$, dirToChange$
Lot_RefreshDestination(dirSym$)
END IF
END IF
END SELECT
END SUB
'MARIANA
'** SUB GETLOTUSAPPDIRCB (hDlg&, CtrlId%, Classes$, LInst&)
'** Purpose: Prompts for Lotusapp dir in install
'** Author: MZ
'** Arguments: Callback args
'** Returns: NONE
'*************************************************************************
SUB GETLOTUSAPPDIRCB (hDlg&, CtrlId%, Classes$, LInst&)
STATIC drvIndex%(1 to MAX_NO_DRIVECOMBOS), dirChanged%
DIM dirSym$, dirToChange$, dirName$, winLotApp$, Inst%
DIM comboBox$, editBox$, i%, InvalidLotapp%
'** unc start
DIM uncPath$, fullPath$, dirPath$, drvPath$, n%, hCombo& '** MZ
DIM drvSel%, DriveChangedFlag% '** MZ
DIM curCombo$, uncOff&, unusedPath$, NumDirs%
'** unc end
Inst% = CINT(LInst&)
'** unc start
'** Handle all the combo boxes here (if any)
IF INSTR(Classes$, "IDC_COMBO") THEN
i% = VAL(MID$(Classes$, 10, LEN(Classes$) - 9))
comboBox = "IDC_COMBO"+Right$(Str$(i%),1)
editBox = "IDC_EDIT"+Right$(Str$(i%),1)
drvIndex%(i%) = Inst%
dirChanged% = TRUE
curCombo$ = GetListItem(comboBox, Inst%)
fullPath$ = GetListItem("IDC_EDIT",i)
Lot_SplitUNCPath fullPath$, uncPath$, dirPath$
uncOff& = INSTR(1, curCombo$, "\\")
IF uncOff > 0 THEN
Lot_SplitUNCPath MID$(curCombo$, uncOff&), uncPath$, unusedPath$
ELSE
uncPath$ = ""
END IF
SetListItem "IDC_EDIT", i, uncPath$ + dirPath$
AddListItem SYM_UPDATELIST$, editBox
EXIT SUB
END IF
'** unc end
SELECT CASE Classes$
case "__DLGINIT"
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT2)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT3)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
dirChanged% = FALSE
dirToChange$ = GetSymbolValue(SYM_COMPONENTSDIR$)
dirName$ = GetSymbolValue(dirSym$ + gNAME$)
Lot_GetDriveFreeSpaceList "IDC_COMBO1"
AddListItem SYM_UPDATELIST$, "IDC_COMBO1"
'drvIndex% = SelectDriveCombo ("IDC_COMBO1", dirToChange$)
SetListItem "IDC_EDIT", 1, dirToChange$
drvIndex%(1) = ValidateEditBox(hDlg& , 1)
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
dirToChange$ = GetSymbolValue(SYM_LOTUSAPPDIR$)
dirName$ = GetSymbolValue(dirSym$ + gNAME$)
Lot_GetDriveFreeSpaceList "IDC_COMBO2"
AddListItem SYM_UPDATELIST$, "IDC_COMBO2"
'drvIndex% = SelectDriveCombo ("IDC_COMBO2", dirToChange$)
SetListItem "IDC_EDIT", 2, dirToChange$
drvIndex%(2) = ValidateEditBox(hDlg& , 2)
AddListItem SYM_UPDATELIST$, "IDC_EDIT2"
case "IDC_COMBO"
SELECT CASE Inst%
case 1
drvIndex%(1) = Inst%
dirChanged% = TRUE
case 2
drvIndex%(2) = Inst%
dirChanged% = TRUE
END SELECT
case "IDC_EDIT"
dirChanged% = TRUE
case "IDC_BRWSDIR"
drvSel% = ValidateBrowse(hDlg& , Inst%)
SELECT CASE Inst%
CASE 1
dirChanged% = TRUE
CASE 2
dirChanged% = TRUE
END SELECT
case "IDC_OK"
IF dirChanged% = TRUE THEN
''*** Components
'** unc start
drvSel% = ValidateEditBox(hDlg& , 1)
IF drvSel% = 0 THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
drvIndex%(1) = drvSel%
END IF
Lot_SplitUNCPath GetListItem("IDC_EDIT",1), uncPath$, dirPath$
IF uncPath$ = "" THEN
drvPath = LEFT$(GetListItem("IDC_COMBO1",drvIndex%(1)), 2)
ELSE
drvPath = ""
END IF
dirToChange$ = drvPath$ + uncPath + dirPath$
'** unc end
' dirToChange$ = MID$(GetListItem("IDC_COMBO1",drvIndex%), 1, 2)+ _
' GetListItem("IDC_EDIT", 1)
IF ValidatePath(dirToChange$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
ELSE
SetSymbolValue SYM_COMPONENTSDIR$, dirToChange$
Lot_RefreshDestination(SYM_COMPONENTSDIR$)
END IF
''*** Lotusapp
'** unc start
drvSel% = ValidateEditBox(hDlg& , 2)
IF drvSel% = 0 THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
drvIndex%(1) = drvSel%
END IF
Lot_SplitUNCPath GetListItem("IDC_EDIT",2), uncPath$, dirPath$
IF uncPath$ = "" THEN
drvPath = LEFT$(GetListItem("IDC_COMBO2",drvIndex%(2)), 2)
dirToChange$ = drvPath$ + uncPath + dirPath$
IF IsLongDirPath (dirToChange$) <> FALSE THEN
InvalidLotapp% = TRUE
END IF
ELSE
InvalidLotapp% = TRUE
END IF
IF InvalidLotapp% = TRUE THEN
drvPath = ""
ErrorMsg SID_ERR_SHARED_NO_UNCLONG,""
SetListItem "__LASTSTATUS", 1, "Q"
'** set it back to the default
dirToChange$ = GetSymbolValue(SYM_LOTUSAPPDIR$)
Lot_GetDriveFreeSpaceList "IDC_COMBO2"
AddListItem SYM_UPDATELIST$, "IDC_COMBO2"
SetListItem "IDC_EDIT", 2, dirToChange$
drvIndex%(2) = ValidateEditBox(hDlg& , 2)
AddListItem SYM_UPDATELIST$, "IDC_EDIT2"
EXIT SUB
ELSE
drvPath = LEFT$(GetListItem("IDC_COMBO2",drvIndex%(2)), 2)
dirToChange$ = drvPath$ + uncPath + dirPath$
END IF
'** unc end
IF ValidatePath(dirToChange$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
ELSE
SetSymbolValue SYM_LOTUSAPPDIR$, dirToChange$
Lot_RefreshDestination(SYM_LOTUSAPPDIR$)
'Initialize the symbols for Notes Data and ORACLE Home directories
DL_SetNotesDataPath
DL_SetOraclePath
END IF
END IF
END SELECT
END SUB
'************************************************************************
'* End of Custom Routines *
'************************************************************************
'*************************************************************************
'** SUB SIZEOFINSTALLCB (hDlg&, CtrlId%, Classes$, LInst&)
'**
'** Purpose: Handles the SizeOfInstall Dialog Box for Single Install
'** Always works with the current product (should be 1).
'**
'** With a little work we might be able to use this callback
'** for the main size of install dialog in SmartSuite.
'** You would need to pay attention to minimum size and
'** current product. Plus, the path asked for would be
'** the BASEDIR, not a product path. However, I think the
'** logic could be added.
'**
'** In Symbols:
'**
'** Author: DND
'** Arguments: STANDARD CALLBACK ARGS
'** Comments: SYM_SIZEOFINSTALL$ is an in-out param
'** Returns:
'**
'*************************************************************************
'** unc template for multiple COMBO-TEXT boxes
SUB SIZEOFINSTALLCB (hDlg&, CtrlId%, Classes$, LInst&)
STATIC drvIndex%(1 to MAX_NO_DRIVECOMBOS), dirChanged%, size$, lDistSize&, dirChanged2%
DIM dirSym$, dirToChange$, rc$, i%, nProds%, lcb&, notused%
DIM drvItem$, drvFree&, network$, Inst%, dirSym2$, dirToChange2$
'** unc start
DIM uncPath$, fullPath$, dirPath$, drvPath$, n%, hCombo& '** MZ
DIM drvSel%, DriveChangedFlag% '** MZ
DIM curCombo$, uncOff&, unusedPath$, NumDirs%
DIM comboBox$, editBox$
'** unc end
DriveChangedFlag% = FALSE '** MZ
Inst% = CINT(LInst&)
network$ = GetSymbolValue(SYM_NETWORK)
'** unc start
'** Handle all the combo boxes here (if any)
IF INSTR(Classes$, "IDC_COMBO") THEN
i% = VAL(MID$(Classes$, 10, LEN(Classes$) - 9))
comboBox = "IDC_COMBO"+Right$(Str$(i%),1)
editBox = "IDC_EDIT"+Right$(Str$(i%),1)
drvIndex%(i%) = Inst%
SELECT CASE i%
CASE 1
dirChanged% = TRUE
CASE 2
dirchanged2% = TRUE
END SELECT
curCombo$ = GetListItem(comboBox, Inst%)
fullPath$ = GetListItem("IDC_EDIT",i)
Lot_SplitUNCPath fullPath$, uncPath$, dirPath$
uncOff& = INSTR(1, curCombo$, "\\")
IF uncOff > 0 THEN
Lot_SplitUNCPath MID$(curCombo$, uncOff&), uncPath$, unusedPath$
ELSE
uncPath$ = ""
END IF
SetListItem "IDC_EDIT", i, uncPath$ + dirPath$
AddListItem SYM_UPDATELIST$, editBox
EXIT SUB
END IF
'** unc end
SELECT CASE Classes$
CASE "__DLGINIT"
SetListItem "IDC_BMP", 3, STR$(IDD_CUS_BMP)
SetListItem "IDC_BMP", 2, STR$(IDD_SRV_BMP)
SetListItem "IDC_BMP", 1, STR$(IDD_WRK_BMP)
'** Init the radio buttons
size$ = GetSymbolValue(SYM_SIZEOFINSTALL$)
SELECT CASE size$
CASE gCUSTOM$
SetListItem "IDC_B", 3, "T" '** Custom
CASE gLAPTOP$
SetListItem "IDC_B", 2, "T" '** Minimum
CASE gCOMPLETE$
SetListItem "IDC_B", 1, "T" '** Complete
END SELECT
AddListItem SYM_UPDATELIST$, "IDC_B"
AddListItem SYM_UPDATELIST$, "IDC_BMP1"
AddListItem SYM_UPDATELIST$, "IDC_BMP2"
AddListItem SYM_UPDATELIST$, "IDC_BMP3"
'** Fill the product full size
lcb& = 0
nProds% = Reg_GetNumberOfProducts()
FOR i% = 1 to nProds%
IF Reg_GetUIInOrOut (i%) <> 0 THEN
lcb& = lcb& + Reg_GetProdFullSize(i%)
END IF
NEXT
SetListItem "IDC_TEXT", 2, LdString(SID_SPACENEEDED) + _
STR$((lcb& \ 1048576) + 1) + gStrMB$
'** Fill in the product laptop size
lcb& = 0
FOR i% = 1 to nProds%
IF Reg_GetUIInOrOut (i%) <> 0 THEN
lcb& = lcb& + Reg_GetProdMinSize(i%)
END IF
NEXT
SetListItem "IDC_TEXT", 4, LdString(SID_SPACENEEDED) + _
STR$((lcb& \ 1048576) + 1) + gStrMB$
'** Set up the normal font controls
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT2)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT3)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT4)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT5)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT10)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
AddListItem SYM_UPDATELIST$, "IDC_TEXT2"
AddListItem SYM_UPDATELIST$, "IDC_TEXT4"
'** Init the path area. We only change first path in list.
'** So far, the SmartSuite dlg does not have any paths.
dirChanged% = FALSE
dirChanged2% = FALSE
IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
dirChanged% = TRUE
dirSym$ = Reg_GetDirSymbolList(1)
If GetListLength(dirSym$) >= 1 Then
dirSym$ = GetListItem(dirSym$, 1)
dirToChange$ = GetSymbolValue(dirSym$)
Lot_GetDriveFreeSpaceList "IDC_COMBO1"
SetListItem "IDC_EDIT", 1, dirToChange$
drvIndex%(1) = ValidateEditBox(hDlg& , 1)
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
End If
dirSym2$ = Reg_GetDirSymbolList(1)
NumDirs% = Reg_GetProdSupportForExtraProdDirs(1)
If GetListLength(dirSym2$) > 1 AND _
NumDirs% = 1 Then
dirChanged2% = TRUE
dirSym2$ = GetListItem(dirSym2$, 2)
dirToChange2$ = GetSymbolValue(dirSym2$)
Lot_GetDriveFreeSpaceList "IDC_COMBO2"
SetListItem "IDC_EDIT", 2, dirToChange2$
drvIndex%(2) = ValidateEditBox(hDlg& , 2)
AddListItem SYM_UPDATELIST$, "IDC_EDIT2"
End If
'** If server, then fill the COMPONENTS as well.
'** TV: COMPONENTS is always IDC_EDIT/COMBO3
IF GetSymbolValue(SYM_NETWORK$) = gSERVER$ THEN
dirToChange$ = GetSymbolValue(SYM_COMPONENTSDIR$)
Lot_GetDriveFreeSpaceList "IDC_COMBO3"
SetListItem "IDC_EDIT", 3, dirToChange$
drvIndex%(3) = ValidateEditBox(hDlg& , 3)
AddListItem SYM_UPDATELIST$, "IDC_EDIT3"
END IF
'** Take care of whether the controls are enabled or not
IF Reg_GetProdSupportForFullInstall(1) = FALSE THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_B1), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_TEXT1), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_TEXT2), FALSE))
END IF
IF Reg_GetProdSupportForMinInstall(1) = FALSE THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_B2), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_TEXT3), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_TEXT4), FALSE))
END IF
IF Reg_GetProdSupportForCustInstall(1) = FALSE THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_B3), FALSE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_TEXT5), FALSE))
END IF
'**** IDC_TEXT3and IDC_TEXT5 should be visible for a product with only full install
IF (Reg_GetProdSupportForFullInstall(1) <> FALSE) AND _
(Reg_GetProdSupportForMinInstall(1) = FALSE) AND _
(Reg_GetProdSupportForCustInstall(1) = FALSE) THEN
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_TEXT3), TRUE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_TEXT4), TRUE))
notused% = CINT(EnableWindow(GetDlgItem(hDlg&, IDC_TEXT5), TRUE))
END IF
'** Don't allow user path changes for a language install
If GetSymbolValue(SYM_INSTALLKIND$) = gLANGUAGEINSTALL$ _
Then
notused% = CINT(ShowWindow (GetDlgItem(hDlg&, IDC_BRWSDIR1), SW_HIDE))
notused% = CINT(EnableWindow (GetDlgItem(hdlg&, IDC_BRWSDIR1), FALSE))
notused% = CINT(ShowWindow (GetDlgItem(hDlg&, IDC_BRWSDIR2), SW_HIDE))
notused% = CINT(EnableWindow (GetDlgItem(hdlg&, IDC_BRWSDIR2), FALSE))
notused% = CINT(ShowWindow (GetDlgItem(hDlg&, IDC_BRWSDIR3), SW_HIDE))
notused% = CINT(EnableWindow (GetDlgItem(hdlg&, IDC_BRWSDIR3), FALSE))
notused% = CINT(EnableWindow (GetDlgItem(hdlg&, IDC_COMBO1), FALSE))
notused% = CINT(EnableWindow (GetDlgItem(hdlg&, IDC_EDIT1), FALSE))
notused% = CINT(EnableWindow (GetDlgItem(hdlg&, IDC_COMBO2), FALSE))
notused% = CINT(EnableWindow (GetDlgItem(hdlg&, IDC_EDIT2), FALSE))
notused% = CINT(EnableWindow (GetDlgItem(hdlg&, IDC_COMBO3), FALSE))
notused% = CINT(EnableWindow (GetDlgItem(hdlg&, IDC_EDIT3), FALSE))
End If
END IF
case "IDC_COMBO1"
drvSel% = CInt(LInst&)
DriveChangedFlag% = TRUE
case "IDC_B"
SELECT CASE Inst%
CASE 1
size$ = gCOMPLETE$
CASE 2
size$ = gLAPTOP$
CASE 3
size$ = gCUSTOM$
END SELECT
case "IDC_EDIT"
SELECT CASE Inst%
CASE 1
dirChanged% = TRUE
CASE 2
dirChanged2% = TRUE
END SELECT
case "IDC_BRWSDIR"
drvSel% = ValidateBrowse(hDlg& , Inst%)
SELECT CASE Inst%
CASE 1
dirChanged% = TRUE
CASE 2
dirChanged2% = TRUE
END SELECT
case "IDC_OK"
SetSymbolValue SYM_SIZEOFINSTALL$, size$
'** Handle the main application path
IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ AND _
dirChanged% = TRUE THEN
IF dirChanged% = TRUE THEN
'** unc start
drvSel% = ValidateEditBox(hDlg& , 1)
IF drvSel% = 0 THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
drvIndex%(1) = drvSel%
END IF
Lot_SplitUNCPath GetListItem("IDC_EDIT",1), uncPath$, dirPath$
IF uncPath$ = "" THEN
drvPath = LEFT$(GetListItem("IDC_COMBO1",drvIndex%(1)), 2)
ELSE
drvPath = ""
END IF
dirToChange$ = drvPath$ + uncPath + dirPath$
'** unc end
IF ValidatePath(dirToChange$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
dirSym$ = Reg_GetDirSymbolList(1)
If GetListLength(dirSym$) >= 1 Then
dirSym$ = GetListItem(dirSym$, 1)
SetSymbolValue dirSym$, dirToChange$
rc$ = Lot_CallOneProductFunction(1, "PathChange",gNEXT$, _
FALSE, |"| + dirSym$ + |",TRUE|)
If rc$ = gBACK Then
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
End If
Lot_RefreshDestination(dirSym$)
End If
END IF
END IF
END IF
'** Handle the secondary application path
IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ AND _
dirChanged2% = TRUE THEN
'** unc start
drvSel% = ValidateEditBox(hDlg& , 2)
IF drvSel% = 0 THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
drvIndex%(2) = drvSel%
END IF
Lot_SplitUNCPath GetListItem("IDC_EDIT",2), uncPath$, dirPath$
IF uncPath$ = "" THEN
drvPath = LEFT$(GetListItem("IDC_COMBO2",drvIndex%(2)), 2)
ELSE
drvPath = ""
END IF
dirToChange2$ = drvPath$ + uncPath + dirPath$
IF ValidatePath(dirToChange2$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
dirSym2$ = Reg_GetDirSymbolList(1)
If GetListLength(dirSym2$) > 1 Then
dirSym2$ = GetListItem(dirSym2$, 2)
SetSymbolValue dirSym2$, dirToChange2$
rc$ = Lot_CallOneProductFunction(1, "PathChange",gNEXT$, _
FALSE, |"| + dirSym2$ + |",TRUE|)
If rc$ = gBACK Then
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
End If
Lot_RefreshDestination(dirSym2$)
End If
END IF
END IF
'** If this is server, then check the COMPONENTS dir
IF GetSymbolValue(SYM_NETWORK$) = gSERVER$ AND _
Reg_GetProdSupportForShare32(1) = 1 AND _
GetListLength("IDC_EDIT") > 2 THEN
drvSel% = ValidateEditBox(hDlg& , 3)
IF drvSel% = 0 THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
drvIndex%(3) = drvSel%
END IF
Lot_SplitUNCPath GetListItem("IDC_EDIT",3), uncPath$, dirPath$
IF uncPath$ = "" THEN
drvPath = LEFT$(GetListItem("IDC_COMBO3",drvIndex%(3)), 2)
ELSE
drvPath = ""
END IF
dirToChange2$ = drvPath$ + uncPath + dirPath$
IF ValidatePath(dirToChange2$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
SetSymbolValue SYM_COMPONENTSDIR$, dirToChange2$
Lot_RefreshDestination(SYM_COMPONENTSDIR$)
END IF
END IF
ResetWinWinsysSymbols
END SELECT
DONESIZEOFINSTALLCB:
END SUB
'*************************************************************************
'** SUB DISTSIZEINSTALLCB (hDlg&, CtrlId%, Classes$, LInst&)
'**
'** Purpose: Handles the DB_CHOOSEPATHDIST Dialog Box for Single
'** and SmartSuite Install
'** Always works with the current product (should be 1).
'**
'** With a little work we might be able to use this callback
'** for the main size of install dialog in SmartSuite.
'** You would need to pay attention to minimum size and
'** current product. Plus, the path asked for would be
'** the BASEDIR, not a product path. However, I think the
'** logic could be added.
'**
'** In Symbols:
'**
'** Author: DND, CMOY
'** Arguments: STANDARD CALLBACK ARGS
'** Comments: SYM_SIZEOFINSTALL$ is an in-out param
'** Returns:
'**
'*************************************************************************
SUB DISTSIZEINSTALLCB (hDlg&, CtrlId%, Classes$, LInst&)
STATIC drvIndex%, dirChanged%, size$, lDistSize&
DIM dirSym$, dirToChange$, rc$, i%, nProds%, lcb&, notused%
DIM drvItem$, drvFree&, network$, Inst%
' unc start
DIM uncPath$, fullPath$, dirPath$, drvPath$, n%, hCombo& '** MZ
DIM drvSel%, DriveChangedFlag% '** MZ
DIM curCombo$, uncOff&, unusedPath$, NumDirs%
'unc end
Inst% = CINT(LInst&)
network$ = GetSymbolValue(SYM_NETWORK)
'unc start
IF INSTR(Classes$, "IDC_COMBO") THEN
i% = VAL(MID$(Classes$, 10, LEN(Classes$) - 9))
drvIndex% = Inst%
dirChanged% = TRUE
curCombo$ = GetListItem("IDC_COMBO1", Inst%)
fullPath$ = GetListItem("IDC_EDIT",1)
Lot_SplitUNCPath fullPath$, uncPath$, dirPath$
uncOff& = INSTR(1, curCombo$, "\\")
IF uncOff > 0 THEN
Lot_SplitUNCPath MID$(curCombo$, uncOff&), uncPath$, unusedPath$
ELSE
uncPath$ = ""
END IF
SetListItem "IDC_EDIT", 1, uncPath$ + dirPath$
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
END IF
'unc end
SELECT CASE Classes$
CASE "__DLGINIT"
size$ = GetSymbolValue(SYM_SIZEOFINSTALL$)
'** Fill the product full size
lcb& = 0
nProds% = Reg_GetNumberOfProducts()
FOR i% = 1 to nProds%
lcb& = lcb& + Reg_GetProdFullSize(i%)
NEXT
SetListItem "IDC_TEXT", 2, LdString(SID_SPACENEEDED) + _
STR$((lcb& \ 1048576) + 1) + gStrMB$
'** Set up the normal font controls
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT2)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT7)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
AddListItem SYM_UPDATELIST$, "IDC_TEXT2"
'** Init the path area. We only change first path in list.
'** So far, the SmartSuite dlg does not have any paths.
' dirChanged% = FALSE
dirChanged% = TRUE
dirSym$ = Reg_GetDirSymbolList(1)
If GetListLength(dirSym$) >= 1 Then
dirSym$ = GetListItem(dirSym$, 1)
dirToChange$ = GetSymbolValue(dirSym$)
Lot_GetDriveFreeSpaceList "IDC_COMBO1"
SetListItem "IDC_EDIT", 1, dirToChange$
drvIndex% = ValidateEditBox(hDlg& , 1)
drvItem$ = GetListItem("IDC_COMBO1",drvIndex%)
drvFree& = CLNG(MID$(drvItem$,3,Instr(drvItem$,";")-4))
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
End If
lDistSize& = Lot_GetInfSectionSize(gDISTRIBUTIONFILES$) \ 1024
SetListItem "IDC_TEXT", 1, STR$(lDistSize&) + gStrK$
SetListItem "IDC_TEXT", 2, STR$(drvFree& - lDistSize&) + gStrK$
AddListItem SYM_UPDATELIST$, "IDC_TEXT1"
AddListItem SYM_UPDATELIST$, "IDC_TEXT2"
case "IDC_COMBO1"
'** Handle all the combo boxes here (if any)
drvIndex% = Inst%
dirChanged% = TRUE
'** For distribution, update the text.
drvItem$ = GetListItem("IDC_COMBO1",Inst%)
drvFree& = CLNG(MID$(drvItem$,3,Instr(drvItem$,";")-4))
'changed for unc drvFree& = CLNG(MID$(drvItem$,3,LEN(drvItem$)-5))
'** already computed in __DLGINIT
'** lDistSize& = Lot_GetInfSectionSize(gDISTRIBUTIONFILES$) \ 1024
SetListItem "IDC_TEXT", 1, STR$(lDistSize&) + gStrK$
SetListItem "IDC_TEXT", 2, STR$(drvFree& - lDistSize&) + gStrK$
AddListItem SYM_UPDATELIST$, "IDC_TEXT1"
AddListItem SYM_UPDATELIST$, "IDC_TEXT2"
case "IDC_EDIT"
dirChanged% = TRUE
case "IDC_BRWSDIR"
drvSel% = ValidateBrowse(hDlg& , Inst%)
drvItem$ = GetListItem("IDC_COMBO1",drvSel%)
drvFree& = CLNG(MID$(drvItem$,3,Instr(drvItem$,";")-4))
SetListItem "IDC_TEXT", 2, STR$(drvFree& - lDistSize&) + gStrK$
AddListItem SYM_UPDATELIST$, "IDC_TEXT2"
dirChanged% = TRUE
case "IDC_OK"
SetSymbolValue SYM_SIZEOFINSTALL$, size$
IF dirChanged% = TRUE THEN
'** Handle the main application path
drvSel% = ValidateEditBox(hDlg& , 1)
IF drvSel% = 0 THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
drvIndex% = drvSel%
END IF
'** unc start
Lot_SplitUNCPath GetListItem("IDC_EDIT",1), uncPath$, dirPath$
IF uncPath$ = "" THEN
drvPath = LEFT$(GetListItem("IDC_COMBO1",drvIndex%), 2)
ELSE
drvPath = ""
END IF
dirToChange$ = drvPath$ + uncPath + dirPath$
'** unc end
IF ValidatePath(dirToChange$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
dirSym$ = Reg_GetDirSymbolList(1)
If GetListLength(dirSym$) >= 1 Then
dirSym$ = GetListItem(dirSym$, 1)
SetSymbolValue dirSym$, dirToChange$
rc$ = Lot_CallOneProductFunction(1, "PathChange",gNEXT$, _
FALSE, |"| + dirSym$ + |",TRUE|)
'** Not sure what to do with the return yet
Lot_RefreshDestination(dirSym$)
End If
ResetWinWinsysSymbols
'** TV:
IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
SetSymbolValue SYM_BASEDIR$, dirToChange$
END IF
END IF
END IF
END SELECT
END SUB
'*************************************************************************
'** SUB DISKCOPYMETHODCB (hDlg&, CtrlId%, Classes$, LInst&)
'**
'** Purpose: Allows user to choose Server or Distribution
'** IN SYMBOLS : NETWORK=SERVER | DISTRIBUTION
'** OUT SYMBOLS: NETWORK=SERVER | DISTRIBUTION
'**
'** Author:
'** Arguments:
'**
'**
'** Returns:
'**
'*************************************************************************
SUB DISKCOPYMETHODCB (hDlg&, CtrlId%, Classes$, LInst&)
DIM network$, Inst%
Inst% = CINT(LInst&)
SELECT CASE Classes$
CASE "__DLGINIT"
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT2)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT3)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
network$ = GetSymbolValue(SYM_NETWORK$)
IF network$ = gSERVER$ THEN
SetListItem "IDC_B", 1, "T"
AddListItem SYM_UPDATELIST$, "IDC_B1"
ELSEIF network$ = gDISTRIBUTION$ THEN
SetListItem "IDC_B", 2, "T"
AddListItem SYM_UPDATELIST$, "IDC_B2"
END IF
CASE "IDC_B"
SELECT CASE Inst%
CASE 1
SetSymbolValue SYM_NETWORK$, gSERVER$
CASE 2
SetSymbolValue SYM_NETWORK$, gDISTRIBUTION$
END SELECT
END SELECT
END SUB
'*************************************************************************
'** PUBLIC FUNCTION SRV_SUCCESSCB (hDlg&, CtrlId%, Classes$, LInst&)
'** Purpose: This is a call back for Success dlg box for Server Install.
'** It executes the licenser.exe, if start licenser button
'** is selected.
'** This works with DB_SRV_SUCCESS AND DB_SRV_SUCCESS_LIC
'** Author: MZ
'** Arguments:
'*************************************************************************
PUBLIC SUB SRV_SUCCESSCB (hDlg&, CtrlId%, Classes$, LInst&)
DIM path$, exist%, ExecError%, Inst%
Inst% = CINT(LInst&)
SELECT CASE Classes$
CASE "__DLGINIT"
'** Set up the normal font controls
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT2)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT3)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT4)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
CASE "IDC_B"
IF Inst% = 1 THEN
path$ = GetSymbolValue(SYM_LICDIR$)
path$ = path$ + "licenser.exe"
exist% = DoesFileExist(path$, femExists)
'** DND: Should I be displaying where we looked for licenser?
IF exist% = FALSE THEN
ErrorMsgNoDlgExit SID_NO_LICENSEREXE, ""
ELSE
'** DND: Should I display what we could not launch?
ExecError% = WinExec (path$, SW_SHOWNORMAL)
IF ExecError% < 32 THEN
ErrorMsgNoDlgExit SID_ERR_EXECLIC, ""
END IF
END IF
END IF
END SELECT
END SUB
'*************************************************************************
'** PUBLIC SUB LAUNCHNAGCB (hDlg&, CtrlId%, Classes$, LInst&)
'** Purpose: Sole purpose is to launch Notepad on the NAG
'**
'**
'** Author: Marcel Meth
'** Arguments:
'**
'**
'** Returns:
'**
'*************************************************************************
PUBLIC SUB LAUNCHNAGCB (hDlg&, CtrlId%, Classes$, LInst&)
DIM cmd$, ExecError%, Inst%
Inst% = CINT(LInst&)
SELECT CASE Classes$
CASE "__DLGINIT"
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT2)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
CASE "IDC_B"
'** DND: Will these filenames always be the same?
cmd$ = MakePath(GetSymbolValue(SYM_STF_CWDDIR$),LdString(SID_READNETTXT))
If DoesFileExist(cmd$, femExists) Then
cmd$ = LdString(SID_NOTEPADEXE) & " " & cmd$
Else
cmd$ = LdString(SID_NOTEPADEXE) & " " & MakePath(GetSymbolValue(SYM_STF_SRCDIR$),LdString(SID_READNETTXT))
End If
ExecError% = WinExec (cmd$, SW_SHOWNORMAL )
'** DND: This does not seem like enough info for error
IF ExecError% < 32 THEN
ErrorMsg SID_ERR_EXECNOTEPAD, ""
END IF
END SELECT
END SUB
'*************************************************************************
'*************************** Local Functions *****************************
'*************************************************************************
'*************************************************************************
'** SUB SetCustomInfo(fOnTab%,fNewSpace%,fUpdateAll%)
'**
'** Purpose: Fill with info for custom dialogs. Call this every time
'** the LCB changes selection or state.
'**
'** Author: DND
'** Arguments: fOnTab% TRUE if tab has focus
'** fNewSpace% TRUE if we should get new space requirements
'** fUpdateAll% TRUE if we should update all fields on the dlg
'** Returns: NONE
'*************************************************************************
SUB SetCustomInfo(fOnTab%,fNewSpace%,fUpdateAll%)
' STATIC lckSpace&, drvSave$
DIM chpt$, dest$, dirName$, dirSym$, drv$, tips$, tmpDrv$, szCost$
DIM lckCost&, lckAvail&
DIM bitmap%, n%, notused%, lnotused&, hwndtemp&
'** Get the tip and chapter from the current LCB item
IF fOnTab% = FALSE THEN
chpt$ = Lot_LCBGetItem(gPageArray(gCurrentPageIndex%).hDlgPage, _
gPageArray(gCurrentPageIndex%).nSel, _
LCBITEM_CHAPTER)
ELSE
chpt$ = gPageArray(gCurrentPageIndex%).szChapter$
END IF
IF chpt$ = "" THEN EXIT SUB
tips$ = Lot_GetChapterValStr(chpt$, F_TIPS)
'** If instructed then build the custom cost list
IF GetListLength(SYM_CUSTOMCOST$) = 0 OR fNewSpace% <> FALSE THEN
lnotused& = LcbGetChapterCost("", "", SYM_CUSTOMCOST$, "")
END IF
'** Get the destination directory and dirName
dirSym$ = Lot_GetChapterValStr(chpt$, F_DESTDIRSYM)
'** I commented these lines out for SPR PSCN2UN7GX. I left
'** the code here in case my actions have nasty side effects.
' IF dirsym$ <> SYM_LOTUSAPPDIR$ AND GetSymbolValue(SYM_NETWORK$) <> gSTANDARD$ THEN
' dirSym$ = Reg_GetDirSymbolList(Lot_GetCurrentProduct())
' dirSym$ = GetListItem(dirSym$, 1)
' END IF
dest$ = GetSymbolValue(dirSym$)
dirName$ = GetSymbolValue(dirSym$ + gNAME$)
drv$ = MID$(dest$, 1, 1)
'** UNC stuff
IF drv$ = "\" THEN
Lot_SplitUNCPath dest$, drv$, tmpDrv$
szCost$ = GetListItem(drv$,2)
IF szCost$ = "" THEN
lckCost& = 0
ELSE
lckCost& = CLNG(szCost$) \ 1024
END IF
ELSE
n% = ASC(LCASE$(drv$)) - ASC("a") + 1
lckCost& = CLNG(GetListItem(SYM_CUSTOMCOST$, n%)) \ 1024
END IF
'** Set the space available
'** I commented this out because the space value would be inacurate if
'** free space on a drive changed between visits to the LCB.
'** I left the code here in case calling GetFreeSpaceForDrive
'** proved to be too much of a performance hit
'** IF drv$ = drvSave$ THEN
'** lckAvail& = lckSpace&
'** ELSE
'** IF MID$(drv$,1,1) = "\" THEN
'** szCost$ = GetListItem(drv$,4) 'get the drivefree space for the
'** IF szCost$ <> "" THEN 'unc volume
'** lckAvail& = CLNG(szCost$)
'** ELSE
'** lckAvail& = 0
'** END IF
'** ELSE
lckAvail& = GetFreeSpaceForDrive(drv$)
'** lckSpace& = lckAvail&
'** drvSave$ = drv$
'** END IF
'** END IF
IF fUpdateAll% <> FALSE THEN
'** write out the tip text
SetWindowText GetDlgItem(gPageArray(gCurrentPageIndex%).hDlgPage&, IDC_TEXT1), tips$
'** Set the bitmap (if any)
bitmap% = Lot_GetChapterValInt(chpt$, F_BITMAP)
lnotused& = SendMessage(GetDlgItem(gPageArray(gCurrentPageIndex%).hDlgPage&, IDC_BMP1), WM_COMMAND, _
UM_SETBITMAP, bitmap%)
'** Set all the values in the dialogs
'** SetWindowText GetDlgItem(gPageArray(gCurrentPageIndex%).hDlgPage&, IDC_TEXT1), tips$
SetWindowText GetDlgItem(ghdlg&, IDC_TEXT4), dest$
SetWindowText GetDlgItem(ghdlg&, IDC_TEXT8), dest$
SetWindowText GetDlgItem(ghdlg&, IDC_TEXT5), dirName$
END IF
SetWindowText GetDlgItem(ghdlg&, IDC_TEXT2), Lot_MakeSizeString(lckCost&)
SetWindowText GetDlgItem(ghdlg&, IDC_TEXT3), Lot_MakeSizeString(lckAvail&)
''* Disable the Change Path.. Button if on a shared directory
IF GetSymbolValue(SYM_NETWORK$) = gSTANDARD$ AND _
IsWindowVisible(GetDlgItem(ghdlg&, IDC_B1)) <> FALSE THEN
IF dest$ = GetSymbolValue(SYM_LOTUSAPPDIR$) THEN
notused% = CINT(EnableWindow (GetDlgItem(ghdlg&, IDC_B1), FALSE))
ELSE
notused% = CINT(EnableWindow (GetDlgItem(ghdlg&, IDC_B1), TRUE))
END IF
''* Disable the Change Path.. Button if on a tab, not an item
IF fOnTab% = TRUE THEN _
notused% = CINT(EnableWindow (GetDlgItem(ghdlg&, IDC_B1), FALSE))
END IF
END SUB
PUBLIC SUB ResetWinWinsysSymbols()
'** Purpose: Reset WINDIR, WINSYSDIR to the value of SymVal$ for server
'** or set it back if change from server -> other
'** Author: MZ, JMD
'** Arguments:
'*************************************************************************
DIM network$, SymVal$
network$ = GetSymbolValue(SYM_NETWORK$)
IF network$ = gSERVER$ THEN
IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
SymVal$ = Reg_GetDirSymbolList(1)
If GetListLength(SymVal$) >= 1 Then
SymVal$ = GetListItem(SymVal$, 1)
SymVal$ = GetSymbolValue(SymVal$)
Else
'** RESOURCE! ***
ErrorMsg SID_ERR_SRV_MUST_HAVE_MAINDIR, ""
ERROR STFQUIT
End If
ELSE
SymVal$ = GetSymbolValue(SYM_BASEDIR$)
END IF
SetSymbolValue SYM_WINDIR$, SymVal$ + "win\"
SetSymbolValue SYM_WINSYSDIR$, SymVal$ + "winsys\"
Lot_RefreshDestination(SYM_WINDIR$)
Lot_RefreshDestination(SYM_WINSYSDIR$)
ELSE
Lot_InitializeWinWinsysSym
END IF
END SUB
'** DND: This function should be moved to Toolkit. We might also
'** want to think about calling this function whenever a destination
'** directory is entered.
FUNCTION DoesFileExistInDir (dirlist$) AS INTEGER
'** Purpose: Takes a list of directories and puts up an error message
'** listing all the directories which have files in them.
'** In Symbols:
'** OUT symbols:
'**
'**
'** Author: JYOTI KEDIA
'** Arguments: list of directories
'**
'**
'** Returns: TRUE
'**
'*************************************************************************
DIM errstr$, n%, i%, dirname$, RC%, temp$, sz$
DoesFileExistInDir = TRUE
errstr$ = ""
n% = GetListLength(dirlist$)
for i% = 1 to n%
dirname$ = GetListItem(dirlist$,i%)
rc% = DoesDirExist(dirname$)
If DoesDirExist(dirname$)Then
temp$ = Lot_Dir(dirname$+"\*.*")
if temp$ <> "" Then
errstr$ = errstr$ + CHR$(10) + CHR$(10) + " " + dirname$
end if
end if
Next
if errstr$ <> "" Then
sz$ = LdString(SID_DIR_NOT_EMPTY) + errstr$
RC% = DoMsgBox(sz$,LdString(SID_TKT_STD_TITLE),MB_OKCANCEL + MB_ICONEXCLAMATION)
if RC% <> 1 Then
SetListItem "__LASTSTATUS",1,"Q"
EXIT FUNCTION
end if
end if
END FUNCTION
'*************************************************************************
'** NODELOTUSAPPCB
'** Purpose: Called only during node install, if the lotusapp
'** directory was not put on same drive as main product
'** directory on the server (by the sys administrator)
'**
'** IN SYMBOLS NAME, COMPANY, NETWORK
'**
'** Author: Marcel Meth
'** Arguments:
'**
'**
'** Returns:
'**
'*************************************************************************
SUB NODELOTUSAPPCB (hDlg&, CtrlId%, Classes$, LInst&)
DIM i%, netLotusapp$, dr$, ndrives%, S$, l%, newpath$, oldnetLotusapp$
STATIC drvIndex%
DIM Inst%
Inst% = CINT(LInst&)
SELECT CASE Classes$
CASE "__DLGINIT"
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
netLotusapp$ = GetSymbolValue(SYM_NETLOTUSAPP$)
dr$ = MID$(netLotusapp$,1,1)
Lot_GetDriveFreeSpaceList "IDC_COMBO1"
drvIndex% = SelectDriveCombo ("IDC_COMBO1", dr$)
ndrives% = GetListLength("IDC_COMBO1")
FOR i% = 1 to ndrives%
'** Fix the strings in the combo box
S$ = GetListItem("IDC_COMBO1", i%)
SetListItem "IDC_COMBO1", i%, MID$(S$,1,2)
NEXT
AddListItem SYM_UPDATELIST$,"IDC_COMBO1"
case "IDC_COMBO1"
drvIndex% = Inst%
case "IDC_OK"
dr$ = MID$(GetListItem("IDC_COMBO1",drvIndex%), 1, 1)
netLotusapp$ = GetSymbolValue(SYM_NETLOTUSAPP$)
l% = LEN(netLotusapp$)
netLotusapp$ = LCASE$(dr$ & MID$(netLotusapp$, 2, l%-1) )
oldnetLotusapp$ = netLotusapp$
If DoesDirExist(netLotusapp$) = 1 Then
SetSymbolValue SYM_NETLOTUSAPP$, netLotusapp$
Else
newpath$ = TrimNetlotusapp$(netLotusapp$)
If newpath$ <> "" Then
netLotusapp$ = newpath$
Else
netLotusapp$ = oldnetLotusapp$
ShowPathError SID_ERR_DIRSYNTAX, SID_NODENONEXISTLOTUSAPPDIR,_
Lot_TrimEndSlash (netLotusapp$)
SetListItem "__LASTSTATUS", 1, "Q"
GOTO DONEOK
End If
End If
DONEOK:
END SELECT
END SUB
'** SUB SRVNODEOPTIONSCB (hDlg&, CtrlId%, Classes$, LInst&)
'** Purpose: Drives DBSUIT_SRV_NODEOPTIONS dialog
'** Author: MZ
'** Arguments: Callback args
'** Returns: NONE
'** Restriction: this call back works only in custom install
'*************************************************************************
SUB SRVNODEOPTIONSCB (hDlg&, CtrlId%, Classes$, LInst&)
DIM chpt$, firstchpt$, ProdName$, child$, dirsym$,toggle%,Selection%,sel%,Written%
DIM NumOfProds%, OptNum%, OptName$, tiponly%,ProdNum%, Selected$, prodno$
DIM RC$, i%, j%,k%, notused%, Item$, flag$, SaveInst%, index%,OptKeyWord$
DIM Inst%
Inst% = CINT(LInst&)
SELECT CASE Classes$
case "__DLGINIT"
' If no products are registered exit
NumOfProds% = Reg_GetNumberOfProducts()
IF NumOfProds%=0 THEN
EXIT SUB
END IF
' Make the right hand text not bold
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT3)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
' Turn of the display during this operation
Lot_LCBSetRedraw hDlg&, 0
Lot_LCBResetContent hDlg&
' Loop through products
FOR i% = 1 TO NumOfProds%
Reg_ReSetAllNodeOptsSelToDefaults i%
OptNum%=Reg_GetNumofNodeOptions(i%)
IF OptNum% <> 0 THEN
chpt$ = Lot_GetChapterFromKeyword(Reg_GetProductAcronym(i%) + gTOP$)
IF firstchpt$ = "" THEN
firstchpt$ = chpt$
END IF
Lot_SetSpaceDirTip hDlg&,chpt$,1 - IDC_LCB1 + 1,i%,FALSE
ProdName$ = Lot_GetChapterValStr(chpt$, F_NAME)
Written% = 0
' Loop through the options
FOR j% = 1 TO OptNum%
' Indent the option name under the product
OptKeyWord$ = Reg_GetNodeOptionStr(i%,j%)
chpt$ = Lot_GetChapterFromKeyword(OptKeyWord$)
IF INT(Lot_GetChapterValInt(chpt$,F_INOROUT)) = 1 THEN
IF Written% = 0 THEN
' Write: check box selected
' Name of the product;
' no size;
' number of node options for this product;
' product number;
' G for group
Item$="1"+ProdName$+";;"+STR(OptNum%)+";"+STR(i%)+";G"
IF Lot_LCBAddItem(hDlg&, Item$) = 0 THEN
ErrorMsg SID_ERR_POPULATELCB, ""
ERROR STFQUIT
END IF
Written% = 1
END IF
OptName$ = " "+Lot_GetChapterValStr(chpt$, F_NAME)
' Write: check box selected
' Indented Name of the feature;
' size of the feature in Kb;
' chapter number;
' product number;
' M for member;
' OptKeyWord$;
' OptSequence
Selected$ = Reg_IsNodeOptionSelected(i%,j%)
IF Selected$ = STR(1) THEN
Item$="1"+OptName$+";"+ _
Lot_MakeSizeString(Lot_GetInfChapterSize(chpt$)\1024) _
+";"+chpt$+";"+STR(i%)+";M;"+OptKeyWord$+";"+STR(j%)
ELSE
Item$="0"+OptName$+";"+ _
Lot_MakeSizeString(Lot_GetInfChapterSize(chpt$)\1024) _
+";"+chpt$+";"+STR(i%)+";M;"+OptKeyWord$+";"+STR(j%)
END IF
IF Lot_LCBAddItem(hDlg&, Item$) = 0 THEN
ErrorMsg SID_ERR_POPULATELCB, ""
ERROR STFQUIT
END IF
ELSE
Reg_ReSetNodeOptionSelected i%,j%,0
END IF
NEXT
END IF
NEXT
' Turn on the display
Lot_LCBSetRedraw hDlg&, 1
' Select the first item in the listbox
Lot_LCBSetSel hDlg&, 1
prodno$ = Lot_LCBGetItem(hDlg&,1,5) '***5-productnumber
Lot_SetSpaceDirTip hDlg&,firstchpt$,1,CINT(prodno$),FALSE
case "IDC_LCB"
SetYieldActive FALSE ' turn off yielding while handling lcb
'** If Inst% is negative that just means that the section changed.
'** If Inst% is positive then a check box was toggled.
SaveInst% = Inst%
IF Inst% < 0 THEN
Inst% = -Inst%
tiponly% = TRUE
toggle% = FALSE
ELSE
tiponly% = FALSE
toggle% = TRUE
END IF
' Find what check box was hit
index% = Inst% - IDC_LCB1 + 1
' Get the chapter no or number of options from the check box info
chpt$ = Lot_LCBGetItem(hDlg&, index%, LCBITEM_CHAPTER)
' Get the product No from the check box info
ProdNum% = CINT(Lot_LCBGetItem(hDlg&, index%, 5))
' Read Group/Member flag from the list of check boxes
flag$ = Lot_LCBGetItem(hDlg&, index%, 6)
' Read if the check box is checked or not
Selection% = CINT(Lot_LCBGetItem(hDlg&, index%, LCBITEM_SELECTED))
' Read the Keyword from the check box info
OptKeyWord$ = Lot_LCBGetItem(hDlg&, index%, 7)
'** Process the LCB info
'** If you toggle a group
IF flag$ = "G" AND toggle% = TRUE THEN
FOR i% = 1 TO CINT(chpt$)
IF Selection% = 0 AND _
Lot_LCBGetCount(hDlg&)+1 > index%+i% THEN
sel% = CINT(Lot_LCBGetItem(hDlg&, index%+i%, LCBITEM_SELECTED))
IF sel% = 1 AND Lot_LCBGetItem(hDlg&, index%+i%, 6) <> "G" THEN
notused% = Lot_LCBReplaceItem(hDlg&, index%+i%, LCBITEM_SELECTED,"0")
chpt$ = Lot_LCBGetItem(hDlg&, index%+i%, LCBITEM_CHAPTER)
Reg_ReSetNodeOptionSelected ProdNum%, i%, 0
END IF
ELSEIF Selection% = 1 AND _
Lot_LCBGetCount(hDlg&)+1 > index%+i% THEN
sel% = CINT(Lot_LCBGetItem(hDlg&, index%+i%, LCBITEM_SELECTED))
IF sel% = 0 AND Lot_LCBGetItem(hDlg&, index%+i%, 6) <> "G" THEN
notused% = Lot_LCBReplaceItem(hDlg&, index%+i%, LCBITEM_SELECTED,"1")
chpt$ = Lot_LCBGetItem(hDlg&, index%+i%, LCBITEM_CHAPTER)
Reg_ReSetNodeOptionSelected ProdNum%, i%, 1
END IF
END IF
NEXT
END IF
'** If you select a group
IF flag$ = "G" AND toggle% = FALSE THEN
prodno$ = Lot_LCBGetItem(hDlg&, index%,5) '***5-productnumber
chpt$ = Lot_GetChapterFromKeyword(Reg_GetProductAcronym(CINT(prodno$)) + gTOP$)
Lot_SetSpaceDirTip hDlg&,chpt$,index%,ProdNum%,TRUE
END IF
'** If you toggle a member
IF flag$ = "M" AND toggle% = TRUE THEN
sel% = CINT(Lot_LCBGetItem(hDlg&, index%, LCBITEM_SELECTED))
Lot_SetSpaceDirTip hDlg&,chpt$,index%,ProdNum%,FALSE
IF sel% = 0 THEN
Reg_ReSetNodeOptionSelected ProdNum%, CINT(Lot_LCBGetItem(hDlg&, index%, 8)), 0
ELSE
Reg_ReSetNodeOptionSelected ProdNum%, CINT(Lot_LCBGetItem(hDlg&, index%, 8)), 1
END IF
END IF
'** If you select a member
IF flag$ = "M" AND toggle% = FALSE THEN
Lot_SetSpaceDirTip hDlg&,chpt$,index%,ProdNum%,TRUE
END IF
SetYieldActive TRUE ' turn yielding back on
END SELECT
END SUB
'*************************************************************************
SUB NODENODEOPTIONSCB (hDlg&, CtrlId%, Classes$, LInst&)
'** Purpose: Drives DBSUIT_NODE_NODEOPTIONS dialog
'** Author: MZ
'** Arguments: Callback args
'** Returns: NONE
'*************************************************************************
'** UNC TEMPLATE FOR SINGLE COMBO-EDIT BOXES
STATIC drvIndex%, dirChanged%
DIM dirSym$, dirToChange$, dirName$, rc$, i%, Chapter$
DIM AllProdNum%,prodNum%,AllOptNum%,OptName$,OptNum%,notused%
DIM Inst%
' unc start
DIM uncPath$, fullPath$, dirPath$, drvPath$, n%, hCombo& '** MZ
DIM drvSel%, DriveChangedFlag% '** MZ
DIM curCombo$, uncOff&, unusedPath$, NumDirs%
'unc end
Inst% = CINT(LInst&)
'unc start
IF INSTR(Classes$, "IDC_COMBO") THEN
i% = VAL(MID$(Classes$, 10, LEN(Classes$) - 9))
drvIndex% = Inst%
dirChanged% = TRUE
curCombo$ = GetListItem("IDC_COMBO1", Inst%)
fullPath$ = GetListItem("IDC_EDIT",1)
Lot_SplitUNCPath fullPath$, uncPath$, dirPath$
uncOff& = INSTR(1, curCombo$, "\\")
IF uncOff > 0 THEN
Lot_SplitUNCPath MID$(curCombo$, uncOff&), uncPath$, unusedPath$
ELSE
uncPath$ = ""
END IF
SetListItem "IDC_EDIT", 1, uncPath$ + dirPath$
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
EXIT SUB
END IF
'unc end
SELECT CASE Classes$
case "__DLGINIT"
dirChanged% = FALSE
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT4)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
SetListItem "IDC_B", 1, "T"
Lot_GetDriveFreeSpaceList "IDC_COMBO1"
IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
dirSym$ = Reg_GetDirSymbolList(1)
dirSym$ = GetListItem(dirSym$,1)
dirToChange$ = GetSymbolValue(dirSym$)
ELSE
dirToChange$ = GetSymbolValue(SYM_BASEDIR$)
END IF
SetSymbolValue SYM_CHANGEDIRSYMBOL$, dirSym$
SetListItem "IDC_EDIT", 1, dirToChange$
drvIndex% = ValidateEditBox(hDlg& , 1)
'** unc end
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
AddListItem SYM_UPDATELIST$, "IDC_B1"
'Loop through the products and find the avail node options
AllProdNum% = 0
AllProdNum% = Reg_GetNumberOfProducts()
IF AllProdNum% <> 0 THEN
'Loop through the products
FOR prodNum%=1 TO AllProdNum%
AllOptNum% = 0
AllOptNum% = Reg_GetNumofNodeOptions(prodNum%)
IF AllOptNum% <> 0 THEN
'Loop though registered options and turn them on or of
FOR OptNum%=1 TO AllOptNum%
OptName$ = Reg_GetNodeOptionStr(prodNum%,OptNum%)
IF Lot_IsTheNodeOptionsAvailToNode(prodNum%,OptName$) = 0 THEN
Chapter$ = Lot_GetChapterFromKeyword(OptName$)
notused% = Lot_SetChapterFilesInCopyListInOrOut(Chapter$,0)
ELSE
Chapter$ = Lot_GetChapterFromKeyword(OptName$)
notused% = Lot_SetChapterFilesInCopyListInOrOut(Chapter$,1)
END IF
NEXT
END IF
NEXT
END IF
case "IDC_EDIT"
dirChanged% = TRUE
case "IDC_BRWSDIR"
drvSel% = ValidateBrowse(hDlg& , Inst%)
dirChanged% = TRUE
case "IDC_COMBO1"
drvIndex% = Inst%
dirChanged% = TRUE
case "IDC_OK"
IF dirChanged% = TRUE THEN
drvSel% = ValidateEditBox(hDlg& , 1)
IF drvSel% = 0 THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
drvIndex% = drvSel%
END IF
'** unc start
Lot_SplitUNCPath GetListItem("IDC_EDIT",1), uncPath$, dirPath$
IF uncPath$ = "" THEN
drvPath = LEFT$(GetListItem("IDC_COMBO1",drvIndex%), 2)
ELSE
drvPath = ""
END IF
dirToChange$ = drvPath$ + uncPath + dirPath$
'** unc end
IF ValidatePath(dirToChange$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
ELSE
dirSym$ = GetSymbolValue(SYM_CHANGEDIRSYMBOL$)
SetSymbolValue dirSym$, dirToChange$
rc$ = Lot_CallOneProductFunction(Lot_GetCurrentProduct(), _
"PathChange", gNEXT$, _
FALSE, |"| + dirSym$ + |",FALSE|)
If rc$ = gBACK Then
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
End If
Lot_RefreshDestination(dirSym$)
END IF
END IF
'Change the selection for Node options
IF Lot_IsAnyNodeOptAvailToNode() <> 0 THEN
IF IsDlgButtonChecked(hDlg&,IDC_B1) = FALSE THEN
'Loop through the products and turn the options of
AllProdNum% = 0
AllProdNum% = Reg_GetNumberOfProducts()
IF AllProdNum% <> 0 THEN
FOR prodNum%=1 TO AllProdNum%
AllOptNum% = 0
AllOptNum% = Reg_GetNumofNodeOptions(prodNum%)
IF AllOptNum% <> 0 THEN
'Loop though registered options and turn them of
FOR OptNum%=1 TO AllOptNum%
OptName$ = Reg_GetNodeOptionStr(prodNum%,OptNum%)
Chapter$ = Lot_GetChapterFromKeyword(OptName$)
notused% = Lot_SetChapterFilesInCopyListInOrOut(Chapter$,0)
NEXT
END IF
NEXT
END IF
ELSE
'Loop through the products and turn the options on
AllProdNum% = 0
AllProdNum% = Reg_GetNumberOfProducts()
IF AllProdNum% <> 0 THEN
FOR prodNum%=1 TO AllProdNum%
AllOptNum% = 0
AllOptNum% = Reg_GetNumofNodeOptions(prodNum%)
IF AllOptNum% <> 0 THEN
'Loop though registered options and turn them on
FOR OptNum%=1 TO AllOptNum%
OptName$ = Reg_GetNodeOptionStr(prodNum%,OptNum%)
Chapter$ = Lot_GetChapterFromKeyword(OptName$)
IF Lot_IsTheNodeOptionsAvailToNode(prodNum%,OptName$) = 1 THEN
notused% = Lot_SetChapterFilesInCopyListInOrOut(Chapter$,1)
END IF
NEXT
END IF
NEXT
END IF
END IF
END IF
END SELECT
END SUB
'*************************************************************************
SUB Lot_SetSpaceDirTip(hDlg&,chpt$,index%,ProdNum%,tiponly%)
'** Purpose: Fill with info for Server NodeOptions dialogs. Call this every
'** time the LCB changes selection or state in SRVNODEOPTIONSCB
'** Author: MZ
'** Arguments: hDlg&
'** Chapter$
'** index%
'** tiponly%
'*************************************************************************
STATIC lckSpace&, drvSave$
DIM dest$, dirName$, dirSym$, drv$, tips$, uncVol$, dirPath$
DIM lckCost&, lckAvail&
DIM bitmap%, n%, notused%
'** Get the tip and chapter from the current LCB item
tips$ = Lot_GetChapterValStr(chpt$, F_TIPS)
'** If instructed then build the custom cost list
IF GetListLength(SYM_CUSTOMCOST$) = 0 OR tiponly <> FALSE THEN
notused% = LcbGetChapterCost("", "", SYM_CUSTOMCOST$, "")
END IF
'** Get the destination directory and dirName
dirSym$ = Lot_GetChapterValStr(chpt$, F_DESTDIRSYM)
IF dirsym$ <> SYM_LOTUSAPPDIR$ AND GetSymbolValue(SYM_NETWORK$) <> gSTANDARD$ THEN
dirSym$ = Reg_GetDirSymbolList(ProdNum%)
dirSym$ = GetListItem(dirSym$, 1)
END IF
dest$ = GetSymbolValue(dirSym$)
dirName$ = GetSymbolValue(dirSym$ + gNAME$)
drv$ = MID$(dest$, 1, 1)
Lot_SplitUNCPath dest$, uncVol$, dirPath$
IF uncVol$ = "" THEN
n% = ASC(drv$) - ASC("a") + 1
lckCost& = CLNG(GetListItem(SYM_CUSTOMCOST$, n%)) \ 1024
ELSE
lckCost& = CLNG(GetListItem(uncVol$, UNC_COST)) \ 1024
END IF
'** Set the space available
IF drv$ = drvSave$ THEN
lckAvail& = lckSpace&
ELSE
lckAvail& = GetFreeSpaceForDrive(dest$)
lckSpace& = lckAvail&
drvSave$ = drv$
END IF
'** Set the bitmap (if any)
bitmap% = Lot_GetChapterValInt(chpt$, F_BITMAP)
IF bitmap% <> 0 THEN
SetListItem "IDC_BMP", 1, STR$(bitmap%)
AddListItem SYM_UPDATELIST$, "IDC_BMP1"
END IF
'** Set all the values in the dialogs
SetWindowText GetDlgItem(hDlg&, IDC_TEXT1), tips$
SetWindowText GetDlgItem(hDlg&, IDC_TEXT5), Lot_MakeSizeString(lckCost&)
SetWindowText GetDlgItem(hDlg&, IDC_TEXT7), Lot_MakeSizeString(lckAvail&)
SetWindowText GetDlgItem(hDlg&, IDC_TEXT9), dest$
'SetWindowText GetDlgItem(hDlg&, IDC_TEXT8), dirName$
END SUB
'*************************************************************************
SUB AUTOEXECCB (hDlg&, CtrlId%, Classes$, LInst&)
'** Purpose:
'**
'** Author: Christopher Moy
'** Arguments: hDlg&
'** CtrlId%
'** Classes$
'** LInst&
'*************************************************************************
DIM modflag%, notused1$, Inst%
Inst% = CINT(LInst&)
SELECT CASE Classes$
CASE "__DLGINIT"
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT2)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT3)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT4)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT5)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
CASE "IDC_OK" '** Yes button
modflag% = 0
IF GetSymbolValue(SYM_NEEDNOTES$) <> gFALSE$ THEN
modflag% = 1 '** autoexec needs notes
END IF
IF GetSymbolValue(SYM_NEEDSHARE$) <> gFALSE$ THEN
modflag% = modflag% + 2 '** autoexec needs share
END IF
IF modflag% <> FALSE THEN
notused1$=ModifyAutoexec(modflag%, 1, "AUTOEXEC.LTS")
END IF
SetSymbolValue SYM_AUTOEXEC_CHOICE$, gAUTO$
CASE "IDC_MENU" '** Make Copy button **
modflag% = 0 '** test flag situation
IF GetSymbolValue(SYM_NEEDNOTES$) <> gFALSE$ THEN
modflag% = 1 '** autoexec needs notes
END IF
IF GetSymbolValue(SYM_NEEDSHARE$) <> gFALSE$ THEN
modflag% = modflag% + 2 '** autoexec needs share
END IF
IF modflag% <> FALSE THEN
notused1$=ModifyAutoexec(modflag%, 0, "AUTOEXEC.LTS")
END IF
SetSymbolValue SYM_AUTOEXEC_CHOICE$, gAUTOCOPY$
CASE "IDC_CONTINUE" '** No button
SetSymbolValue SYM_AUTOEXEC_CHOICE$, gMAN$
END SELECT
END SUB
'*************************************************************************
SUB INSTALLCOMPLETECB (hDlg&, CtrlId%, Classes$, LInst&)
'** Purpose:
'**
'** Author: Christopher Moy
'** Arguments: hDlg&
'** CtrlId%
'** Classes$
'** LInst&
'*************************************************************************
DIM notused1$, hwnd%, lr%, Inst%
Inst% = CINT(LInst&)
SELECT CASE Classes$
CASE "__DLGINIT"
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT2)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
%rem
CASE "IDC_CONTINUE" '** Restart button
notused1$ = Lot_CallProductFunctions("PostSuccessReg", gNext, FALSE, gALLPRODUCTS,"")
hwnd%=FindWindow("LInstallWClass",LdString(SID_INST_WINDOW_TITLE))
' Japanese build
' hwnd%=FindWindow("LInstallWClass","âìü[â^âX âCâôâXâgü[âïâvâìâOâëâÇé╓éµéñé▒é╗")
lr%=SendMessage(hwnd%, WM_COMMAND, UM_REBOOTFLAG, 0)
%endrem
CASE "IDC_OK" '** Done button
END SELECT
END SUB
'*************************************************************************
SUB PARENTDIRCB (hDlg&, CtrlId%, Classes$, LInst&)
'** Purpose: Drives DB_PARENTDIR dialog
'** Author: MZ,TV
'** Arguments: Callback args
'** Returns: NONE
'*************************************************************************
STATIC drvIndex%(1 to MAX_NO_DRIVECOMBOS)
' STATIC dirChanged%
DIM dirSym$, dirToChange$, dirName$, rc$, i%, Chapter$, Inst%
DIM AllProdNum%,prodNum%,AllOptNum%,OptName$,OptNum%,notused%
'** unc stuff
DIM uncPath$, dirPath$, drvPath$ '** MZ
DIM drvSel%, DriveChangedFlag% '** MZ
DIM uncOff&, unusedPath$, combobox$, editbox$
DIM curCombo$, fullPath$
DriveChangedFlag% = FALSE
Inst% = CINT(LInst&)
'** Handle all the combo boxes here (if any)
IF INSTR(Classes$, "IDC_COMBO") THEN
i% = VAL(MID$(Classes$, 10, LEN(Classes$) - 9))
comboBox = "IDC_COMBO"+Right$(Str$(i%),1)
editBox = "IDC_EDIT"+Right$(Str$(i%),1)
drvIndex%(i%) = Inst%
' dirChanged% = TRUE
curCombo$ = GetListItem(comboBox, Inst%)
fullPath$ = GetListItem("IDC_EDIT",i)
Lot_SplitUNCPath fullPath$, uncPath$, dirPath$
uncOff& = INSTR(1, curCombo$, "\\")
IF uncOff > 0 THEN
Lot_SplitUNCPath MID$(curCombo$, uncOff&), uncPath$, unusedPath$
ELSE
uncPath$ = ""
END IF
SetListItem "IDC_EDIT", i, uncPath$ + dirPath$
AddListItem SYM_UPDATELIST$, editBox
EXIT SUB
END IF
'** unc end
SELECT CASE Classes$
case "__DLGINIT"
' dirChanged% = FALSE
'For server, want to update always, since we fiddle with the drive list
' IF GetSymbolValue(SYM_NETWORK$) = gSERVER$ THEN dirChanged% = TRUE
AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT1)
AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
Lot_GetDriveFreeSpaceList "IDC_COMBO1"
dirToChange$ = GetSymbolValue(SYM_PARENTDIR$)
SetListItem "IDC_EDIT", 1, dirToChange$
drvIndex%(1) = ValidateEditBox(hDlg& , 1)
AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
' case "IDC_EDIT"
' dirChanged% = TRUE
case "IDC_BRWSDIR"
drvSel% = ValidateBrowse(hDlg& , Inst%)
' dirChanged% = TRUE
case "IDC_OK"
' IF dirChanged% = TRUE THEN
drvSel% = ValidateEditBox(hDlg& , 1)
IF drvSel% = 0 THEN
SetListItem "__LASTSTATUS", 1, "Q"
EXIT SUB
ELSE
drvIndex%(1) = drvSel%
END IF
'** UNC stuff
Lot_SplitUNCPath GetListItem("IDC_EDIT",1), uncPath$, dirPath$
IF uncPath$ = "" THEN
drvPath = LEFT$(GetListItem("IDC_COMBO1",drvIndex%(1)), 2)
ELSE
drvPath = ""
END IF
dirToChange$ = drvPath$ + uncPath + dirPath$
IF ValidatePath(dirToChange$) = FALSE THEN
SetListItem "__LASTSTATUS", 1, "Q"
ELSE
SetSymbolValue SYM_PARENTDIR$, dirToChange$
IF Reg_GetProdSupportForShare32(1) = 1 THEN
' SetTheComponentsDir
END IF
Lot_RefreshDestination(SYM_PARENTDIR$)
END IF
' END IF
END SELECT
END SUB
'*************************************************************************