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