home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Bonus / lotus123rel9 / install.dsk / REGISTER.LSS < prev    next >
Encoding:
Text File  |  1997-07-02  |  69.2 KB  |  1,797 lines

  1. ''/*********************************************************************
  2. ''
  3. ''   Module Name:   register.lss
  4. ''
  5. ''   Module Code:   TOOLKIT
  6. ''
  7. ''   Author:              
  8. ''
  9. ''   Creation Date:  Jan 30, 1996
  10. ''
  11. ''   Copyright Lotus Development Corporation, (c) 1996
  12. ''
  13. ''
  14. ''  
  15. ''   Description: 
  16. ''     Lotus script registration file for common install
  17. ''   
  18. ''   
  19. ''   Additional authors:
  20. ''
  21. ''   Change History:
  22. ''   $Log:   //SS_DEV/INSTLOG/CI/cominst/toolkit/register.lss  $
  23. '' 
  24. ''    Rev 1.4   02 Jul 1997 11:22:36   jdonohue
  25. '' Get default program manager group string from resource
  26. '' 
  27. ''    Rev 1.3   30 Jan 1996 15:41:06   jdonohue
  28. '' Removed call to GetDBCSSymbolValue
  29. ''*********************************************************************/
  30.  
  31. USE "SETUPAPI"
  32.  
  33. '********************** Product Registration Subroutines ****************
  34.  
  35. DECLARE PUBLIC SUB Reg_RegisterProductNames(Acronym$,Full_Name$)
  36. DECLARE PUBLIC SUB Reg_SetSupportedInstallTypes(ProdNo%,Complete%,Custom%,Laptop%)
  37. DECLARE PUBLIC SUB Reg_SetSelectedInstallType(ProdNo%,TypeSelected$) 
  38. DECLARE PUBLIC SUB Reg_SetProdSizes(ProdNo%,FullSize&,MinSize&) 
  39. DECLARE PUBLIC SUB Reg_SetUIInOrOut(ProdNo%,Flag%) 
  40. DECLARE PUBLIC SUB Reg_SetAllowUserToPickInSuite(ProdNo%,Flag%) 
  41. DECLARE PUBLIC SUB Reg_SetShareFlags(ProdNo%,Share%,DLens%,SQL%,Paradox%)
  42. DECLARE PUBLIC SUB Reg_SetShare32Flag(ProdNo%,Share32%)
  43. DECLARE PUBLIC SUB Reg_SetCDOption(ProdNo%,Inst%,CDOptStr$)
  44. DECLARE PUBLIC SUB Reg_SetCDOptionSelected(ProdNo%,Inst%,Selection%)
  45. DECLARE PUBLIC SUB Reg_ReSetCDOptionSelected(ProdNo%,Inst%,Selection%)
  46. DECLARE PUBLIC SUB Reg_ReSetCDOptionSelectedToDefault(ProdNo%,Inst%)
  47. DECLARE PUBLIC SUB Reg_ReSetAllCDOptsSelToDefaults(ProdNo%)
  48. DECLARE PUBLIC SUB Reg_SetNodeOption(ProdNo%,Inst%,NodeOptStr$) 
  49. DECLARE PUBLIC SUB Reg_SetNodeOptionSelected(ProdNo%,Inst%,Selection%)
  50. DECLARE PUBLIC SUB Reg_ReSetNodeOptionSelected(ProdNo%,Inst%,Selection%)
  51. DECLARE PUBLIC SUB Reg_ReSetNodeOptionSelectedToDefault(ProdNo%,Inst%)
  52. DECLARE PUBLIC SUB Reg_ReSetAllNodeOptsSelToDefaults(ProdNo%)
  53. DECLARE PUBLIC SUB Reg_SetSrvSupport(ProdNo%,SrvFlag%) 
  54. DECLARE PUBLIC SUB Reg_SetDistSupport(ProdNo%,DistFlag%) 
  55. DECLARE PUBLIC SUB Reg_SetExtraProdDirsNum(ProdNo%,DirsNum%) 
  56. DECLARE PUBLIC SUB Reg_SetLicenseSupport(ProdNo%,LicFlag%) 
  57. DECLARE PUBLIC SUB Reg_SetLicenseSelected(ProdNo%,LicFlag%) 
  58. DECLARE PUBLIC SUB Reg_SetCountDirectory(ProdNo%,CountDir$) 
  59. DECLARE PUBLIC SUB Reg_SetATMSupport(ProdNo%,ATMFlag%) 
  60. DECLARE PUBLIC SUB Reg_SetProgManagerGroup(ProdNo%,GroupName$) 
  61. DECLARE PUBLIC SUB Reg_SetSystemFileSize(ProdNo%,Size&)
  62. DECLARE PUBLIC SUB Reg_SetBillboardNumber(ProdNo%,BBNum%) 
  63. DECLARE PUBLIC SUB Reg_SetSHAREEXESupport(ProdNo%,Flag%) 
  64. DECLARE PUBLIC SUB Reg_SetNotesSupport(ProdNo%,Flag%) 
  65. DECLARE PUBLIC SUB Reg_SetPreviousVersion(ProdNo%,prev$) 
  66. DECLARE PUBLIC SUB Reg_SetMoreDirsData(ProdNo%,CBName$,DialogID%,HelpID&) 
  67. DECLARE PUBLIC SUB Reg_SetObsFiles(ProdNo%,support%)  
  68.  
  69. '********************** Product Registration Functions ****************
  70.  
  71. DECLARE PUBLIC FUNCTION Reg_GetNumberOfProducts() AS INTEGER
  72. DECLARE PUBLIC FUNCTION Reg_GetProductNo(ProdAcronym$)  AS INTEGER 
  73. DECLARE PUBLIC FUNCTION Reg_GetProductAcronym(ProdNo%)  AS STRING 
  74. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForFullInstall(ProdNo%) AS INTEGER
  75. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForCustInstall(ProdNo%) AS INTEGER
  76. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForMinInstall(ProdNo%) AS INTEGER
  77. DECLARE PUBLIC FUNCTION Reg_GetProdSelectedInstallType(ProdNo%) AS STRING
  78. DECLARE PUBLIC FUNCTION Reg_GetProdFullSize(ProdNo%) AS LONG
  79. DECLARE PUBLIC FUNCTION Reg_GetProdMinSize(ProdNo%) AS LONG
  80. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForShare(ProdNo%) AS INTEGER
  81. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForShare32(ProdNo%) AS INTEGER
  82. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForDataLens(ProdNo%) AS INTEGER
  83. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForSQL(ProdNo%) AS INTEGER
  84. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForParadox(ProdNo%) AS INTEGER
  85. DECLARE PUBLIC FUNCTION Reg_GetCDOptionStr(ProdNo%,Inst%) AS STRING
  86. DECLARE PUBLIC FUNCTION Reg_GetNodeOptionStr(ProdNo%,Inst%) AS STRING
  87. DECLARE PUBLIC FUNCTION Reg_GetNumOfCDOptions(ProdNo%) AS INTEGER
  88. DECLARE PUBLIC FUNCTION Reg_GetNumOfNodeOptions(ProdNo%) AS INTEGER
  89. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForSrv(ProdNo%) AS INTEGER
  90. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForDist(ProdNo%) AS INTEGER
  91. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForExtraProdDirs(ProdNo%) AS INTEGER
  92. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForLicense(ProdNo%) AS INTEGER
  93. DECLARE PUBLIC FUNCTION Reg_IsLicenseSelected(ProdNo%) AS INTEGER
  94. DECLARE PUBLIC FUNCTION Reg_GetCountDirectory(ProdNo%)   AS STRING
  95. DECLARE PUBLIC FUNCTION Reg_GetProdSupportForATM(ProdNo%) AS INTEGER
  96. DECLARE PUBLIC FUNCTION Reg_GetDirSymbolList(ProdNo%)   AS STRING
  97. DECLARE PUBLIC FUNCTION Reg_GetProgManagerGroupName(ProdNo%)   AS STRING
  98. DECLARE PUBLIC FUNCTION Reg_GetNumOfDirectories(ProdNo%) AS INTEGER
  99. DECLARE PUBLIC FUNCTION Reg_GetSystemFileSize(ProdNo%) AS LONG
  100. DECLARE PUBLIC FUNCTION Reg_IsCDOptionSelected(ProdNo%,Inst%) AS STRING
  101. DECLARE PUBLIC FUNCTION Reg_IsCDOptionDefaultSelected(ProdNo%,Inst%) AS STRING
  102. DECLARE PUBLIC FUNCTION Reg_IsNodeOptionSelected(ProdNo%,Inst%) AS STRING
  103. DECLARE PUBLIC FUNCTION Reg_IsNodeOptionDefaultSelected(ProdNo%,Inst%) AS STRING
  104. DECLARE PUBLIC FUNCTION Reg_GetBillboardNumber(ProdNo%)   AS INTEGER
  105. DECLARE PUBLIC FUNCTION Reg_GetProductName(ProdNo%)  AS STRING 
  106. DECLARE PUBLIC FUNCTION Reg_GetUIInOrOut(ProdNo%)  AS INTEGER
  107. DECLARE PUBLIC FUNCTION Reg_GetAllowUserToPickInSuite(ProdNo%)  AS INTEGER
  108. DECLARE PUBLIC FUNCTION Reg_GetSHAREEXESupport(ProdNo%) AS INTEGER
  109. DECLARE PUBLIC FUNCTION Reg_GetNotesSupport(ProdNo%) AS INTEGER
  110. DECLARE PUBLIC FUNCTION Reg_GetPreviousVersion(ProdNo%)   AS STRING
  111. DECLARE PUBLIC FUNCTION Reg_GetMoreDirsCBName(ProdNo%)   AS STRING
  112. DECLARE PUBLIC FUNCTION Reg_GetMoreDirsDlgID(ProdNo%)   AS INTEGER
  113. DECLARE PUBLIC FUNCTION Reg_GetMoreDirsHlpID(ProdNo%)   AS LONG
  114. DECLARE PUBLIC FUNCTION Reg_GetObsFiles(ProdNo%)   AS INTEGER
  115.  
  116. '** Win95 program folder functions
  117. DECLARE PUBLIC SUB Reg_SetSelectedFolder(ProdNo%,s$)
  118. DECLARE PUBLIC SUB Reg_SetRootFolder(s$)
  119. DECLARE PUBLIC FUNCTION Reg_GetSelectedFolder(ProdNo%) AS STRING
  120. DECLARE PUBLIC FUNCTION Reg_GetRootFolder() AS STRING
  121. DECLARE PUBLIC FUNCTION Lot_GetProgFolder(ProdNo%) AS STRING
  122. DECLARE PUBLIC FUNCTION Lot_AddLinkToFolder(prodno%, szProgPath$, szLinkName$, szDesc$, szArgument$, szWorkingDir$) AS INTEGER
  123. DECLARE PUBLIC FUNCTION Lot_AddLinkIconToFolder(prodno%, szProgPath$, szLinkName$, szDesc$, szArgument$, szWorkingDir$, szIconpath$, Icon&) AS INTEGER
  124.  
  125. DECLARE PUBLIC FUNCTION FGetRootFolder LIB "mscuistf.dll" ALIAS "_FGetRootFolder@0" () AS STRING
  126.  
  127. '******************** Product Registration  struc, array and count *********
  128. PUBLIC TYPE PRODINFO
  129.    Acronym                    AS STRING
  130.    Name                       AS STRING
  131.    Complete                   AS INTEGER
  132.    Custom                     AS INTEGER
  133.    Laptop                     AS INTEGER
  134.    SelectedType               AS STRING
  135.    UIInOrOut                  AS INTEGER
  136.    AllowUserToPickInSuite     AS INTEGER
  137.    FullSize                   AS LONG
  138.    MinSize                    AS LONG
  139.    Share                      AS INTEGER
  140.    Share32                    AS INTEGER
  141.    DataLens                   AS INTEGER
  142.    SQL                        AS INTEGER
  143.    Paradox                    AS INTEGER
  144.    CDOpt                      AS STRING
  145.    CDOptSelected              AS STRING
  146.    CDOptDefaultSelected       AS STRING
  147.    NodeOpt                    AS STRING
  148.    NodeOptSelected            AS STRING
  149.    NodeOptDefaultSelected     AS STRING
  150.    Srv                        AS INTEGER
  151.    Dist                       AS INTEGER
  152.    ExtraProdDirsNum           AS INTEGER
  153.    License                    AS INTEGER
  154.    LicenseSelected            AS INTEGER
  155.    CountDirectory             AS STRING
  156.    ATM                        AS INTEGER
  157.    DirSymList                 AS STRING        'Should be populated in Init
  158.    ProgManagerGroup           AS STRING
  159.     ProgFolder                        AS STRING
  160.    SystemFileSize             AS LONG
  161.    BillboardNumber            AS INTEGER
  162.    SHAREEXE                   AS INTEGER
  163.    Notes                      AS INTEGER
  164.    PreviousVersion            AS STRING      'This is a string for future purposes
  165.    MoreDirsCBName             AS STRING
  166.    MoreDirsDlgID              AS INTEGER
  167.    MoreDirsHlpID              AS LONG
  168.    ObsoleteFiles              AS INTEGER      'This is can be a string for future enhancements
  169. END TYPE
  170.  
  171. PUBLIC Prods(gMaxNumOfProds) AS PRODINFO  
  172. PUBLIC gCurrNumOfProds%                      '** Number of products
  173. PUBLIC gCurrentProduct%                      '** The current product
  174.  
  175. '********************** Product Registration Subroutines ****************
  176.  
  177. PUBLIC FUNCTION Reg_GetNumberOfProducts() AS INTEGER
  178. '** Purpose:    Return number of products in database
  179. '*************************************************************************
  180.    Reg_GetNumberOfProducts=gCurrNumOfProds%
  181. END FUNCTION
  182.  
  183. PUBLIC SUB Reg_RegisterProductNames(Acronym$,Full_Name$)
  184. '** Purpose:    This function will:
  185. '**             ++gCurrNumOfProds%
  186. '**             Prods(gCurrNumOfProds%).Acronym=Acronym$
  187. '**             Prods(gCurrNumOfProds%).Name=Full_Name$
  188. '**             Prods(gCurrNumOfProds%).DirSymList=Acronym$+"DIRS"
  189. '**             Prods(gCurrNumOfProds%).CDOpt=Acronym$+"CDOPT"
  190. '**             Prods(gCurrNumOfProds%).CDOptSelected=Acronym$+"CDOPTSELECTED"
  191. '**             Prods(gCurrNumOfProds%).NodeOpt=Acronym$+"NODEOPT"
  192. '**             Prods(gCurrNumOfProds%).NodeOptSelected=Acronym$+"NODEOPTSELECTED"
  193. '**             Prods(gCurrNumOfProds%).NodeOptDefaultSelected=Acronym$+"NODEOPTDEFAULTSELECTED"
  194. '**             Prods(gCurrNumOfProds%).CDOptDefaultSelected=Acronym$+"CDOPTDEFAULTSELECTED"
  195. '**             Prods(gCurrNumOfProds%).BillboardNumber=0
  196. '**             Prods(gCurrNumOfProds%).ProgManagerGroup="Lotus Applications"
  197. '** Parameters:    Acronym$   3 letter acronym
  198. '**         Full_Name$   Full product name
  199. '*************************************************************************
  200.         gCurrNumOfProds%=gCurrNumOfProds%+1
  201.         IF gCurrNumOfProds% > gMaxNumOfProds% THEN
  202. '           ERROR STFSETERROR
  203.            ERROR STFQUIT
  204.         END IF               
  205.  
  206.     Prods(gCurrNumOfProds%).Acronym=Acronym$
  207.     Prods(gCurrNumOfProds%).Name=Full_Name$
  208.     Prods(gCurrNumOfProds%).DirSymList=Acronym$+"DIRS"
  209.     Prods(gCurrNumOfProds%).CDOpt=Acronym$+"CDOPT"
  210.     Prods(gCurrNumOfProds%).CDOptSelected=Acronym$+"CDOPTSELECTED"
  211.     Prods(gCurrNumOfProds%).NodeOpt=Acronym$+"NODEOPT"
  212.     Prods(gCurrNumOfProds%).NodeOptSelected=Acronym$+"NODEOPTSELECTED"
  213.     Prods(gCurrNumOfProds%).NodeOptDefaultSelected=Acronym$+"NODEOPTDEFAULTSELECTED"
  214.     Prods(gCurrNumOfProds%).CDOptDefaultSelected=Acronym$+"CDOPTDEFAULTSELECTED"
  215.    Prods(gCurrNumOfProds%).BillboardNumber=0
  216.    Prods(gCurrNumOfProds%).ProgManagerGroup = LdString(SID_TKT_DEF_PROGMANGRP)
  217.    Prods(gCurrNumOfProds%).UIInOrOut = 1
  218.    Prods(gCurrNumOfProds%).AllowUserToPickInSuite = 1
  219.    Prods(gCurrNumOfProds%).Share     = 0
  220.    Prods(gCurrNumOfProds%).Share32   = 0
  221.    Prods(gCurrNumOfProds%).DataLens  = 0
  222.    Prods(gCurrNumOfProds%).SQL       = 0
  223.    Prods(gCurrNumOfProds%).Paradox   = 0
  224.    Prods(gCurrNumOfProds%).Srv       = 0
  225.    Prods(gCurrNumOfProds%).License   = 0
  226.    Prods(gCurrNumOfProds%).ATM       = 0
  227.    Prods(gCurrNumOfProds%).ExtraProdDirsNum      = 0
  228.    Prods(gCurrNumOfProds%).PreviousVersion       = ""
  229.    Prods(gCurrNumOfProds%).ObsoleteFiles         = 0
  230.  
  231. END SUB
  232.  
  233. PUBLIC SUB Reg_SetSupportedInstallTypes(ProdNo%,Complete%,Custom%,Laptop%) 
  234. '** Purpose:    This function will set:
  235. '**             Prods(ProdNo%).Complete=Complete%
  236. '**             Prods(ProdNo%).Custom=Custom%
  237. '**             Prods(ProdNo%).Laptop=Laptop%
  238. '** Parameters:    ProdNo%  the product number
  239. '**         Complete%    1 or 0 if complete install type is supported or not
  240. '**         Custom%         1 or 0 if custom install type is supported or not
  241. '**         Laptop%      1 or 0 if laptop install type is supported or not
  242. '*************************************************************************
  243.         IF ProdNo% > gMaxNumOfProds% THEN
  244. '           ERROR STFSETERROR
  245.            ERROR STFQUIT
  246.         END IF               
  247.     Prods(ProdNo%).Complete=Complete%
  248.     Prods(ProdNo%).Custom=Custom%
  249.     Prods(ProdNo%).Laptop=Laptop%
  250. END SUB
  251.  
  252. PUBLIC SUB Reg_SetSelectedInstallType(ProdNo%,TypeSelected$) 
  253. '** Purpose:    This function will set:
  254. '**            Prods(ProdNo%).SelectedType=TypeSelected$ 
  255. '** Parameters:    ProdNo%        the product number
  256. '**         TypeSelected$  one of the three types:
  257. '**                            "COMPLETE"|"CUSTOM"|"LAPTOP"
  258. '*************************************************************************
  259.         IF ProdNo% > gMaxNumOfProds% THEN
  260. '           ERROR STFSETERROR
  261.            ERROR STFQUIT
  262.         END IF               
  263.         IF (TypeSelected$<>gCOMPLETE$ AND TypeSelected$<>gCUSTOM$ AND _
  264.                 TypeSelected$<>gLAPTOP$) THEN
  265. '           ERROR STFSETERROR
  266.            ERROR STFQUIT
  267.         END IF               
  268.  
  269.         SELECT CASE TypeSelected$
  270.         CASE gCOMPLETE$
  271.             Prods(ProdNo%).SelectedType=TypeSelected$
  272.  
  273.         CASE gCUSTOM$
  274.             IF(Prods(ProdNo%).Custom=1) THEN
  275.                     Prods(ProdNo%).SelectedType=TypeSelected$
  276.                 ELSE
  277.                     Prods(ProdNo%).SelectedType=gCOMPLETE$
  278.                 END IF
  279.  
  280.         CASE gLAPTOP$
  281.             IF(Prods(ProdNo%).Laptop=1) THEN
  282.                     Prods(ProdNo%).SelectedType=TypeSelected$
  283.                 ELSE
  284.                     Prods(ProdNo%).SelectedType=gCOMPLETE$
  285.                 END IF
  286.         END SELECT
  287.  
  288. END SUB
  289.  
  290. PUBLIC SUB Reg_SetProdSizes(ProdNo%,FullSize&,MinSize&) 
  291. '** Purpose:    This function will set:
  292. '**             Prods(ProdNo%).FullSize=FullSize&
  293. '**             Prods(ProdNo%).MinSize=MinSize&
  294. '** Parameters:    ProdNo%  the product number
  295. '**         FullSize& the size of the product for full install
  296. '**         MinSize& the size of the product for minimum install
  297. '*************************************************************************
  298.         IF ProdNo% > gMaxNumOfProds% THEN
  299. '           ERROR STFSETERROR
  300.            ERROR STFQUIT
  301.         END IF               
  302.     Prods(ProdNo%).FullSize=FullSize&
  303.     Prods(ProdNo%).MinSize=MinSize&
  304. END SUB
  305.  
  306. PUBLIC SUB Reg_SetUIInOrOut(ProdNo%,Flag%) 
  307. '** Purpose:    This function will set:
  308. '**             Prods(ProdNo%).UIInOrOut=Flag%
  309. '** Parameters:    ProdNo%  the product number
  310. '**         Flag% 1 if the product is in UI and 0 if not
  311. '*************************************************************************
  312.         IF ProdNo% > gMaxNumOfProds% THEN
  313. '           ERROR STFSETERROR
  314.            ERROR STFQUIT
  315.         END IF      
  316.         Prods(ProdNo%).UIInOrOut = Flag%
  317. END SUB
  318.  
  319. PUBLIC SUB Reg_SetAllowUserToPickInSuite(ProdNo%,Flag%) 
  320. '** Purpose:    This function will set:
  321. '**             Prods(ProdNo%).AllowUserToPickInSuite=Flag%
  322. '** Parameters:    ProdNo%  the product number
  323. '**         Flag% 1 if the product is in UI and 0 if not
  324. '*************************************************************************
  325.         IF ProdNo% > gMaxNumOfProds% THEN
  326. '           ERROR STFSETERROR
  327.            ERROR STFQUIT
  328.         END IF      
  329.         Prods(ProdNo%).AllowUserToPickInSuite = Flag%
  330. END SUB
  331.  
  332.  
  333. PUBLIC SUB Reg_SetShareFlags(ProdNo%,Share%,DLens%,SQL%,Paradox%)
  334. '** Purpose:    This function will set:
  335. '**             Prods(ProdNo%).Share=Share%
  336. '**             Prods(ProdNo%).DataLens=DLens%
  337. '**             Prods(ProdNo%).SQL=SQL%
  338. '**             Prods(ProdNo%).Paradox=Paradox%
  339. '** Parameters:    ProdNo%  the product number
  340. '**         Share%   1 or 0 if the product has shared tools or not
  341. '**         DLens%   1 or 0 if the product has DataLens drivers or not
  342. '**         SQL%     1 or 0 if the product has SQL tools or not
  343. '**         Paradox% 1 or 0 if the product has Paradox tools or not
  344. '*************************************************************************
  345.         IF ProdNo% > gMaxNumOfProds% THEN
  346. '           ERROR STFSETERROR
  347.            ERROR STFQUIT
  348.         END IF               
  349.     Prods(ProdNo%).Share=Share%
  350.     Prods(ProdNo%).DataLens=DLens%
  351.     Prods(ProdNo%).SQL=SQL%
  352.     Prods(ProdNo%).Paradox=Paradox%
  353. END SUB
  354.  
  355. PUBLIC SUB Reg_SetShare32Flag(ProdNo%,Share32%)
  356. '** Purpose:    This function will set:
  357. '**             Prods(ProdNo%).Share32=Share32%
  358. '** Parameters:    ProdNo%  the product number
  359. '**         Share32%   1 or 0 if the product has shared 32 tools or not
  360. '*************************************************************************
  361.         IF ProdNo% > gMaxNumOfProds% THEN
  362. '           ERROR STFSETERROR
  363.            ERROR STFQUIT
  364.         END IF               
  365.     Prods(ProdNo%).Share32=Share32%
  366. END SUB
  367.  
  368.  
  369.  
  370. PUBLIC SUB Reg_SetCDOption(ProdNo%,Inst%,CDOptStr$)
  371. '** Purpose:    This function will do:
  372. '**                  CDOptSym$=Prods(ProdNo%).CDOpt
  373. '**                   SetListItem CDOptSym$, Inst%,CDOptStr$
  374. '** Parameters:    ProdNo%  the product number
  375. '**         Inst% instance of the CDOption
  376. '**         CDOptStr$ CDOpt string (KEYWORD)
  377. '*************************************************************************
  378. DIM CDOptSym$
  379.         IF ProdNo% > gMaxNumOfProds% THEN
  380. '           ERROR STFSETERROR
  381.            ERROR STFQUIT
  382.         END IF               
  383.         CDOptSym$=Prods(ProdNo%).CDOpt
  384.         IF CDOptSym$ = "" OR CDOptStr$ = ""THEN    
  385. '           ERROR STFSETERROR
  386.            ERROR STFQUIT
  387.         END IF               
  388.         SetListItem CDOptSym$, Inst%,CDOptStr$
  389. END SUB
  390.  
  391. PUBLIC SUB Reg_SetCDOptionSelected(ProdNo%,Inst%,Selection%)
  392. '** Purpose:    This function will do:
  393. '**                  CDOptSymSelected$=Prods(ProdNo%).CDOptSelected
  394. '**                   SetListItem CDOptSymSelected$, Inst%,Selection%
  395. '**                  CDOptSymDefaultSelected$=Prods(ProdNo%).CDOptDefaultSelected
  396. '**                   SetListItem CDOptSymDefaultSelected$, Inst%,Selection%
  397. '** Parameters:    ProdNo%  the product number
  398. '**         Inst% instance of the CDOptionSelected
  399. '**         Selection% 1 or 0 if the option was selected or deselected
  400. '*************************************************************************
  401. DIM CDOptSymSelected$,CDOptSymDefaultSelected$
  402.         IF ProdNo% > gMaxNumOfProds% THEN
  403. '           ERROR STFSETERROR
  404.            ERROR STFQUIT
  405.         END IF               
  406.         CDOptSymSelected$=Prods(ProdNo%).CDOptSelected
  407.         IF CDOptSymSelected$ = "" OR _
  408.            (Selection% <> 1 AND Selection% <> 0) THEN    
  409. '           ERROR STFSETERROR
  410.            ERROR STFQUIT
  411.         END IF               
  412.         SetListItem CDOptSymSelected$,Inst%,STR$(Selection%)
  413.  
  414.         CDOptSymDefaultSelected$=Prods(ProdNo%).CDOptDefaultSelected
  415.         IF CDOptSymDefaultSelected$ = "" OR _
  416.            (Selection% <> 1 AND Selection% <> 0) THEN    
  417. '           ERROR STFSETERROR
  418.            ERROR STFQUIT
  419.         END IF               
  420.         SetListItem CDOptSymDefaultSelected$,Inst%,STR$(Selection%)
  421.  
  422. END SUB
  423.  
  424.  
  425. PUBLIC SUB Reg_ReSetCDOptionSelected(ProdNo%,Inst%,Selection%)
  426. '** Purpose:    This function will do:
  427. '**                  CDOptSymSelected$=Prods(ProdNo%).CDOptSelected
  428. '**                   SetListItem CDOptSymSelected$, Inst%,Selection%
  429. '** Parameters:    ProdNo%  the product number
  430. '**         Inst% instance of the CDOptionSelected
  431. '**         Selection% 1 or 0 if the option was selected or deselected
  432. '*************************************************************************
  433. DIM CDOptSymSelected$
  434.         IF ProdNo% > gMaxNumOfProds% THEN
  435. '           ERROR STFSETERROR
  436.            ERROR STFQUIT
  437.         END IF               
  438.         CDOptSymSelected$=Prods(ProdNo%).CDOptSelected
  439.         IF CDOptSymSelected$ = "" OR _
  440.            (Selection% <> 1 AND Selection% <> 0) THEN    
  441. '           ERROR STFSETERROR
  442.            ERROR STFQUIT
  443.         END IF               
  444.         SetListItem CDOptSymSelected$,Inst%,STR$(Selection%)
  445.  
  446. END SUB
  447.  
  448. PUBLIC SUB Reg_ReSetCDOptionSelectedToDefault(ProdNo%,Inst%)
  449. '** Purpose:    This function will do:
  450. '**                  CDOptSymDefaultSelected$=Prods(ProdNo%).CDOptDefaultSelected
  451. '**                   Sel$ = GetListItem (CDOptSymDefaultSelected$, Inst%)
  452. '**                  CDOptSymSelected$=Prods(ProdNo%).CDOptSelected
  453. '**                   SetListItem CDOptSymSelected$, Inst%,CINT(Sel$)
  454. '** Parameters:    ProdNo%  the product number
  455. '**         Inst% instance of the CDOptionSelected
  456. '*************************************************************************
  457. DIM CDOptSymSelected$,CDOptSymDefaultSelected$,Sel$
  458.         IF ProdNo% > gMaxNumOfProds% THEN
  459. '           ERROR STFSETERROR
  460.            ERROR STFQUIT
  461.         END IF               
  462.         CDOptSymDefaultSelected$=Prods(ProdNo%).CDOptDefaultSelected
  463.         IF CDOptSymDefaultSelected$ = ""  THEN    
  464. '           ERROR STFSETERROR
  465.            ERROR STFQUIT
  466.         END IF                                  
  467.         Sel$ = GetListItem( CDOptSymDefaultSelected$,Inst% )
  468.  
  469.         CDOptSymSelected$=Prods(ProdNo%).CDOptSelected
  470.         IF CDOptSymSelected$ = ""  THEN    
  471. '           ERROR STFSETERROR
  472.            ERROR STFQUIT
  473.         END IF               
  474.         SetListItem CDOptSymSelected$,Inst%,Sel$
  475.  
  476. END SUB
  477.  
  478. PUBLIC SUB Reg_ReSetAllCDOptsSelToDefaults(ProdNo%)
  479. '** Purpose:    This function will do for every option the following:
  480. '**                  Reg_ReSetCDOptionSelectedToDefault ProdNo%,Inst%
  481. '** Parameters:    ProdNo%  the product number
  482. '*************************************************************************
  483. DIM CDOptSelSym$,CDOptSelListLen%,Inst%
  484.         IF ProdNo% > gMaxNumOfProds% THEN
  485. '           ERROR STFSETERROR
  486.            ERROR STFQUIT
  487.         END IF               
  488.  
  489.         CDOptSelListLen% = 0
  490.         CDOptSelSym$=Prods(ProdNo%).CDOptSelected
  491.         IF CDOptSelSym$ = "" THEN
  492. '           ERROR STFSETERROR
  493.            ERROR STFQUIT
  494.         END IF       
  495.         CDOptSelListLen%=GetListLength(CDOptSelSym$)
  496.         FOR Inst%=1 TO CDOptSelListLen%
  497.            Reg_ReSetCDOptionSelectedToDefault ProdNo%,Inst%
  498.         NEXT
  499.  
  500. END SUB
  501.  
  502.  
  503. PUBLIC SUB Reg_SetNodeOption(ProdNo%,Inst%,NodeOptStr$) 
  504. '** Purpose:    This function will do:
  505. '**                  NodeOptSym$=Prods(ProdNo%).NodeOpt
  506. '**                   SetListItem NodeOptSym$, Inst%,NodeOptStr$
  507. '** Parameeters:     ProdNo%  the product number
  508. '**              Inst% instance of the the NodeOpt
  509. '**              NodeOptStr$ Node Option string (KEYWORD)
  510. '*************************************************************************
  511. DIM NodeOptSym$
  512.         IF ProdNo% > gMaxNumOfProds% THEN
  513. '           ERROR STFSETERROR
  514.            ERROR STFQUIT
  515.         END IF               
  516.         NodeOptSym$=Prods(ProdNo%).NodeOpt
  517.         IF NodeOptSym$ = "" OR NodeOptStr$ = ""THEN    
  518. '           ERROR STFSETERROR
  519.            ERROR STFQUIT
  520.         END IF               
  521.         SetListItem NodeOptSym$, Inst%,NodeOptStr$
  522.  
  523. END SUB
  524.  
  525. PUBLIC SUB Reg_SetNodeOptionSelected(ProdNo%,Inst%,Selection%)
  526. '** Purpose:    This function will do:
  527. '**                  NodeOptSymSelected$=Prods(ProdNo%).NodeOptSelected
  528. '**                   SetListItem NodeOptSymSelected$, Inst%,Selection%
  529. '**                  NodeOptSymDefaultSelected$=Prods(ProdNo%).NodeOptDefaultSelected
  530. '**                   SetListItem NodeOptSymDefaultSelected$, Inst%,Selection%
  531. '** Parameters:    ProdNo%  the product number
  532. '**         Inst% instance of the NodeOptionSelected
  533. '**         Selection% 1 or 0 if the option was selected or deselected
  534. '*************************************************************************
  535. DIM NodeOptSymSelected$,NodeOptSymDefaultSelected$
  536.         IF ProdNo% > gMaxNumOfProds% THEN
  537. '           ERROR STFSETERROR
  538.            ERROR STFQUIT
  539.         END IF               
  540.         NodeOptSymSelected$=Prods(ProdNo%).NodeOptSelected
  541.         IF NodeOptSymSelected$ = "" OR _
  542.            (Selection% <> 1 AND Selection% <> 0) THEN    
  543. '           ERROR STFSETERROR
  544.            ERROR STFQUIT
  545.         END IF               
  546.         SetListItem NodeOptSymSelected$,Inst%,STR$(Selection%)
  547.  
  548.         NodeOptSymDefaultSelected$=Prods(ProdNo%).NodeOptDefaultSelected
  549.         IF NodeOptSymDefaultSelected$ = "" OR _
  550.            (Selection% <> 1 AND Selection% <> 0) THEN    
  551. '           ERROR STFSETERROR
  552.            ERROR STFQUIT
  553.         END IF               
  554.         SetListItem NodeOptSymDefaultSelected$,Inst%,STR$(Selection%)
  555.  
  556. END SUB
  557.  
  558. PUBLIC SUB Reg_ReSetNodeOptionSelected(ProdNo%,Inst%,Selection%)
  559. '** Purpose:    This function will do:
  560. '**                  NodeOptSymSelected$=Prods(ProdNo%).NodeOptSelected
  561. '**                   SetListItem NodeOptSymSelected$, Inst%,Selection%
  562. '** Parameters:    ProdNo%  the product number
  563. '**         Inst% instance of the NodeOptionSelected
  564. '**         Selection% 1 or 0 if the option was selected or deselected
  565. '*************************************************************************
  566. DIM NodeOptSymSelected$
  567.         IF ProdNo% > gMaxNumOfProds% THEN
  568. '           ERROR STFSETERROR
  569.            ERROR STFQUIT
  570.         END IF               
  571.         NodeOptSymSelected$=Prods(ProdNo%).NodeOptSelected
  572.         IF NodeOptSymSelected$ = "" OR _
  573.            (Selection% <> 1 AND Selection% <> 0) THEN    
  574. '           ERROR STFSETERROR
  575.            ERROR STFQUIT
  576.         END IF               
  577.         SetListItem NodeOptSymSelected$,Inst%,STR$(Selection%)
  578.  
  579. END SUB
  580.  
  581. PUBLIC SUB Reg_ReSetNodeOptionSelectedToDefault(ProdNo%,Inst%)
  582. '** Purpose:    This function will do:
  583. '**                  NodeOptSymDefaultSelected$=Prods(ProdNo%).NodeOptDefaultSelected
  584. '**                   Sel$ = GetListItem (NodeOptSymDefaultSelected$, Inst%)
  585. '**                  NodeOptSymSelected$=Prods(ProdNo%).NodeOptSelected
  586. '**                   SetListItem NodeOptSymSelected$, Inst%,CINT(Sel$)
  587. '** Parameters:    ProdNo%  the product number
  588. '**         Inst% instance of the NodeOptionSelected
  589. '*************************************************************************
  590. DIM NodeOptSymSelected$,NodeOptSymDefaultSelected$,Sel$
  591.         IF ProdNo% > gMaxNumOfProds% THEN
  592. '           ERROR STFSETERROR
  593.            ERROR STFQUIT
  594.         END IF               
  595.         NodeOptSymDefaultSelected$=Prods(ProdNo%).NodeOptDefaultSelected
  596.         IF NodeOptSymDefaultSelected$ = ""  THEN    
  597. '           ERROR STFSETERROR
  598.            ERROR STFQUIT
  599.         END IF                                  
  600.         Sel$ = GetListItem( NodeOptSymDefaultSelected$,Inst% )
  601.  
  602.         NodeOptSymSelected$=Prods(ProdNo%).NodeOptSelected
  603.         IF NodeOptSymSelected$ = ""  THEN    
  604. '           ERROR STFSETERROR
  605.            ERROR STFQUIT
  606.         END IF               
  607.         SetListItem NodeOptSymSelected$,Inst%,Sel$
  608.  
  609. END SUB
  610.  
  611. PUBLIC SUB Reg_ReSetAllNodeOptsSelToDefaults(ProdNo%)
  612. '** Purpose:    This function will do for every option the following:
  613. '**                  Reg_ReSetNodeOptionSelectedToDefault ProdNo%,Inst%
  614. '** Parameters:    ProdNo%  the product number
  615. '*************************************************************************
  616. DIM NodeOptSelSym$,NodeOptSelListLen%,Inst%
  617.         IF ProdNo% > gMaxNumOfProds% THEN
  618. '           ERROR STFSETERROR
  619.            ERROR STFQUIT
  620.         END IF               
  621.  
  622.         NodeOptSelListLen% = 0
  623.         NodeOptSelSym$=Prods(ProdNo%).NodeOptSelected
  624.         IF NodeOptSelSym$ = "" THEN
  625. '           ERROR STFSETERROR
  626.            ERROR STFQUIT
  627.         END IF       
  628.         NodeOptSelListLen%=GetListLength(NodeOptSelSym$)
  629.         FOR Inst%=1 TO NodeOptSelListLen%
  630.            Reg_ReSetNodeOptionSelectedToDefault ProdNo%,Inst%
  631.         NEXT
  632.  
  633. END SUB
  634.  
  635. PUBLIC SUB Reg_SetSrvSupport(ProdNo%,SrvFlag%) 
  636. '** Purpose:    This function will set:
  637. '**             Prods(ProdNo%).Srv=SrvFlag%
  638. '** Parameeters:    ProdNo%  the product number
  639. '**         SrvFlag% 1 or 0
  640. '*************************************************************************
  641.         IF ProdNo% > gMaxNumOfProds% THEN
  642. '           ERROR STFSETERROR
  643.            ERROR STFQUIT
  644.         END IF               
  645.         IF SrvFlag% <> 0 AND SrvFlag% <> 1 THEN
  646. '           ERROR STFSETERROR
  647.            ERROR STFQUIT
  648.         END IF               
  649.     Prods(ProdNo%).Srv=SrvFlag%
  650. END SUB
  651.  
  652. PUBLIC SUB Reg_SetDistSupport(ProdNo%,DistFlag%) 
  653. '** Purpose:    This function will set:
  654. '**             Prods(ProdNo%).Dist=DistFlag%
  655. '** Parameeters:    ProdNo%  the product number
  656. '**         DistFlag% 1 or 0
  657. '*************************************************************************
  658.         IF ProdNo% > gMaxNumOfProds% THEN
  659. '           ERROR STFSETERROR
  660.            ERROR STFQUIT
  661.         END IF               
  662.         IF DistFlag% <> 0 AND DistFlag% <> 1 THEN
  663. '           ERROR STFSETERROR
  664.            ERROR STFQUIT
  665.         END IF               
  666.     Prods(ProdNo%).Dist=DistFlag%
  667. END SUB
  668.  
  669. PUBLIC SUB Reg_SetExtraProdDirsNum(ProdNo%,ExtraProdDirs%) 
  670. '** Purpose:    This function will set:
  671. '**             Prods(ProdNo%).ExtraProdDirsNum=ExtraProdDirs%
  672. '** Parameeters:    ProdNo%  the product number
  673. '**                 ExtraProdDirs% 1 or 0
  674. '**                     This will change to 0 to n when support for more 
  675. '**                     then two top directories will be implemented.
  676. '*************************************************************************
  677.         IF ProdNo% > gMaxNumOfProds% THEN
  678. '           ERROR STFSETERROR
  679.            ERROR STFQUIT
  680.         END IF               
  681.         IF ExtraProdDirs% <> 0 AND ExtraProdDirs% <> 1 THEN
  682. '           ERROR STFSETERROR
  683.            ERROR STFQUIT
  684.         END IF               
  685.     Prods(ProdNo%).ExtraProdDirsNum=ExtraProdDirs%
  686. END SUB
  687.  
  688.  
  689.  
  690. PUBLIC SUB Reg_SetLicenseSupport(ProdNo%,LicFlag%) 
  691. '** Purpose:    This function will set:
  692. '**             Prods(ProdNo%).License=LicFlag%
  693. '**         as well as Prods(ProdNo%).LicenseSelected=LicFlag%
  694. '** Parameeters:    ProdNo%  the product number
  695. '**         LicFlag% 1 or 0
  696. '*************************************************************************
  697.         IF ProdNo% > gMaxNumOfProds% THEN
  698. '           ERROR STFSETERROR
  699.            ERROR STFQUIT
  700.         END IF               
  701.         IF LicFlag% <> 0 AND LicFlag% <> 1 THEN
  702. '           ERROR STFSETERROR
  703.            ERROR STFQUIT
  704.         END IF               
  705. '    Prods(ProdNo%).License=LicFlag%
  706.  '    Prods(ProdNo%).LicenseSelected=LicFlag%
  707.     Prods(ProdNo%).License=0
  708.     Prods(ProdNo%).LicenseSelected=0
  709.  
  710. END SUB
  711.  
  712. PUBLIC SUB Reg_SetLicenseSelected(ProdNo%,LicFlag%) 
  713. '** Purpose:    This function will set:
  714. '**             Prods(ProdNo%).LicenseSelected=LicFlag%
  715. '** Parameeters:    ProdNo%  the product number
  716. '**             LicFlag% 1 or 0
  717. '*************************************************************************
  718.         IF ProdNo% > gMaxNumOfProds% THEN
  719. '           ERROR STFSETERROR
  720.            ERROR STFQUIT
  721.         END IF               
  722.         IF LicFlag% <> 0 AND LicFlag% <> 1 THEN
  723. '           ERROR STFSETERROR
  724.            ERROR STFQUIT
  725.         END IF               
  726. '    Prods(ProdNo%).LicenseSelected=LicFlag%
  727.     Prods(ProdNo%).LicenseSelected=0
  728. END SUB
  729.  
  730. PUBLIC SUB Reg_SetCountDirectory(ProdNo%,CountDir$) 
  731. '** Purpose:    This function will set:
  732. '**             Prods(ProdNo%).CountDirectory=CountDir$
  733. '** Parameeters:    ProdNo%  the product number
  734. '**             CountDir$
  735. '*************************************************************************
  736.         IF ProdNo% > gMaxNumOfProds% THEN
  737. '           ERROR STFSETERROR
  738.            ERROR STFQUIT
  739.         END IF               
  740.         IF CountDir$ ="" THEN
  741. '           ERROR STFSETERROR
  742.            ERROR STFQUIT
  743.         END IF               
  744.     Prods(ProdNo%).CountDirectory=CountDir$
  745. END SUB
  746.  
  747. PUBLIC SUB Reg_SetATMSupport(ProdNo%,ATMFlag%) 
  748. '** Purpose:    This function will set:
  749. '**             Prods(ProdNo%).ATM=ATMFlag%
  750. '** Parameeters:    ProdNo%  the product number
  751. '**                 ATMFlag% 1 or 0
  752. '*************************************************************************
  753.         IF ProdNo% > gMaxNumOfProds% THEN
  754. '           ERROR STFSETERROR
  755.            ERROR STFQUIT
  756.         END IF               
  757.         IF ATMFlag% <> 0 AND ATMFlag% <> 1 THEN
  758. '           ERROR STFSETERROR
  759.            ERROR STFQUIT
  760.         END IF               
  761.     Prods(ProdNo%).ATM=ATMFlag%
  762. END SUB
  763.  
  764. PUBLIC SUB Reg_SetProgManagerGroup(ProdNo%,GroupName$) 
  765. '** Purpose:    This function will set:
  766. '**             Prods(ProdNo%).ProgManagerGroup=GroupName$
  767. '** Parameters:    ProdNo%  the product number
  768. '**         Flag% 1 if the product is in UI and 0 if not
  769. '*************************************************************************
  770.         IF ProdNo% > gMaxNumOfProds% THEN
  771. '           ERROR STFSETERROR
  772.            ERROR STFQUIT
  773.         END IF               
  774.         IF LEN(GroupName$) > 30 THEN
  775.            Prods(ProdNo%).ProgManagerGroup=LEFT$(GroupName$,30)
  776.         ELSE
  777.            Prods(ProdNo%).ProgManagerGroup=GroupName$
  778.         END IF
  779.  
  780.         IF Reg_GetRootFolder() = "" THEN
  781.             IF IsNewShell() AND LoadCommonCtl() THEN
  782.                 Reg_SetRootFolder(FGetRootFolder())
  783.             END IF
  784.         END IF
  785.  
  786.         IF Reg_GetSelectedFolder(ProdNo%) = "" THEN
  787.             Reg_SetSelectedFolder ProdNo%,Reg_GetRootFolder()
  788.         END IF
  789.  
  790. END SUB
  791.  
  792. PUBLIC SUB Reg_SetBillboardNumber(ProdNo%,BBNum%) 
  793. '** Purpose:    This function will set:
  794. '**             Prods(ProdNo%).BillboardNumber=BBNum%
  795. '** Parameters:    ProdNo%  the product number
  796. '**         BBNum% 0 or more billboards
  797. '*************************************************************************
  798.         IF ProdNo% > gMaxNumOfProds% THEN
  799. '           ERROR STFSETERROR
  800.            ERROR STFQUIT
  801.         END IF               
  802.         IF BBNum% < 0 THEN
  803. '           ERROR STFSETERROR
  804.            ERROR STFQUIT
  805.         END IF               
  806.         Prods(ProdNo%).BillboardNumber=BBNum%
  807. END SUB
  808.  
  809. PUBLIC SUB Reg_SetMoreDirsData(ProdNo%,CBName$,DialogID%,HelpID&) 
  810. '** Purpose:    This function will do:
  811. '**                  Prods(ProdNo%).MoreDirsCBName=CBName$
  812. '**                  Prods(ProdNo%).MoreDirsDlgID=DialogID%
  813. '**                  Prods(ProdNo%).MoreDirsHlpID=HelpID&
  814. '** Parameters:    ProdNo%    the product number
  815. '**         CBName$    The callback ID
  816. '**         DialogID%  The dialog ID number
  817. '**             HelpID&    The help ID
  818. '*************************************************************************
  819.         ' If the product # is NOT in range 
  820.         IF ProdNo% > gMaxNumOfProds% THEN
  821.            ERROR STFQUIT
  822.         END IF
  823.         ' If invalid/incomplet data is provided              
  824.         IF CBName$ = "" OR DialogID% = 0 OR HelpID& = CLNG(0) THEN
  825.            ERROR STFQUIT
  826.         END IF               
  827.  
  828.         Prods(ProdNo%).MoreDirsCBName=CBName$
  829.         Prods(ProdNo%).MoreDirsDlgID=DialogID%
  830.         Prods(ProdNo%).MoreDirsHlpID=HelpID&
  831.  
  832.  
  833. END SUB
  834.  
  835.  
  836. '********************** Product Registration Functions ****************
  837.  
  838. PUBLIC FUNCTION Reg_GetProductNo(ProdAcronym$)  AS INTEGER 
  839. '** Purpose:    Finds the index of Acronym$ in Prods array .
  840. '** Parameters:    Acronym$  3 letter acronym of the product
  841. '** Return:    ProdNo% the index of ProdAcronym$ in the Prods array
  842. '**                       0 if the acronym is not found
  843. '*************************************************************************
  844. DIM ProdNo%, count% 
  845.         IF ProdAcronym$ = "" THEN
  846. '           ERROR STFSETERROR
  847.            ERROR STFQUIT
  848.         END IF     
  849.         ProdNo% = 0
  850.         FOR count%=1 TO gMaxNumOfProds%
  851.                 IF Prods(count%).Acronym = ProdAcronym$ THEN
  852.                         ProdNo% = count%    
  853.                         EXIT FOR
  854.                 END IF
  855.         NEXT
  856.         Reg_GetProductNo=ProdNo%
  857. END FUNCTION
  858.  
  859. PUBLIC FUNCTION Reg_GetProductAcronym(ProdNo%)  AS STRING 
  860. '** Purpose:    Finds the acronym in Prods array for the index ProdNo%.
  861. '** Parameters:    ProdNo% product number
  862. '** Return:    Acronym$ of the product with the number ProdNo%
  863. '**             "" if the acronym is not found
  864. '*************************************************************************
  865. DIM ProdAcronym$
  866.         ProdAcronym$=""
  867.         IF ProdNo% > gMaxNumOfProds% THEN
  868. '           ERROR STFSETERROR
  869.            ERROR STFQUIT
  870.         END IF               
  871.         ProdAcronym$=Prods(ProdNo%).Acronym
  872.         Reg_GetProductAcronym=ProdAcronym$        
  873. END FUNCTION
  874.  
  875. PUBLIC FUNCTION Reg_GetProductname(ProdNo%)  AS STRING 
  876. '** Purpose:    Finds the name in Prods array for the index ProdNo%.
  877. '** Parameters:    ProdNo% product number
  878. '** Return:    name$ of the product with the number ProdNo%
  879. '**             "" if the name is not found
  880. '*************************************************************************
  881.     DIM Prodname$
  882.         Prodname$=""
  883.         IF ProdNo% > gMaxNumOfProds% THEN
  884. '           ERROR STFSETERROR
  885.            ERROR STFQUIT
  886.         END IF               
  887.         Prodname$ = Prods(ProdNo%).Name
  888.         Reg_GetProductname = Prodname$        
  889. END FUNCTION
  890.  
  891. PUBLIC FUNCTION Reg_GetUIInOrOut(ProdNo%)  AS INTEGER
  892. '** Purpose:    Finds the uiinorout flag in Prods array for the index ProdNo%.
  893. '** Parameters:    ProdNo% product number
  894. '** Return:    UIInOrOut flag
  895. '*************************************************************************
  896.     DIM flag%
  897.  
  898.         IF ProdNo% > gMaxNumOfProds% THEN
  899. '           ERROR STFSETERROR
  900.            ERROR STFQUIT
  901.         END IF               
  902.         flag% = Prods(ProdNo%).UIInOrOut
  903.         Reg_GetUIInOrOut = flag%      
  904. END FUNCTION
  905.  
  906. PUBLIC FUNCTION Reg_GetAllowUserToPickInSuite(ProdNo%)  AS INTEGER
  907. '** Purpose:    Finds the AllowUserToPickInSuite flag in Prods array for the index ProdNo%.
  908. '** Parameters:    ProdNo% product number
  909. '** Return:    AllowUserToPickInSuite flag
  910. '*************************************************************************
  911.     DIM flag%
  912.  
  913.         IF ProdNo% > gMaxNumOfProds% THEN
  914. '           ERROR STFSETERROR
  915.            ERROR STFQUIT
  916.         END IF               
  917.         flag% = Prods(ProdNo%).AllowUserToPickInSuite
  918.         Reg_GetAllowUserToPickInSuite = flag%      
  919. END FUNCTION
  920.  
  921. PUBLIC FUNCTION Reg_GetProdSupportForFullInstall(ProdNo%) AS INTEGER
  922. '** Purpose:    Finds Prods(ProdNo%).Complete
  923. '** Parameters:    ProdNo% product number
  924. '** Return:    SuppFlag% is 1 if the product supports full install and
  925. '**             0 if it does not
  926. '*************************************************************************
  927. DIM SuppFlag%
  928.         SuppFlag% = 0
  929.         IF ProdNo% > gMaxNumOfProds% THEN
  930. '           ERROR STFSETERROR
  931.            ERROR STFQUIT
  932.         END IF       
  933.         SuppFlag%=Prods(ProdNo%).Complete
  934.         Reg_GetProdSupportForFullInstall=SuppFlag% 
  935. END FUNCTION
  936.  
  937. PUBLIC FUNCTION Reg_GetProdSupportForCustInstall(ProdNo%) AS INTEGER
  938. '** Purpose:    Finds Prods(ProdNo%).Custom
  939. '** Parameters:    ProdNo% product number
  940. '** Return:    SuppFlag% is 1 if the product supports Custom install
  941. '**             and 0 if it does not
  942. '*************************************************************************
  943. DIM SuppFlag%
  944.         SuppFlag% = 0
  945.         IF ProdNo% > gMaxNumOfProds% THEN
  946. '           ERROR STFSETERROR
  947.            ERROR STFQUIT
  948.         END IF       
  949.         SuppFlag%=Prods(ProdNo%).Custom        
  950.         Reg_GetProdSupportForCustInstall=SuppFlag% 
  951. END FUNCTION
  952.  
  953. PUBLIC FUNCTION Reg_GetProdSupportForMinInstall(ProdNo%) AS INTEGER
  954. '** Purpose:    Finds Prods(ProdNo%).Laptop
  955. '** Parameters:    ProdNo% product number
  956. '** Return:    SuppFlag% is 1 if the product supports minim install and
  957. '**             0 if it does not
  958. '*************************************************************************
  959. DIM SuppFlag%
  960.         SuppFlag% = 0
  961.         IF ProdNo% > gMaxNumOfProds% THEN
  962. '           ERROR STFSETERROR
  963.            ERROR STFQUIT
  964.         END IF       
  965.         SuppFlag%=Prods(ProdNo%).Laptop        
  966.         Reg_GetProdSupportForMinInstall=SuppFlag% 
  967. END FUNCTION
  968.  
  969. PUBLIC FUNCTION Reg_GetProdSelectedInstallType(ProdNo%) AS STRING
  970. '** Purpose:    Finds Prods(ProdNo%).SelectedType
  971. '** Parameters:    ProdNo% product number
  972. '** Return:    SelType$ is  "COMPLETE"|"CUSTOM"|"LAPTOP" or "" if not set
  973. '*************************************************************************
  974. DIM SelType$
  975.         SelType$ = ""
  976.         IF ProdNo% > gMaxNumOfProds% THEN
  977. '           ERROR STFSETERROR
  978.            ERROR STFQUIT
  979.         END IF       
  980.         SelType$=Prods(ProdNo%).SelectedType        
  981.         Reg_GetProdSelectedInstallType=SelType$ 
  982. END FUNCTION
  983.  
  984. PUBLIC FUNCTION Reg_GetProdFullSize(ProdNo%) AS LONG
  985. '** Purpose:    Finds Prods(ProdNo%).FullSize
  986. '** Parameters:    ProdNo% product number
  987. '** Return:    PSize& is  the full size or 0 if not set
  988. '*************************************************************************
  989. DIM FSize&
  990.         FSize& = 0
  991.         IF ProdNo% > gMaxNumOfProds% THEN
  992. '           ERROR STFSETERROR
  993.            ERROR STFQUIT
  994.         END IF       
  995.         FSize&=Prods(ProdNo%).FullSize        
  996.         Reg_GetProdFullSize=FSize& 
  997. END FUNCTION
  998.  
  999. PUBLIC FUNCTION Reg_GetProdMinSize(ProdNo%) AS LONG
  1000. '** Purpose:    Finds Prods(ProdNo%).MinSize
  1001. '** Parameters:    ProdNo% product number
  1002. '** Return:    PSize& is  the minimum size or 0 if not set
  1003. '*************************************************************************
  1004. DIM MSize&
  1005.         MSize& = 0
  1006.         IF ProdNo% > gMaxNumOfProds% THEN
  1007. '           ERROR STFSETERROR
  1008.            ERROR STFQUIT
  1009.         END IF       
  1010.         MSize&=Prods(ProdNo%).MinSize        
  1011.         Reg_GetProdMinSize=MSize& 
  1012. END FUNCTION
  1013.  
  1014. PUBLIC FUNCTION Reg_GetProdSupportForShare(ProdNo%) AS INTEGER
  1015. '** Purpose:    Finds Prods(ProdNo%).Share
  1016. '** Parameters:    ProdNo% product number
  1017. '** Return:    SuppFlag% is 1 if the product supports shared tools and
  1018. '**             0 if it does not
  1019. '*************************************************************************
  1020. DIM SuppFlag%
  1021.         SuppFlag% = 0
  1022.         IF ProdNo% > gMaxNumOfProds% THEN
  1023. '           ERROR STFSETERROR
  1024.            ERROR STFQUIT
  1025.         END IF       
  1026.         SuppFlag%=Prods(ProdNo%).Share        
  1027.         Reg_GetProdSupportForShare=SuppFlag% 
  1028. END FUNCTION
  1029.  
  1030. PUBLIC FUNCTION Reg_GetProdSupportForShare32(ProdNo%) AS INTEGER
  1031. '** Purpose:    Finds Prods(ProdNo%).Share32
  1032. '** Parameters:    ProdNo% product number
  1033. '** Return:    SuppFlag% is 1 if the product supports shared tools and
  1034. '**             0 if it does not
  1035. '*************************************************************************
  1036. DIM SuppFlag%
  1037.         SuppFlag% = 0
  1038.         IF ProdNo% > gMaxNumOfProds% THEN
  1039. '           ERROR STFSETERROR
  1040.            ERROR STFQUIT
  1041.         END IF       
  1042.         SuppFlag%=Prods(ProdNo%).Share32        
  1043.         Reg_GetProdSupportForShare32=SuppFlag% 
  1044. END FUNCTION
  1045.  
  1046.  
  1047. PUBLIC FUNCTION Reg_GetProdSupportForDataLens(ProdNo%) AS INTEGER
  1048. '** Purpose:    Finds Prods(ProdNo%).DataLens
  1049. '** Parameters:    ProdNo% product number
  1050. '** Return:    SuppFlag% is 1 if the product supports DataLens and 0 if
  1051. '**             it does not
  1052. '*************************************************************************
  1053. DIM SuppFlag%
  1054.         SuppFlag% = 0
  1055.         IF ProdNo% > gMaxNumOfProds% THEN
  1056. '           ERROR STFSETERROR
  1057.            ERROR STFQUIT
  1058.         END IF       
  1059.         SuppFlag%=Prods(ProdNo%).DataLens        
  1060.         Reg_GetProdSupportForDataLens=SuppFlag% 
  1061. END FUNCTION
  1062.  
  1063. PUBLIC FUNCTION Reg_GetProdSupportForSQL(ProdNo%) AS INTEGER
  1064. '** Purpose:    Finds Prods(ProdNo%).SQL
  1065. '** Parameters:    ProdNo% product number
  1066. '** Return:    SuppFlag% is 1 if the product supports SQL and 0 if it
  1067. '**             does not
  1068. '*************************************************************************
  1069. DIM SuppFlag%
  1070.         SuppFlag% = 0
  1071.         IF ProdNo% > gMaxNumOfProds% THEN
  1072. '           ERROR STFSETERROR
  1073.            ERROR STFQUIT
  1074.         END IF       
  1075.         SuppFlag%=Prods(ProdNo%).SQL        
  1076.         Reg_GetProdSupportForSQL=SuppFlag% 
  1077. END FUNCTION
  1078.  
  1079. PUBLIC FUNCTION Reg_GetProdSupportForParadox(ProdNo%) AS INTEGER
  1080. '** Purpose:    Finds Prods(ProdNo%).Paradox
  1081. '** Parameters:    ProdNo% product number
  1082. '** Return:    SuppFlag% is 1 if the product supports Paradox and 0 if
  1083. '**             it does not
  1084. '*************************************************************************
  1085. DIM SuppFlag%
  1086.         SuppFlag% = 0
  1087.         IF ProdNo% > gMaxNumOfProds% THEN
  1088. '           ERROR STFSETERROR
  1089.            ERROR STFQUIT
  1090.         END IF       
  1091.         SuppFlag%=Prods(ProdNo%).Paradox        
  1092.         Reg_GetProdSupportForParadox=SuppFlag% 
  1093. END FUNCTION
  1094.  
  1095. PUBLIC FUNCTION Reg_GetCDOptionStr(ProdNo%,Inst%) AS STRING
  1096. '** Purpose:    This function will do:
  1097. '**             CDOptSym$=Prods(ProdNo%).CDOpt
  1098. '**         CDOptStr$=GetListItem( CDOptSym$, Inst%)
  1099. '** Parameters:    ProdNo%  the product number
  1100. '**           Inst% instance of the the CDOption
  1101. '** Return:    CDOptStr$ CDOpt string or
  1102. '**             "" if the product number is invalid or if
  1103. '**             the inst% is out of sequence or CDOptStr$
  1104. '**             is an empty string.
  1105. '*************************************************************************
  1106. DIM CDOptSym$,CDOptStr$,CDOptListLen%
  1107.         CDOptSym$ = ""
  1108.         CDOptStr$ = ""
  1109.         CDOptListLen% = 0
  1110.         IF ProdNo% > gMaxNumOfProds% THEN
  1111. '           ERROR STFSETERROR
  1112.            ERROR STFQUIT
  1113.         END IF       
  1114.         CDOptSym$=Prods(ProdNo%).CDOpt
  1115.         IF CDOptSym$ = "" THEN
  1116. '           ERROR STFSETERROR
  1117.            ERROR STFQUIT
  1118.         END IF       
  1119.         CDOptListLen%=GetListLength(CDOptSym$)
  1120.         IF Inst% > CDOptListLen% THEN
  1121. '           ERROR STFSETERROR
  1122.            ERROR STFQUIT
  1123.         END IF       
  1124.         CDOptStr$=GetListItem( CDOptSym$, Inst%)
  1125.         Reg_GetCDOptionStr=CDOptStr$
  1126. END FUNCTION
  1127.  
  1128. PUBLIC FUNCTION Reg_GetNodeOptionStr(ProdNo%,Inst%) AS STRING
  1129. '** Purpose:    This function will do:
  1130. '** NodeOptSym$=Prods(ProdNo%).NodeOpt
  1131. '**              NodeOptStr$=GetListItem (NodeOptSym$, Inst%)
  1132. '** Parameters:    ProdNo%  the product number
  1133. '**         Inst% instance of the the NodeOption
  1134. '** Return:    NodeOptStr$ NodeOpt string or
  1135. '**             "" if the product number is invalid or if
  1136. '**             the inst% is out of sequence or
  1137. '**         NodeOptStr$  is an empty string.
  1138. '*************************************************************************
  1139. DIM NodeOptSym$,NodeOptStr$,NodeOptListLen%
  1140.         NodeOptSym$ = ""
  1141.         NodeOptStr$ = ""
  1142.         NodeOptListLen% = 0
  1143.         IF ProdNo% > gMaxNumOfProds% THEN
  1144. '           ERROR STFSETERROR
  1145.            ERROR STFQUIT
  1146.         END IF       
  1147.         NodeOptSym$=Prods(ProdNo%).NodeOpt
  1148.         IF NodeOptSym$ = "" THEN
  1149. '           ERROR STFSETERROR
  1150.            ERROR STFQUIT
  1151.         END IF       
  1152.         NodeOptListLen%=GetListLength(NodeOptSym$)
  1153.         IF Inst% > NodeOptListLen% THEN
  1154. '           ERROR STFSETERROR
  1155.            ERROR STFQUIT
  1156.         END IF       
  1157.         NodeOptStr$=GetListItem( NodeOptSym$, Inst%)
  1158.         Reg_GetNodeOptionStr=NodeOptStr$
  1159. END FUNCTION
  1160.  
  1161. PUBLIC FUNCTION Reg_GetNumOfCDOptions(ProdNo%) AS INTEGER
  1162. '** Purpose:    This function will do:
  1163. '**             CDOptSym$=Prods(ProdNo%).CDOpt
  1164. '**              OptNum%=GetListLength( CDOptSym$)
  1165. '** Parameters: ProdNo%  the product number
  1166. '** Return:    OptNum% number of CDOptions or 0 if the product number
  1167. '**             is invalid or if 
  1168. '**             there are no CDOptions.
  1169. '*************************************************************************
  1170. DIM CDOptSym$,CDOptNum%
  1171.         CDOptSym$ = ""
  1172.         CDOptNum% = 0
  1173.         IF ProdNo% > gMaxNumOfProds% THEN
  1174. '           ERROR STFSETERROR
  1175.            ERROR STFQUIT
  1176.         END IF       
  1177.         CDOptSym$=Prods(ProdNo%).CDOpt
  1178.         IF CDOptSym$ = "" THEN
  1179. '           ERROR STFSETERROR
  1180.            ERROR STFQUIT
  1181.         END IF       
  1182.         CDOptNum%=GetListLength( CDOptSym$)
  1183.         Reg_GetNumOfCDOptions=CDOptNum%
  1184. END FUNCTION
  1185.  
  1186. PUBLIC FUNCTION Reg_GetNumOfNodeOptions(ProdNo%) AS INTEGER
  1187. '** Purpose:    This function will do:
  1188. '**             NodeOptSym$=Prods(ProdNo%).NodeOpt
  1189. '**              OptNum%=GetListLength( NodeOptSym$)
  1190. '** Parameters:    ProdNo%  the product number
  1191. '** Return:    OptNum% number of NodeOptions or 0 if the product number
  1192. '**             is invalid or if there are no NodeOptions.
  1193. '*************************************************************************
  1194. DIM NodeOptSym$,NodeOptNum%
  1195.         NodeOptSym$ = ""
  1196.         NodeOptNum% = 0
  1197.         IF ProdNo% > gMaxNumOfProds% THEN
  1198. '           ERROR STFSETERROR
  1199.            ERROR STFQUIT
  1200.         END IF       
  1201.         NodeOptSym$=Prods(ProdNo%).NodeOpt
  1202.         IF NodeOptSym$ = "" THEN
  1203. '           ERROR STFSETERROR
  1204.            ERROR STFQUIT
  1205.         END IF       
  1206.         NodeOptNum%=GetListLength( NodeOptSym$)
  1207.         Reg_GetNumOfNodeOptions=NodeOptNum%
  1208. END FUNCTION
  1209.  
  1210. PUBLIC FUNCTION Reg_GetProdSupportForSrv(ProdNo%) AS INTEGER
  1211. '** Purpose:    Finds Prods(ProdNo%).Srv
  1212. '** Parameters:    ProdNo% product number
  1213. '** Return:    SuppFlag% is 1 if the product supports server install
  1214. '**             and 0 if it does not
  1215. '*************************************************************************
  1216. DIM SuppFlag%
  1217.         SuppFlag% = 0
  1218.         IF ProdNo% > gMaxNumOfProds% THEN
  1219. '           ERROR STFSETERROR
  1220.            ERROR STFQUIT
  1221.         END IF       
  1222.         SuppFlag%=Prods(ProdNo%).Srv        
  1223.         Reg_GetProdSupportForSrv=SuppFlag% 
  1224. END FUNCTION
  1225.  
  1226. PUBLIC FUNCTION Reg_GetProdSupportForDist(ProdNo%) AS INTEGER
  1227. '** Purpose:    Finds Prods(ProdNo%).Dist
  1228. '** Parameters:    ProdNo% product number
  1229. '** Return:    SuppFlag% is 1 if the product supports only distribution install
  1230. '**             and 0 if it does not
  1231. '*************************************************************************
  1232. DIM SuppFlag%
  1233.         SuppFlag% = 0
  1234.         IF ProdNo% > gMaxNumOfProds% THEN
  1235. '           ERROR STFSETERROR
  1236.            ERROR STFQUIT
  1237.         END IF       
  1238.         SuppFlag%=Prods(ProdNo%).Dist        
  1239.         Reg_GetProdSupportForDist=SuppFlag% 
  1240. END FUNCTION
  1241.  
  1242. PUBLIC FUNCTION Reg_GetProdSupportForExtraProdDirs(ProdNo%) AS INTEGER
  1243. '** Purpose:    Finds Prods(ProdNo%).ExtraProdDirsNum
  1244. '** Parameters:    ProdNo% product number
  1245. '** Return:    SuppFlag% is 1 if the product needs two main directories prompt
  1246. '**             and 0 if it does not
  1247. '*************************************************************************
  1248. DIM SuppFlag%
  1249.         SuppFlag% = 0
  1250.         IF ProdNo% > gMaxNumOfProds% THEN
  1251. '           ERROR STFSETERROR
  1252.            ERROR STFQUIT
  1253.         END IF       
  1254.         SuppFlag%=Prods(ProdNo%).ExtraProdDirsNum        
  1255.         Reg_GetProdSupportForExtraProdDirs=SuppFlag% 
  1256. END FUNCTION
  1257.  
  1258. PUBLIC FUNCTION Reg_GetProdSupportForLicense(ProdNo%) AS INTEGER
  1259. '** Purpose:    Finds Prods(ProdNo%).License
  1260. '** Parameters:    ProdNo% product number
  1261. '** Return:    SuppFlag% is 1 if the product supports Licensing and 0
  1262. '**             if it does not
  1263. '*************************************************************************
  1264. DIM SuppFlag%
  1265.         SuppFlag% = 0
  1266.         IF ProdNo% > gMaxNumOfProds% THEN
  1267. '           ERROR STFSETERROR
  1268.            ERROR STFQUIT
  1269.         END IF       
  1270.         SuppFlag%=Prods(ProdNo%).License        
  1271.         Reg_GetProdSupportForLicense=SuppFlag% 
  1272. END FUNCTION
  1273.  
  1274. PUBLIC FUNCTION Reg_IsLicenseSelected(ProdNo%) AS INTEGER
  1275. '** Purpose:    Finds Prods(ProdNo%).LicenseSelected
  1276. '** Parameters:    ProdNo% product number
  1277. '** Return:    SuppFlag% is 1 if the product selected Licensing and 0
  1278. '**             if it did not
  1279. '*************************************************************************
  1280. DIM SelFlag%
  1281.         SelFlag% = 0
  1282.         IF ProdNo% > gMaxNumOfProds% THEN
  1283. '           ERROR STFSETERROR
  1284.            ERROR STFQUIT
  1285.         END IF       
  1286.         SelFlag%=Prods(ProdNo%).LicenseSelected
  1287.         Reg_IsLicenseSelected=SelFlag% 
  1288. END FUNCTION
  1289.  
  1290. PUBLIC FUNCTION Reg_GetCountDirectory(ProdNo%)   AS STRING
  1291. '** Purpose:    This function will do:
  1292. '**             CountDir$=Prods(ProdNo%).CountDirectory
  1293. '** Parameters:    ProdNo%  the product number
  1294. '** Return:    CountDir$ the directory name
  1295. '*************************************************************************
  1296. DIM CountDir$
  1297.         CountDir$=""
  1298.         IF ProdNo% > gMaxNumOfProds% THEN
  1299. '           ERROR STFSETERROR
  1300.            ERROR STFQUIT
  1301.         END IF               
  1302.         CountDir$=Prods(ProdNo%).CountDirectory
  1303.         Reg_GetCountDirectory=CountDir$        
  1304. END FUNCTION
  1305.  
  1306. PUBLIC FUNCTION Reg_GetProdSupportForATM(ProdNo%) AS INTEGER
  1307. '** Purpose:    Finds Prods(ProdNo%).ATM
  1308. '** Parameters:    ProdNo% product number
  1309. '** Return:    SuppFlag% is 1 if the product supports ATM and 0 if it
  1310. '**             does not
  1311. '*************************************************************************
  1312. DIM SuppFlag%
  1313.         SuppFlag% = 0
  1314.         IF ProdNo% > gMaxNumOfProds% THEN
  1315. '           ERROR STFSETERROR
  1316.            ERROR STFQUIT
  1317.         END IF       
  1318.         SuppFlag%=Prods(ProdNo%).ATM        
  1319.         Reg_GetProdSupportForATM=SuppFlag% 
  1320. END FUNCTION
  1321.  
  1322. PUBLIC FUNCTION Reg_GetDirSymbolList(ProdNo%)   AS STRING
  1323. '** Purpose:    This function will do:
  1324. '**             DirSym$=Prods(ProdNo%).DirSymList
  1325. '** Parameters:    ProdNo%  the product number
  1326. '** Return:    DirSym$ directory symbol name for this product.
  1327. '*************************************************************************
  1328. DIM DirList$
  1329.         DirList$=""
  1330.         IF ProdNo% > gMaxNumOfProds% THEN
  1331. '           ERROR STFSETERROR
  1332.            ERROR STFQUIT
  1333.         END IF               
  1334.         DirList$=Prods(ProdNo%).DirSymList
  1335.         Reg_GetDirSymbolList=DirList$        
  1336. END FUNCTION
  1337.  
  1338. PUBLIC FUNCTION Reg_GetProgManagerGroupName(ProdNo%)   AS STRING
  1339. '** Purpose:    This function will do:
  1340. '**             ProdManagerGroupName$=Prods(ProdNo%).ProgManagGroup
  1341. '** Parameters:    ProdNo%  the product number
  1342. '** Return:    ProdManagerGroupName$ the group name
  1343. '*************************************************************************
  1344. DIM ProdManagerGroupName$
  1345.         ProdManagerGroupName$=""
  1346.         IF ProdNo% > gMaxNumOfProds% THEN
  1347. '           ERROR STFSETERROR
  1348.            ERROR STFQUIT
  1349.         END IF               
  1350.         ProdManagerGroupName$=Prods(ProdNo%).ProgManagerGroup
  1351.         Reg_GetProgManagerGroupName=ProdManagerGroupName$        
  1352. END FUNCTION
  1353.  
  1354. PUBLIC FUNCTION Reg_GetNumOfDirectories(ProdNo%) AS INTEGER
  1355. '** Purpose:    This function will do:
  1356. '**             DirSym$=Prods(ProdNo%).DirSymList
  1357. '**              DirNum%=GetListLength( DirSym$)
  1358. '** Parameters:    ProdNo%  the product number
  1359. '** Return:    DirNum% number of directories or 0 if the product number
  1360. '**             is invalid or if there product did not register any directories.
  1361. '*************************************************************************
  1362. DIM DirSym$,DirNum%
  1363.         DirSym$ = ""
  1364.         DirNum% = 0
  1365.         IF ProdNo% > gMaxNumOfProds% THEN
  1366. '           ERROR STFSETERROR
  1367.            ERROR STFQUIT
  1368.         END IF       
  1369.         DirSym$=Prods(ProdNo%).DirSymList
  1370.         IF DirSym$ = "" THEN
  1371. '           ERROR STFSETERROR
  1372.            ERROR STFQUIT
  1373.         END IF       
  1374.         DirNum%=GetListLength( DirSym$)
  1375.         Reg_GetNumOfDirectories=DirNum%
  1376. END FUNCTION
  1377.  
  1378. PUBLIC FUNCTION Reg_IsCDOptionSelected(ProdNo%,Inst%) AS STRING
  1379. '** Purpose:    This function will do:
  1380. '**             CDOptSym$=Prods(ProdNo%).CDOptSelected
  1381. '**         CDOptSel%=GetListItem( CDOptSym$, Inst%)
  1382. '** Parameters:    ProdNo%  the product number
  1383. '**           Inst% instance of the the CDOption
  1384. '** Return:    1 or 0 if the CDOpt was selected or not
  1385. '*************************************************************************
  1386. DIM CDOptSelectedSym$,CDOptSel$,CDOptSelListLen%
  1387.         CDOptSelectedSym$ = ""
  1388.         CDOptSel$ = ""
  1389.         CDOptSelListLen% = 0
  1390.         IF ProdNo% > gMaxNumOfProds% THEN
  1391. '           ERROR STFSETERROR
  1392.            ERROR STFQUIT
  1393.         END IF       
  1394.         CDOptSelectedSym$=Prods(ProdNo%).CDOptSelected
  1395.         IF CDOptSelectedSym$ = "" THEN
  1396. '           ERROR STFSETERROR
  1397.            ERROR STFQUIT
  1398.         END IF       
  1399.         CDOptSelListLen%=GetListLength(CDOptSelectedSym$)
  1400.         IF Inst% > CDOptSelListLen% THEN
  1401. '           ERROR STFSETERROR
  1402.            ERROR STFQUIT
  1403.         END IF       
  1404.         CDOptSel$=GetListItem( CDOptSelectedSym$, Inst%)
  1405.         Reg_IsCDOptionSelected=CDOptSel$
  1406. END FUNCTION
  1407.  
  1408. PUBLIC FUNCTION Reg_IsNodeOptionSelected(ProdNo%,Inst%) AS STRING
  1409. '** Purpose:    This function will do:
  1410. '**             NodeOptSelSym$=Prods(ProdNo%).NodeOptSelected
  1411. '**         NodeOptSel$=GetListItem( NodeOptSelSym$, Inst%)
  1412. '** Parameters:    ProdNo%  the product number
  1413. '**           Inst% instance of the the NodeOption
  1414. '** Return:    1 or 0 if the NodeOpt was selected or not
  1415. '*************************************************************************
  1416. DIM NodeOptSelectedSym$,NodeOptSel$,NodeOptSelListLen%
  1417.         NodeOptSelectedSym$ = ""
  1418.         NodeOptSel$ = ""
  1419.         NodeOptSelListLen% = 0
  1420.         IF ProdNo% > gMaxNumOfProds% THEN
  1421. '           ERROR STFSETERROR
  1422.            ERROR STFQUIT
  1423.         END IF       
  1424.         NodeOptSelectedSym$=Prods(ProdNo%).NodeOptSelected
  1425.         IF NodeOptSelectedSym$ = "" THEN
  1426. '           ERROR STFSETERROR
  1427.            ERROR STFQUIT
  1428.         END IF       
  1429.         NodeOptSelListLen%=GetListLength(NodeOptSelectedSym$)
  1430.         IF Inst% > NodeOptSelListLen% THEN
  1431. '           ERROR STFSETERROR
  1432.            ERROR STFQUIT
  1433.         END IF       
  1434.         NodeOptSel$=GetListItem( NodeOptSelectedSym$, Inst%)
  1435.         Reg_IsNodeOptionSelected=NodeOptSel$
  1436. END FUNCTION
  1437.  
  1438. PUBLIC FUNCTION Reg_IsNodeOptionDefaultSelected(ProdNo%,Inst%) AS STRING
  1439. '** Purpose:    This function will do:
  1440. '**             NodeOptSelDefaultSym$=Prods(ProdNo%).NodeOptDefaultSelected
  1441. '**         NodeOptDefaultSel$=GetListItem( NodeOptSelDefaultSym$, Inst%)
  1442. '** Parameters:    ProdNo%  the product number
  1443. '**           Inst% instance of the the NodeOptionDefault
  1444. '** Return:    1 or 0 if the NodeOpt was selected or not
  1445. '*************************************************************************
  1446. DIM NodeOptSelectedDefaultSym$,NodeOptSelDefault$,NodeOptSelDefaultListLen%
  1447.         NodeOptSelectedDefaultSym$ = ""
  1448.         NodeOptSelDefault$ = ""
  1449.         NodeOptSelDefaultListLen% = 0
  1450.         IF ProdNo% > gMaxNumOfProds% THEN
  1451. '           ERROR STFSETERROR
  1452.            ERROR STFQUIT
  1453.         END IF       
  1454.         NodeOptSelectedDefaultSym$=Prods(ProdNo%).NodeOptDefaultSelected
  1455.         IF NodeOptSelectedDefaultSym$ = "" THEN
  1456. '           ERROR STFSETERROR
  1457.            ERROR STFQUIT
  1458.         END IF       
  1459.         NodeOptSelDefaultListLen%=GetListLength(NodeOptSelectedDefaultSym$)
  1460.         IF Inst% > NodeOptSelDefaultListLen% THEN
  1461. '           ERROR STFSETERROR
  1462.            ERROR STFQUIT
  1463.         END IF       
  1464.         NodeOptSelDefault$=GetListItem( NodeOptSelectedDefaultSym$, Inst%)
  1465.         Reg_IsNodeOptionDefaultSelected=NodeOptSelDefault$
  1466. END FUNCTION
  1467.  
  1468. PUBLIC FUNCTION Reg_IsCDOptionDefaultSelected(ProdNo%,Inst%) AS STRING
  1469. '** Purpose:    This ftion will do:
  1470. '**             CDOptSelDefaultSym$=Prods(ProdNo%).CDOptDefaultSelected
  1471. '**         CDOptDefaultSel$=GetListItem( CDOptSelDefaultSym$, Inst%)
  1472. '** Parameters:    ProdNo%  the product number
  1473. '**           Inst% instance of the the CDOptionDefault
  1474. '** Return:    1 or 0 if the NodeOpt was selected or not
  1475. '*************************************************************************
  1476. DIM CDOptSelectedDefaultSym$,CDOptSelDefault$,CDOptSelDefaultListLen%
  1477.         CDOptSelectedDefaultSym$ = ""
  1478.         CDOptSelDefault$ = ""
  1479.         CDOptSelDefaultListLen% = 0
  1480.         IF ProdNo% > gMaxNumOfProds% THEN
  1481. '           ERROR STFSETERROR
  1482.            ERROR STFQUIT
  1483.         END IF       
  1484.         CDOptSelectedDefaultSym$=Prods(ProdNo%).CDOptDefaultSelected
  1485.         IF CDOptSelectedDefaultSym$ = "" THEN
  1486. '           ERROR STFSETERROR
  1487.            ERROR STFQUIT
  1488.         END IF       
  1489.         CDOptSelDefaultListLen%=GetListLength(CDOptSelectedDefaultSym$)
  1490.         IF Inst% > CDOptSelDefaultListLen% THEN
  1491. '           ERROR STFSETERROR
  1492.            ERROR STFQUIT
  1493.         END IF       
  1494.         CDOptSelDefault$=GetListItem( CDOptSelectedDefaultSym$, Inst%)
  1495.         Reg_IsCDOptionDefaultSelected=CDOptSelDefault$
  1496. END FUNCTION
  1497.  
  1498.  
  1499. PUBLIC SUB Reg_SetSystemFileSize(ProdNo%,Size&)
  1500. '** Purpose:    Set the size of the system files to be installed for
  1501. '**            a product
  1502. '** Parameters:    
  1503. '** Return:    NONE
  1504. '*************************************************************************
  1505.  
  1506.    IF ProdNo% > gMaxNumOfProds% THEN
  1507.       '** ERROR STFSETERROR
  1508.       ERROR STFQUIT
  1509.    END IF
  1510.  
  1511.     Prods(ProdNo%).SystemFileSize = Size&
  1512.  
  1513. END SUB
  1514.  
  1515. PUBLIC FUNCTION Reg_GetSystemFileSize(ProdNo%) AS LONG
  1516. '** Purpose:    Get the size of the system files to be installed for
  1517. '**            a product
  1518. '** Parameters:    
  1519. '** Return:    System file size in bytes
  1520. '*************************************************************************
  1521.  
  1522.    IF ProdNo% > gMaxNumOfProds% THEN
  1523.       '** ERROR STFSETERROR
  1524.       ERROR STFQUIT
  1525.    END IF
  1526.  
  1527.    Reg_GetSystemFileSize = Prods(ProdNo%).SystemFileSize
  1528.  
  1529. END FUNCTION
  1530.  
  1531. PUBLIC FUNCTION Reg_GetBillboardNumber(ProdNo%)   AS INTEGER
  1532. '** Purpose:    This function will do:
  1533. '**             BBNum%=Prods(ProdNo%).BillboardNumber
  1534. '** Parameters:    ProdNo%  the product number
  1535. '** Return:    BBNum% the number of billboards for the product
  1536. '*************************************************************************
  1537. DIM BBNum%
  1538.         BBNum%=0
  1539.         IF ProdNo% > gMaxNumOfProds% THEN
  1540. '           ERROR STFSETERROR
  1541.            ERROR STFQUIT
  1542.         END IF               
  1543.         BBNum%=Prods(ProdNo%).BillboardNumber
  1544.         Reg_GetBillboardNumber=BBNum%        
  1545. END FUNCTION
  1546.  
  1547. PUBLIC SUB Reg_SetSHAREEXESupport(ProdNo%,Flag%) 
  1548. '** Purpose:    This function will set:
  1549. '**             Prods(ProdNo%).SHAREEXE=Flag%
  1550. '** Parameters:    ProdNo%  the product number
  1551. '**         Flag% 1 if the product needs SHARE.EXE or 0 if it does not
  1552. '*************************************************************************
  1553.         IF ProdNo% > gMaxNumOfProds% THEN
  1554. '           ERROR STFSETERROR
  1555.            ERROR STFQUIT
  1556.         END IF               
  1557.         IF Flag% <> 0 AND Flag% <> 1 THEN
  1558. '           ERROR STFSETERROR
  1559.            ERROR STFQUIT
  1560.         END IF               
  1561.     Prods(ProdNo%).SHAREEXE=Flag%
  1562. END SUB
  1563.  
  1564. PUBLIC FUNCTION Reg_GetSHAREEXESupport(ProdNo%) AS INTEGER
  1565. '** Purpose:    Finds Prods(ProdNo%).SHAREXE
  1566. '** Parameters:    ProdNo% product number
  1567. '** Return:    SuppFlag% is 1 if the product needs SHARE.EXE and 0
  1568. '**             if it does not
  1569. '*************************************************************************
  1570. DIM SuppFlag%
  1571.         SuppFlag% = 0
  1572.         IF ProdNo% > gMaxNumOfProds% THEN
  1573. '           ERROR STFSETERROR
  1574.            ERROR STFQUIT
  1575.         END IF       
  1576.         SuppFlag%=Prods(ProdNo%).SHAREEXE        
  1577.         Reg_GetSHAREEXESupport=SuppFlag% 
  1578. END FUNCTION
  1579.  
  1580. PUBLIC SUB Reg_SetNotesSupport(ProdNo%,Flag%) 
  1581. '** Purpose:    This function will set:
  1582. '**             Prods(ProdNo%).Notes=Flag%
  1583. '** Parameters:    ProdNo%  the product number
  1584. '**         Flag% 1 if the product needs Lotus Notes or 0 if it does not
  1585. '*************************************************************************
  1586.         IF ProdNo% > gMaxNumOfProds% THEN
  1587. '           ERROR STFSETERROR
  1588.            ERROR STFQUIT
  1589.         END IF               
  1590.         IF Flag% <> 0 AND Flag% <> 1 THEN
  1591. '           ERROR STFSETERROR
  1592.            ERROR STFQUIT
  1593.         END IF               
  1594.     Prods(ProdNo%).Notes=Flag%
  1595. END SUB
  1596.  
  1597.  
  1598. PUBLIC SUB Reg_SetPreviousVersion(ProdNo%,prev$)  
  1599. '** Purpose:    This function will set:
  1600. '**             Prods(ProdNo%).PreviousVersion=prev$
  1601. '** Parameters:    ProdNo%  the product number
  1602. '*************************************************************************
  1603.         IF ProdNo% > gMaxNumOfProds% THEN
  1604.            ERROR STFQUIT
  1605.         END IF               
  1606.  
  1607.         Prods(ProdNo%).PreviousVersion=prev$
  1608. END SUB
  1609.  
  1610.  
  1611. PUBLIC FUNCTION Reg_GetPreviousVersion(ProdNo%)   AS STRING
  1612. '** Purpose:    Finds Prods(ProdNo%).PrevVersion
  1613. '** Parameters:    ProdNo% product number
  1614. '*************************************************************************
  1615.         IF ProdNo% > gMaxNumOfProds% THEN
  1616.            ERROR STFQUIT
  1617.         END IF               
  1618.         Reg_GetPreviousVersion=Prods(ProdNo%).PreviousVersion
  1619.  
  1620. END FUNCTION
  1621.  
  1622. PUBLIC SUB Reg_SetObsFiles(ProdNo%,support%)  
  1623. '** Purpose:    This function will set:
  1624. '**             Prods(ProdNo%).ObsoleteFiles=support% (1 or 0)
  1625. '** Parameters:    ProdNo%  the product number
  1626. '*************************************************************************
  1627.         IF ProdNo% > gMaxNumOfProds% THEN
  1628.            ERROR STFQUIT
  1629.         END IF               
  1630.  
  1631.         Prods(ProdNo%).ObsoleteFiles=support%
  1632. END SUB
  1633.  
  1634. PUBLIC FUNCTION Reg_GetObsFiles(ProdNo%)   AS INTEGER
  1635. '** Purpose:    Finds Prods(ProdNo%).ObsoleteFiles
  1636. '** Parameters:    ProdNo% product number
  1637. '*************************************************************************
  1638.         IF ProdNo% > gMaxNumOfProds% THEN
  1639.            ERROR STFQUIT
  1640.         END IF               
  1641.         Reg_GetObsFiles=Prods(ProdNo%).ObsoleteFiles
  1642.  
  1643. END FUNCTION
  1644.  
  1645. PUBLIC FUNCTION Reg_GetNotesSupport(ProdNo%) AS INTEGER
  1646. '** Purpose:    Finds Prods(ProdNo%).Notes
  1647. '** Parameters:    ProdNo% product number
  1648. '** Return:    SuppFlag% is 1 if the product needs Lotus Notes and 0
  1649. '**             if it does not
  1650. '*************************************************************************
  1651. DIM SuppFlag%
  1652.         SuppFlag% = 0
  1653.         IF ProdNo% > gMaxNumOfProds% THEN
  1654. '           ERROR STFSETERROR
  1655.            ERROR STFQUIT
  1656.         END IF       
  1657.         SuppFlag%=Prods(ProdNo%).Notes        
  1658.         Reg_GetNotesSupport=SuppFlag% 
  1659. END FUNCTION
  1660.  
  1661.  
  1662. PUBLIC FUNCTION Reg_GetMoreDirsCBName(ProdNo%)   AS STRING
  1663. '** Purpose:    Finds Prods(ProdNo%).MoreDirsCBName
  1664. '** Parameters:    ProdNo% product number
  1665. '*************************************************************************
  1666.         IF ProdNo% > gMaxNumOfProds% THEN
  1667.            ERROR STFQUIT
  1668.         END IF               
  1669.         Reg_GetMoreDirsCBName=Prods(ProdNo%).MoreDirsCBName
  1670.  
  1671. END FUNCTION
  1672.  
  1673. PUBLIC FUNCTION Reg_GetMoreDirsDlgID(ProdNo%)   AS INTEGER
  1674. '** Purpose:    Finds Prods(ProdNo%).MoreDirsDlgID
  1675. '** Parameters:    ProdNo% product number
  1676. '*************************************************************************
  1677.         IF ProdNo% > gMaxNumOfProds% THEN
  1678.            ERROR STFQUIT
  1679.         END IF               
  1680.         Reg_GetMoreDirsDlgID=Prods(ProdNo%).MoreDirsDlgID
  1681.  
  1682. END FUNCTION
  1683.  
  1684. PUBLIC FUNCTION Reg_GetMoreDirsHlpID(ProdNo%)   AS LONG
  1685. '** Purpose:    Finds Prods(ProdNo%).MoreDirsDlgID
  1686. '** Parameters:    ProdNo% product number
  1687. '*************************************************************************
  1688.         IF ProdNo% > gMaxNumOfProds% THEN
  1689.            ERROR STFQUIT
  1690.         END IF               
  1691.         Reg_GetMoreDirsHlpID=Prods(ProdNo%).MoreDirsHlpID
  1692.  
  1693. END FUNCTION
  1694.  
  1695. '*************************************************************************
  1696. PUBLIC SUB Reg_SetSelectedFolder(ProdNo%, s$)
  1697.  
  1698. '** Purpose:    Set the path for the Win95 start up folder links
  1699. '** Author:   
  1700. '** Arguments:  None
  1701. '** Symbols In: 
  1702. '** Returns:
  1703. '*************************************************************************
  1704.  ''set the components directoey and any other directory
  1705.     Prods(ProdNo%).ProgFolder = s$
  1706. END SUB
  1707.  
  1708. PUBLIC FUNCTION Reg_GetSelectedFolder(ProdNo%) AS STRING
  1709. '** Purpose:    Return the folder that the program group will
  1710. '**                appear under.
  1711. '** Parameters:    ProdNo%  the product number
  1712. '**         Flag% 1 if the product is in UI and 0 if not
  1713. '*************************************************************************
  1714.     Reg_GetSelectedFolder = Prods(ProdNo%).ProgFolder
  1715. END FUNCTION
  1716.  
  1717. '*************************************************************************
  1718. PUBLIC FUNCTION Lot_GetProgFolder(ProdNo%) AS STRING
  1719.  
  1720. '** Purpose:   Return the SelectedFolder value
  1721. '** Author:    
  1722. '** Arguments: 
  1723. '** Returns:   the value in SelectedFolder
  1724. '*************************************************************************
  1725.     Lot_GetProgFolder = Reg_GetSelectedFolder(ProdNo%)+"\"
  1726.  
  1727. END FUNCTION
  1728.  
  1729. '*************************************************************************
  1730. PUBLIC FUNCTION Lot_AddLinkIconToFolder(prodno%, szProgPath$, szLinkName$, szDesc$, szArgument$, szWorkingDir$, szIconpath$, Icon&) AS INTEGER
  1731.  
  1732. '** Purpose:   Make a Win95 Shell link and specify the icon
  1733. '** Author:    OM
  1734. '** Arguments: 
  1735. '**        prodno%:            Product number, should be 1 for most cases.
  1736. '**        szProgPath$:    Full path of program file
  1737. '**        szLinkName$:    Name of the link.  What will appear in menu
  1738. '**        szDesc$:            Description. Doesn't seem to do anything now.
  1739. '**        szArgument$:    Arguments passed to program
  1740. '*            szWorkingDir$:    Working directory for program
  1741. '**        szIconpath$:    Full path of file containing icon
  1742. '**        Icon&:            Number of the icon within file above
  1743. '** Returns:   True if worked False otherwise
  1744. '*************************************************************************
  1745.     IF 0 = _
  1746.       CreateLinkIcon(szProgPath, Lot_GetProgFolder(1)+szLinkName$, _
  1747.                    szDesc$, szArgument$, szWorkingDir$, szIconpath$, Icon&) THEN
  1748.         Lot_AddLinkIconToFolder = TRUE
  1749.     ELSE
  1750.         Lot_AddLinkIconToFolder = FALSE
  1751.     END IF    
  1752.  
  1753. END FUNCTION
  1754.  
  1755. '*************************************************************************
  1756. PUBLIC FUNCTION Lot_AddLinkToFolder(prodno%, szProgPath$, szLinkName$, szDesc$, szArgument$, szWorkingDir$) AS INTEGER
  1757.  
  1758. '** Purpose:   Make a Win95 Shell link
  1759. '** Author:    OM
  1760. '** Arguments: 
  1761. '**        prodno%:            Product number, should be 1 for most cases.
  1762. '**        szProgPath$:    Full path of program file
  1763. '**        szLinkName$:    Name of the link.  What will appear in menu
  1764. '**        szDesc$:            Description. Doesn't seem to do anything now.
  1765. '**        szArgument$:    Arguments passed to program
  1766. '*            szWorkingDir$:    Working directory for program
  1767. '** Returns:   True if worked False otherwise
  1768. '*************************************************************************
  1769.     IF 0 = _
  1770.       CreateLink(szProgPath, Lot_GetProgFolder(1)+szLinkName$, _
  1771.                    szDesc$, szArgument$, szWorkingDir$) THEN
  1772.         Lot_AddLinkToFolder = TRUE
  1773.     ELSE
  1774.         Lot_AddLinkToFolder = FALSE
  1775.     END IF    
  1776.  
  1777. END FUNCTION
  1778.  
  1779. '*************************************************************************
  1780. PUBLIC SUB Reg_SetRootFolder(s$)
  1781. '** Purpose:    Set the Symbol that will be used as the root of
  1782. '**               the Program folder tree.
  1783. '** Parameters:    s$ = the path of the root
  1784. '*************************************************************************
  1785.    SetSymbolValue SYM_ROOTFOLDER$, s$
  1786.     
  1787. END SUB
  1788.  
  1789. PUBLIC FUNCTION Reg_GetRootFolder() AS STRING
  1790. '** Purpose:    Return value of the Symbol that is for the root of
  1791. '**               the Program folder tree.
  1792. '** Parameters:
  1793. '*************************************************************************
  1794.    Reg_GetRootFolder = GetSymbolValue(SYM_ROOTFOLDER$)
  1795.     
  1796. END FUNCTION
  1797.