home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 February / PCWK0297.iso / lotus / english / winagent / install.dsk / LIC.LSS < prev    next >
Text File  |  1995-01-25  |  13KB  |  678 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103. OPTION DECLARE
  104. USE "TOOLKIT"
  105.  
  106.  
  107.  
  108. DECLARE PUBLIC FUNCTION ProductRegLIC (prodno%, network$, direction$) AS STRING
  109. DECLARE PUBLIC FUNCTION DefaultUserRegLIC (prodno%, network$, direction$) AS STRING
  110. DECLARE PUBLIC FUNCTION InitLIC (prodno%, network$, direction$, basedir$) AS STRING
  111. DECLARE PUBLIC FUNCTION PathChangeLIC (prodno%, network$, direction$, destdirsym$, mainprodsonly%) AS STRING
  112. DECLARE PUBLIC FUNCTION InitCopyListLIC (prodno%, network$, direction$) AS STRING
  113. DECLARE PUBLIC FUNCTION PreCopyConfigLIC (prodno%, network$, direction$, lic%) AS STRING
  114. DECLARE PUBLIC FUNCTION AddTheBillBoardsLIC (prodno%, network$, direction$, nbytes&) AS STRING
  115. DECLARE PUBLIC FUNCTION PostCopyConfigLIC (prodno%, network$, direction$, programgroup$) AS STRING
  116. DECLARE PUBLIC FUNCTION AddIconsLIC (prodno%, network$, direction$, programgroup$) AS STRING
  117. DECLARE PUBLIC FUNCTION UILIC (prodno%, network$, direction$) AS STRING
  118. DECLARE PUBLIC FUNCTION PostSuccessRegLIC (prodno%, network$, direction$) AS STRING
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137. SUB Initialize
  138.    Reg_RegisterProductNames "LIC", LdString(SID_LIC) 
  139. END SUB
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159. PUBLIC FUNCTION ProductRegLIC (prodno%, network$, direction$) AS STRING
  160.    ProductRegLIC = gNEXT
  161.  
  162.    Reg_SetSupportedInstallTypes prodno%, 1, 1, 1
  163.    Reg_SetProdSizes prodno%, 7000, 7000
  164.    Reg_SetUIInOrOut prodno%, 1
  165.    Reg_SetShareFlags prodno%, 0, 0, 0, 0 
  166.  
  167.    Reg_SetAllowUserToPickInSuite prodno%, 0
  168.  
  169.    
  170.    
  171.    
  172.  
  173.    
  174.    
  175.    
  176.    Reg_SetSrvSupport prodno%, 0
  177.    Reg_SetLicenseSupport prodno%, 0
  178.    Reg_SetATMSupport prodno%,0
  179.  
  180.    
  181.    
  182.  
  183.  
  184. END FUNCTION
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201. PUBLIC FUNCTION DefaultUserRegLIC (prodno%, network$, direction$) AS STRING
  202.    DefaultUserRegLIC = gNEXT
  203.  
  204. END FUNCTION
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220. PUBLIC FUNCTION InitLIC (prodno%, network$, direction$, basedir$) AS STRING
  221. DIM sym$, symname$, n%, i%, licsupport%
  222.  
  223.    InitLIC = direction$
  224.    
  225.    If direction$ = gBACK Then
  226.       EXIT FUNCTION
  227.    End If
  228.  
  229.    If network$ = gSERVER Then
  230.      Reg_SetUIInOrOut prodno%, 1
  231.    End If
  232.  
  233.    If network$ <> gSERVER Then
  234.      Reg_SetUIInOrOut prodno%, FALSE
  235.    Else
  236.       n% = Reg_GetNumberOfProducts()
  237.       licsupport% = FALSE
  238.       
  239.       FOR i% = 1 TO n%
  240.      IF Reg_GetProdSupportForLicense(i%) <> FALSE AND i% <> prodno% Then
  241.         licsupport% = TRUE
  242.         EXIT FOR
  243.      END IF
  244.       NEXT
  245.       If licsupport% = FALSE Then
  246.      Reg_SetUIInOrOut prodno%, FALSE
  247.       End If
  248.    End iF
  249.  
  250.    
  251.    sym$ = Reg_GetDirSymbolList(prodno%)
  252.    symname$ = sym$ + gNAME
  253.  
  254.    SetListItem sym$, 1, SYM_LICDIR$
  255.    SetListItem symname$, 1, SYM_LICDIR$ + gNAME$
  256.  
  257.    SetSymbolValue SYM_LICDIR$, basedir$ + LdString(SID_LIC_LICDIR)
  258.    SetSymbolValue SYM_LICDIR$ + gNAME$, LdString(SID_LIC_LICDIRNAME)
  259.  
  260. END FUNCTION
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273. PUBLIC FUNCTION PathChangeLIC (prodno%, network$, direction$, destdirsym$, mainprodsonly%) AS STRING
  274.    
  275.    
  276.    
  277.  
  278.  
  279.    PathChangeLIC = gNEXT$
  280.  
  281. END FUNCTION
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293. PUBLIC FUNCTION InitCopyListLIC (prodno%, network$, direction$) AS STRING
  294. DIM sym$, chpt$, n%, i%, licsupport%
  295.  
  296.  
  297. ON Error STFQUIT GOTO COPYLISTERROR
  298.  
  299.    InitCopyListLIC = direction$
  300.    
  301.    If direction$ = gBACK Then
  302.       EXIT FUNCTION
  303.    End If
  304.  
  305.  
  306.    sym$ = Reg_GetProductAcronym(prodno%) + gTOP$
  307.    chpt$ = Lot_GetChapterFromKeyWord(sym$)
  308.  
  309.    If network$ = gSERVER Then
  310.    
  311.       If GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
  312.          n% = Reg_GetNumberOfProducts()
  313.           licsupport% = FALSE
  314.         
  315.     
  316.           FOR i% = 1 TO n%
  317.       If Reg_GetProdSupportForLicense(i%) <> FALSE AND _
  318.          i% <> prodno% AND _
  319.          i% <> 1   AND _
  320.          Reg_GetUIInOrOut(i%) <> FALSE  Then
  321.         licsupport% = TRUE
  322.         EXIT FOR
  323.       End If
  324.           NEXT
  325.           If licsupport% = FALSE Then
  326.        Reg_SetUIInOrOut prodno%, FALSE
  327.           Else
  328.        Lot_InitializeCopyList chpt$, F_COMPLETE
  329.           End If
  330.       Else
  331.     Lot_InitializeCopyList chpt$, F_COMPLETE
  332.         
  333.       End If
  334.  
  335.    End If
  336.  
  337.    EXIT FUNCTION
  338.  
  339. COPYLISTERROR:
  340.    ErrorMsg 0, "Developers: You need to have licenser section with LICTOP in INF file"
  341.    ERROR STFQUIT
  342.  
  343. END FUNCTION
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354. PUBLIC FUNCTION PreCopyConfigLIC (prodno%, network$, direction$, lic%) AS STRING
  355.    PreCopyConfigLIC = gNEXT
  356. END FUNCTION
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373. PUBLIC FUNCTION AddTheBillBoardsLIC (prodno%, network$, direction$, nbytes&) AS STRING
  374.    AddTheBillBoardsLIC = direction$
  375.    
  376.    If direction$ = gBACK Then
  377.       EXIT FUNCTION
  378.    End If
  379.  
  380. END FUNCTION
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392. PUBLIC FUNCTION PostCopyConfigLIC (prodno%, network$, direction$, programgroup$) AS STRING
  393.    DIM i%, n%,countdir$
  394.  
  395.    PostCopyConfigLIC = gNEXT
  396.  
  397.    n% = Reg_GetNumberOfProducts()
  398.    FOR i% = 1 to n%
  399.       countdir$ = Reg_GetCountDirectory (i%)
  400.       IF Reg_GetProdSupportForLicense (i%) <> FALSE   AND _
  401.      Reg_IsLicenseSelected (i%)        <> FALSE   AND _
  402.      countdir$                         <> ""      THEN
  403.         CreateDir countdir$, cmoNone
  404.       END IF
  405.    NEXT
  406.  
  407. END FUNCTION
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417. PUBLIC FUNCTION AddIconsLIC (prodno%, network$, direction$, programgroup$) AS STRING
  418.    DIM i%, n%,licdir$
  419.  
  420.    AddIconsLIC = direction$
  421.    
  422.    If direction$ = gBACK Then
  423.       EXIT FUNCTION
  424.    End If
  425.  
  426.    If network$ = gSERVER AND Reg_IsLicenseSelected(1) <> FALSE Then
  427.       licdir$ = Lot_WhereIsFeature(prodno%, "LICTOP", "licenser.exe")
  428.  
  429.       ASSERT licdir$ <> "", ""
  430.       CreateProgmanItem  programgroup$, LdString(SID_LIC_VIEWSTRING), licdir$ + "licenser.exe", "", cmoOverwrite
  431.          
  432.    End If
  433.  
  434. END FUNCTION
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446. PUBLIC FUNCTION UILIC (prodno%, network$, direction$) AS STRING
  447.    DIM notused%, dirSym$, licensedselected%, basedir$
  448.  
  449.    UILIC = direction$
  450.    
  451.  
  452.    If direction$ = gNEXT$ Then
  453.       dirSym$ = Reg_GetDirSymbolList(1)
  454.       If GetListLength(dirSym$) <= 0 Then
  455.       ErrorMsg SID_ERR_SRV_MUST_HAVE_MAINDIR, "" 
  456.       ERROR STFQUIT
  457.       End If
  458.  
  459.       dirSym$ = GetListItem(dirSym$, 1)
  460.  
  461.       basedir$ = GetSymbolValue(SYM_BASEDIR$)
  462.       basedir$ = LEFT$(GetSymbolValue(dirSym$), 1) + _
  463.          RIGHT$(basedir$, LEN(basedir$)-1)
  464.  
  465.       SetSymbolValue SYM_LICDIR$, basedir$ + LdString(SID_LIC_LICDIR)
  466.       Lot_RefreshDestination(SYM_LICDIR$)
  467.    End If
  468.  
  469.    notused% = RegisterCallback("LIC", "LICENSERCB")
  470.    UILIC$ = PopupModalDlg (DB_LICENSER,DB_LICENSER)
  471.  
  472. END FUNCTION
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484. PUBLIC FUNCTION PostSuccessRegLIC (prodno%, network$, direction$) AS STRING
  485.  
  486.    PostSuccessRegLIC = gNEXT
  487.  
  488. END FUNCTION
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503. PUBLIC SUB LICENSERCB (hDlg%, CtrlId%, Classes$, Inst%)
  504.    STATIC drvIndex%(1 to 2), dirChanged%, licensedprod%
  505.    STATIC licensedselected%
  506.    DIM i%, n%, dirToChange$, countdir$
  507.    DIM toggleto%, notused%
  508.    DIM firstslash%, lastslash%, fullpath$
  509.    DIM countbasedir$, counttaildir$
  510.    DIM chpt$, dr$, dirSym$
  511.  
  512.    
  513.    IF INSTR(Classes$, "IDC_COMBO") THEN
  514.       i% = VAL(MID$(Classes$, 10, LEN(Classes$) - 9))
  515.       drvIndex%(i%) = Inst%
  516.       dirChanged%   = TRUE
  517.       EXIT SUB
  518.    END IF
  519.  
  520.    SELECT CASE Classes$
  521.    
  522.    CASE "__DLGINIT"
  523.       dirChanged%  = FALSE
  524.  
  525.       AddListItem SYM_NORMALFONT$, STR$(IDC_TEXT4)
  526.       AddListItem SYM_UPDATELIST$, SYM_NORMALFONT$
  527.  
  528.       
  529.       n% = Reg_GetNumberOfProducts()
  530.       licensedprod% = 0
  531.       FOR i% = 1 to n%
  532.          IF Reg_GetProdSupportForLicense (i%) <> FALSE THEN
  533.             licensedprod% = i%
  534.             EXIT FOR
  535.          END IF
  536.       NEXT
  537.       licensedselected% = Reg_IsLicenseSelected(licensedprod%)
  538.       IF licensedselected% = FALSE THEN
  539.      SetListItem "IDC_B", 1, "F"            
  540.      notused% = EnableWindow(GetDlgItem(hDlg%,IDC_TEXT1), FALSE)
  541.      notused% = EnableWindow(GetDlgItem(hDlg%,IDC_TEXT2), FALSE)
  542.      notused% = EnableWindow(GetDlgItem(hDlg%,IDC_EDIT1), FALSE)
  543.      notused% = EnableWindow(GetDlgItem(hDlg%,IDC_EDIT2), FALSE)
  544.      notused% = EnableWindow(GetDlgItem(hDlg%,IDC_COMBO1), FALSE)
  545.      notused% = EnableWindow(GetDlgItem(hDlg%,IDC_COMBO2), FALSE)
  546.       ELSE
  547.      SetListItem "IDC_B", 1, "T"            
  548.       END IF
  549.       AddListItem SYM_UPDATELIST$, "IDC_B1"
  550.  
  551.       
  552.       
  553.  
  554.       countdir$ = Lot_TrimEndSlash (Reg_GetCountDirectory (licensedprod%))
  555.       IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
  556.           countdir$ = LdString(SID_LICCOUNTDIR)
  557.       END IF
  558.       i% = INSTR(countdir$, "\") : n% = i%
  559.       WHILE i% <> 0 
  560.          n% = i% :  i% = INSTR(i%+1, countdir$, "\")
  561.       WEND
  562.       countdir$ = countdir$ + "\"
  563.  
  564.       
  565.       dirSym$ = Reg_GetDirSymbolList(licensedprod%)
  566.       dirSym$ = GetListItem(dirSym$, 1)
  567.       dr$ = LEFT(GetSymbolValue(dirSym$), 1)
  568.       countdir$ = dr$ + RIGHT(countdir$,LEN(countdir$)-1)
  569.  
  570.       
  571.       countbasedir$ = LEFT$(countdir$, n%)
  572.       counttaildir$ = RIGHT$(countdir$, LEN(countdir$)-n%)
  573.  
  574.       SetListItem "IDC_TEXT", 3, + counttaildir$
  575.       AddListItem  SYM_UPDATELIST$, "IDC_TEXT3"
  576.  
  577.       dirToChange$ = GetSymbolValue(SYM_LICDIR$)
  578.       Lot_GetDriveFreeSpaceList "IDC_COMBO1"
  579.       drvIndex%(1) = SelectDriveCombo ("IDC_COMBO1", dirToChange$)
  580.       SetListItem "IDC_EDIT", 1, Lot_ExtractDirectory(dirToChange$)
  581.       AddListItem SYM_UPDATELIST$, "IDC_EDIT1"
  582.  
  583.       dirToChange$ = countbasedir$
  584.       Lot_GetDriveFreeSpaceList "IDC_COMBO2"
  585.       drvIndex%(2) = SelectDriveCombo ("IDC_COMBO2", dirToChange$)
  586.       SetListItem "IDC_EDIT", 2, Lot_ExtractDirectory(dirToChange$)
  587.       AddListItem SYM_UPDATELIST$, "IDC_EDIT2"
  588.  
  589.  
  590.    CASE "IDC_B"
  591.       IF licensedselected% = FALSE THEN
  592.      toggleto% = TRUE
  593.      licensedselected% = 1
  594.       ELSE
  595.      toggleto% = FALSE
  596.      licensedselected% = 0
  597.       END IF
  598.       
  599.       notused% = EnableWindow(GetDlgItem(hDlg%,IDC_TEXT1), toggleto%)
  600.       notused% = EnableWindow(GetDlgItem(hDlg%,IDC_TEXT2), toggleto%)
  601.       notused% = EnableWindow(GetDlgItem(hDlg%,IDC_EDIT1), toggleto%)
  602.       notused% = EnableWindow(GetDlgItem(hDlg%,IDC_EDIT2), toggleto%)
  603.       notused% = EnableWindow(GetDlgItem(hDlg%,IDC_COMBO1), toggleto%)
  604.       notused% = EnableWindow(GetDlgItem(hDlg%,IDC_COMBO2), toggleto%)
  605.  
  606.    case "IDC_EDIT"
  607.       dirChanged% = TRUE
  608.  
  609.    case "IDC_OK"
  610.       IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
  611.           
  612.     
  613.     n% = Reg_GetNumberOfProducts()
  614.           FOR i% = 1 to n%
  615.          IF Reg_GetProdSupportForLicense (i%) <> FALSE AND _
  616.         Reg_GetUIInOrOut(i%) <> FALSE  THEN
  617.           Reg_SetLicenseSelected i%, licensedselected%
  618.          END IF
  619.           NEXT
  620.       ELSE    
  621.      Reg_SetLicenseSelected licensedprod%, licensedselected%
  622.       END IF
  623.  
  624.       
  625.       IF Reg_IsLicenseSelected(licensedprod%) <> FALSE Then
  626.          chpt$ = Lot_GetChapterFromKeyword("LIC" + gTOP$)
  627.          notused% = Lot_SetChapterFilesInCopyListInOrOut(chpt$, 1)    
  628.       ELSE
  629.          chpt$ = Lot_GetChapterFromKeyword("LIC" + gTOP$)
  630.          notused% = Lot_SetChapterFilesInCopyListInOrOut(chpt$, 0)
  631.       END IF
  632.  
  633.       IF Reg_IsLicenseSelected(licensedprod%) <> FALSE Then
  634.          IF dirChanged% = TRUE Then
  635.             
  636.             dirToChange$ = LEFT$(GetListItem("IDC_COMBO1",drvIndex%(1)), 2) + _
  637.             GetListItem("IDC_EDIT", 1)
  638.             IF ValidatePath(dirToChange$) = FALSE THEN
  639.                SetListItem "__LASTSTATUS", 1, "Q"
  640.                EXIT SUB
  641.             ELSE
  642.                SetSymbolValue SYM_LICDIR$, dirToChange$
  643.                Lot_RefreshDestination(SYM_LICDIR$)
  644.             END IF
  645.          END IF
  646.    
  647.    
  648.           
  649.           dirToChange$ = LEFT$(GetListItem("IDC_COMBO2",drvIndex%(2)), 2) + _
  650.            GetListItem("IDC_EDIT", 2)
  651.            licensedprod% = 0
  652.            FOR i% = 1 to Reg_GetNumberofProducts()
  653.                IF Reg_GetProdSupportForLicense(i%) <> FALSE THEN
  654.                    licensedprod% = i%
  655.                    countdir$ = Lot_TrimEndSlash(Reg_GetCountDirectory(licensedprod%))
  656.                    firstslash% = INSTR(countdir$, "\") : lastslash% = firstslash%
  657.                    WHILE firstslash% <> 0
  658.                        lastslash% = firstslash% : firstslash% = INSTR(firstslash%+1, countdir$, "\")
  659.                    WEND
  660.                    countdir$ = countdir$ + "\"
  661.                    counttaildir$ = RIGHT$(countdir$, LEN(countdir$) - lastslash%)
  662.                    fullpath$ = MakePath(dirToChange$, counttaildir$)
  663.                    IF ValidatePath(fullpath$) = FALSE THEN
  664.                        SetListItem "__LASTSTATUS", 1, "Q"
  665.                        EXIT SUB
  666.                    ELSE
  667.                        Reg_SetCountDirectory licensedprod%, fullpath$
  668.                    END IF
  669.                END IF
  670.            NEXT
  671.       END IF
  672.    END SELECT
  673.  
  674. END SUB
  675.  
  676.  
  677.  
  678.