home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 February / PCWK0297.iso / lotus / english / winagent / install.dsk / OWA.LSS < prev    next >
Text File  |  1995-06-14  |  23KB  |  696 lines

  1. ''/*********************************************************************
  2. ''
  3. ''   Module Name:   OWA.lss
  4. ''
  5. ''   Module Code:   COMINST
  6. ''
  7. ''   Author:              
  8. ''
  9. ''   Creation Date:       Jan 26, 1994
  10. ''
  11. ''   Copyright Lotus Development Corporation, (c) 1994
  12. ''
  13. '**
  14.  
  15. USE "TOOLKIT"
  16. OPTION DECLARE
  17.  
  18. '** These Are the Required Functions that Products must provide
  19. '***************************************************************
  20. DECLARE PUBLIC FUNCTION ProductRegOWA (prodno%, network$, direction$) AS STRING
  21. DECLARE PUBLIC FUNCTION DefaultUserRegOWA (prodno%, network$, direction$) AS STRING
  22. DECLARE PUBLIC FUNCTION InitOWA (prodno%, network$, direction$, basedir$) AS STRING
  23. DECLARE PUBLIC FUNCTION PrevVersionsOWA (prodno%, network$, direction$) AS STRING
  24. DECLARE PUBLIC FUNCTION PathChangeOWA (prodno%, network$, direction$, destdirsym$, mainprodsonly%) AS STRING
  25. DECLARE PUBLIC FUNCTION InitCopyListOWA (prodno%, network$, direction$) AS STRING
  26. DECLARE PUBLIC FUNCTION PreCopyConfigOWA (prodno%, network$, direction$, lic%) AS STRING
  27. DECLARE PUBLIC FUNCTION AddTheBillBoardsOWA (prodno%, network$, direction$, nbytes&) AS STRING
  28. DECLARE PUBLIC FUNCTION PostCopyConfigOWA (prodno%, network$, direction$, programgroup$) AS STRING
  29. DECLARE PUBLIC FUNCTION AddIconsOWA (prodno%, network$, direction$, programgroup$) AS STRING
  30. DECLARE PUBLIC FUNCTION UIOWA (prodno%, network$, direction$) AS STRING
  31. DECLARE PUBLIC FUNCTION PostSuccessRegOWA (prodno%, network$, direction$) AS STRING
  32.  
  33. '** Product specific functions
  34. '*****************************
  35. DECLARE FUNCTION GetOWAPathfromLotusIni() AS STRING
  36.  
  37. DECLARE FUNCTION GetNotesDir() AS STRING
  38. DECLARE FUNCTION UpdateOrganizerIniFiles (prodno%) AS INTEGER
  39. DECLARE SUB OWACCMAILOPTCB (hDlg%, CtrlId%, Classes$, Inst%)
  40. DECLARE SUB OWANOTESOPTCB (hDlg%, CtrlId%, Classes$, Inst%)
  41.  
  42. DECLARE FUNCTION GetModuleHandle LIB "KRNL386.EXE" (ByVal arg1$) AS INTEGER
  43.  
  44. DECLARE FUNCTION GetPrivateProfileString LIB "kernel" (ByVal szSect$, ByVal szKey$,_
  45. ByVal  szDefault$,ByVal szBuf$,ByVal cbBuf%,ByVal szFile$) AS INTEGER
  46.  
  47. DECLARE FUNCTION GetProfileString LIB "kernel" (ByVal szSect$, ByVal szKey$,_
  48. ByVal  szDefault$,ByVal szBuf$,ByVal cbBuf%) AS INTEGER
  49.  
  50. DECLARE FUNCTION WritePrivateProfileString LIB "Kernel" (ByVal lpArg1$, ByVal lpArg2$, ByVal lpArg3 As Long, ByVal lpArg4$) AS INTEGER
  51. DECLARE FUNCTION WriteProfileString LIB "Kernel" (ByVal lpArg1$, ByVal lpArg2$, ByVal lpArg3 As Long) AS INTEGER
  52. '**************************** Required Functions *************************
  53. SUB Initialize
  54.    Reg_RegisterProductNames "OWA", LdString(SID_OWA_COMMERCIALNAME) 
  55. END SUB
  56.  
  57. '*************************************************************************
  58.  
  59. PUBLIC FUNCTION ProductRegOWA (prodno%, network$, direction$) AS STRING
  60.    ProductRegOWA = gNEXT
  61.  
  62.    Reg_SetSupportedInstallTypes prodno%, 1, 0, 1
  63.    Reg_SetProdSizes prodno%, 2 * 1474560, 2 * 1474560
  64.  
  65.    '** If you need Lotusapp or datalens support turn this on.
  66.    Reg_SetShareFlags prodno%, 0, 0, 0, 0 
  67.  
  68.    '** Toolkit default is for no server supprt, turn on if desired.
  69.    Reg_SetSrvSupport prodno%, 0
  70.  
  71.    '** This is the default value the user will see.
  72.    Reg_SetProgManagerGroup prodno%, LdString(SID_OWA_COMMERCIALNAME)
  73.  
  74.  
  75.  
  76. END FUNCTION
  77.  
  78. '*************************************************************************
  79.  
  80. PUBLIC FUNCTION DefaultUserRegOWA (prodno%, network$, direction$) AS STRING
  81.    DIM ripath$, defdir$, temp%, rc%
  82.  
  83.    DefaultUserRegOWA = gNEXT
  84.  
  85.    If network$ = gNODE$ Then
  86.       ripath$ = GetSymbolValue(SYM_STF_SRCDIR$) + "owa.ri"
  87.    ElseIf network$ = gSTANDARD$ Then
  88.       '** GetOWA.... is in this file and illustrates how to
  89.       '** retrieve you prod. from lotus.ini
  90.       defdir$ = GetOWAPathfromLotusIni()
  91.       if defdir$ = "" goto rinotfound
  92.  
  93.       temp% = INSTR(1,LCASE$(defdir$),"owa.exe")
  94.       if temp% = 0 goto rinotfound
  95.  
  96.       ripath$ = MID$(defdir$,1,(temp%-1))
  97.       ripath$ = ripath$ + "owa.ri"
  98.    End If
  99.  
  100.    '' RETURNS TRUE IF SUCCESSFULLY FOUND RI FILE AND READ INFORMATION
  101.    '' This functions populates: SYM_NAME$, SYM_COMPANY$, SYM_SERIALNUM$
  102.    rc% = Lot_ReadDefaultsfromRi(ripath$) 
  103.  
  104. rinotfound:
  105.  
  106. END FUNCTION
  107.  
  108.  
  109. '*************************************************************************
  110.  
  111. PUBLIC FUNCTION InitOWA (prodno%, network$, direction$, basedir$) AS STRING
  112. DIM sym$, symname$, defdir$, position%, proddir$, iniPath$, rv%
  113.  
  114.    InitOWA = direction$
  115.    '' In the backwards case, keep backing up
  116.    If direction$ = gBACK Then
  117.       EXIT FUNCTION
  118.    End If
  119.  
  120.    '' Setup Default directory settings and the associated
  121.    '' text that the user will see
  122.  
  123.    sym$ = Reg_GetDirSymbolList(prodno%)
  124.    symname$ = sym$ + gNAME
  125.  
  126.    ''These two line register it with the toolkit.
  127.    SetListItem sym$, 1, "OWADIR"
  128.    SetListItem symname$, 1, "OWADIRNAME"
  129.  
  130.    '** NOTE The path in the string table is lower case and ends with a slash
  131.    SetSymbolValue "OWADIR", basedir$ + LdString(SID_OWA_DIR)
  132.  
  133.    '** This will be the name of the directory that shows up in captions in 
  134.    '** toolkit dialogs (Static text)
  135.    SetSymbolValue "OWADIRNAME", LdString(SID_OWA_DIRNAME)
  136.  
  137.    '' Special Cases for setting  these symbols
  138.    '' Strings should be resourced, but we didn't want to clutter
  139.    '' the OWA string table.
  140.    SELECT CASE network$
  141.  
  142.    CASE gSERVER$
  143.       SetSymbolValue "OWANAME", LdString(SID_OWA_SERVER_DIRNAME) 
  144.  
  145.    CASE gDISTRIBUTION$
  146.       SetSymbolValue "OWANAME", LdString(SID_OWA_DIST_DIRNAME)
  147.  
  148.    CASE gSTANDARD$
  149.       '' check if there is an existing product
  150.       defdir$ = GetOWAPathfromLotusIni()
  151.       IF defdir$ <> "" THEN
  152.          position%    = INSTR(1, defdir$, "owa.exe")
  153.          proddir$ = MID$(defdir$,1, position% - 1)
  154.       ELSE
  155.          proddir$ = basedir$ + LdString(SID_OWA_DIR)
  156.       END IF
  157.  
  158.       SetSymbolValue "OWADIR", proddir$
  159.  
  160.    CASE gNODE$
  161.       iniPath$ = GetWindowsDir() + "owa.ini"
  162.       IF DoesFileExist(iniPath$, femExists) THEN
  163.          proddir$ = GetIniKeyString(iniPath$,"DIRECTORIES","personal")
  164.          rv% = Lot_CleanPath(proddir$)
  165.          IF proddir$ = "" THEN
  166.             proddir$ = basedir$ + LdString(SID_OWA_DIR)
  167.          END IF
  168.       ELSE
  169.          proddir$ = basedir$ + LdString(SID_OWA_DIR)
  170.          
  171.       END IF
  172.  
  173.       SetSymbolValue "OWADIR", proddir$
  174.  
  175.    END SELECT
  176.  
  177. END FUNCTION
  178.  
  179.  
  180. '*************************************************************************
  181. PUBLIC FUNCTION PrevVersionsOWA (prodno%, network$, direction$) AS STRING
  182. DIM nProducts%, prodIndex%, i%
  183.  
  184.       nProducts% = Reg_GetNumberOfProducts()
  185.       FOR prodIndex% = 1 to nProducts%
  186.           If Reg_GetPreviousVersion(prodIndex%) <> "" Then
  187.              i% = DoMsgBox("Older Versions Found","", MB_OK)
  188.              GOTO PREVPRODFOUND
  189.           End If
  190.       NEXT
  191.  
  192. PREVPRODFOUND:
  193.  
  194. END FUNCTION
  195.  
  196.  
  197. '*************************************************************************
  198. PUBLIC FUNCTION PathChangeOWA (prodno%, network$, direction$, destdirsym$, mainprodsonly%) AS STRING
  199. DIM path$
  200.  
  201.    PathChangeOWA = gNEXT
  202.  
  203.    path$ = GetSymbolValue (destdirsym$)
  204.    '' The following is a psudocode example
  205.    ''''''rc$ = DetectVersionPriorToDarwin(path$)
  206.    ''''''If rc$ = "BEAGLE" then
  207.    ''''''   ShowPathError SID_BEAGLE_FOUND, SID_ERR_EXISTBEAGLE, path$
  208.    ''''''   PathChangeOWA = gBACK
  209.    ''''''end if   
  210.  
  211. END FUNCTION
  212.  
  213. '*************************************************************************
  214.  
  215. PUBLIC FUNCTION InitCopyListOWA (prodno%, network$, direction$) AS STRING
  216. DIM i%, sym$, chpt$, nextprod$, notused%, FeatureToFind$
  217.  
  218. ON Error STFQUIT GOTO COPYLISTERROR
  219.  
  220.    InitCopyListOWA = direction$
  221.    '' In the backwards case, keep backing up
  222.    If direction$ = gBACK Then
  223.       EXIT FUNCTION
  224.    End If
  225.  
  226.  
  227.    sym$ = Reg_GetProductAcronym(prodno%) + gTOP$
  228.    chpt$ = Lot_GetChapterFromKeyWord(sym$)
  229.    If chpt$ = "" Then
  230.       ERROR STFQUIT
  231.    End IF
  232.  
  233.    SELECT CASE Reg_GetProdSelectedInstallType(prodno%)
  234.  
  235.    CASE gCOMPLETE$
  236.       i% = F_COMPLETE
  237.    CASE gLAPTOP$
  238.       i% = F_LAPTOP
  239.    CASE gCUSTOM$
  240.       i% = F_CUSTOM
  241.    END SELECT
  242.  
  243.    Lot_InitializeCopyList chpt$, i%
  244.  
  245.    '** Make sure to turn off all sections not available on the server.
  246.    If network$ = gNODE Then
  247.       nextprod$ = Lot_GetNextSibling(chpt$, F_NOTHING)  
  248.       WHILE (chpt$ <> "" AND chpt$ <> nextprod$)
  249.          FeatureToFind$ = Lot_GetChapterValStr(chpt$, F_KEYWORD)
  250.          If Lot_IsTheFeatureInstalled(FeatureToFind$) = FALSE Then
  251.             notused% = Lot_SetChapterFilesInCopyListInOrOut (chpt$, 0)
  252.          End If
  253.  
  254.          chpt$ = Lot_GetNext() 
  255.       WEND
  256.    End If
  257.  
  258.    EXIT FUNCTION
  259.  
  260. COPYLISTERROR:
  261.    ErrorMsg 0, "Developers: You need to have licenser section with OWATOP in INF file"
  262.    ERROR STFQUIT
  263.  
  264. END FUNCTION
  265.  
  266. '*************************************************************************
  267.  
  268. PUBLIC FUNCTION UIOWA (prodno%, network$, direction$) AS STRING
  269. DIM notused%
  270.    UIOWA = direction$
  271.    '' In the backwards case, keep backing up
  272.    If direction$ = gBACK Then
  273.       EXIT FUNCTION
  274.    End If
  275.  
  276. VALUEERROR:
  277.  
  278.     SELECT CASE Reg_GetProdSelectedInstallType(prodno%)
  279.  
  280.     CASE gCOMPLETE$
  281.         notused% = RegisterCallback("OWA","OWACCMAILOPTCB")
  282.         UIOWA = PopupModalDlg (DBOWA_CCMAILOPTS1, DBOWA_CCMAILOPTS1)
  283.     CASE gLAPTOP$
  284.         notused% = RegisterCallback("OWA","OWANOTESOPTCB")
  285.         UIOWA = PopupModalDlg (DBOWA_NOTESOPTS1, DBOWA_NOTESOPTS1)
  286.     END SELECT
  287.  
  288. END FUNCTION
  289.  
  290. '*************************************************************************
  291.  
  292. PUBLIC FUNCTION PreCopyConfigOWA (prodno%, network$, direction$, lic%) AS STRING
  293. DIM Chapter$, notused%
  294.    PreCopyConfigOWA = gNEXT
  295.  
  296. ' Enable the selected network type.
  297.  
  298.     Chapter$ = Lot_GetChapterFromKeyword(GetSymbolValue("NETWORKTYPE"))
  299.     notused% = Lot_SetChapterFilesInCopyListInOrOut( Chapter$, 1 )
  300.  
  301. ' Enable the selected agent type.
  302.  
  303.     Chapter$ = Lot_GetChapterFromKeyword(GetSymbolValue("NOTESSERVER"))
  304.     notused% = Lot_SetChapterFilesInCopyListInOrOut( Chapter$, 1 )
  305.  
  306. END FUNCTION
  307.  
  308.  
  309. '*************************************************************************
  310.  
  311. PUBLIC FUNCTION AddTheBillBoardsOWA (prodno%, network$, direction$, nbytes&) AS STRING
  312.    AddTheBillBoardsOWA = direction$
  313.    '' In the backwards case, keep backing up
  314.    If direction$ = gBACK Then
  315.       EXIT FUNCTION
  316.    End If
  317.  
  318.    'psudo code follows as an example
  319.    ''''If network$ <> gNODE$ Then
  320.    ''''   SetListItem "IDC_BMP", 1, STR$(IDD_OWABILLBD1_BMP)
  321.    ''''   AddToBillboardList GetSymbolValue(SYM_CUIDLL$), DB_OWABILLBD1, "FNameOrgDlgProc", nbytes& 
  322.    ''''End If
  323.  
  324. END FUNCTION
  325.  
  326.  
  327. '*************************************************************************
  328.  
  329. PUBLIC FUNCTION PostCopyConfigOWA (prodno%, network$, direction$, programgroup$) AS STRING
  330. DIM ripath$, unused%
  331.    PostCopyConfigOWA = direction$
  332.    '' In the backwards case, keep backing up
  333.    If direction$ = gBACK Then
  334.       EXIT FUNCTION
  335.    End If
  336.  
  337.    If network$ <> gNODE$ Then 
  338.       SetSymbolValue SYM_CDDRIVE$, GetSymbolValue(SYM_INSTALL_SOURCE)
  339.    End If
  340.    
  341.    ''** WRITE TO RI FILE
  342.    ''*******************
  343.    ripath$ = GetSymbolValue("OWADIR") + "owa.ri"
  344.    If Lot_WriteToRiFile (ripath$) = FALSE Then
  345.       '*** SHOULD BE RESOURCED STRING
  346.       ErrorMsg SID_OWA,LdString(SID_OWA_ERR_RI) + ripath$
  347.    End If
  348.  
  349.    If network$ = gSERVER$ OR network$ = gDISTRIBUTION Then
  350.       GOTO SKIPCONFIG
  351.    End If
  352.  
  353.    
  354.    '** Write entries in win.ini
  355.    '** Write entries in owa.ini
  356.    '** Log the product into \windows\lotus.ini
  357.    '** Write the OLE registration
  358.  
  359.    '** Create work directory for standard and node
  360.    ''''' workdir$ = GetSymbolValue("123WORKDIR")
  361.    ''''' CreateDir workdir$, cmoNone
  362.    ''''' IF DoesDirExist(workdir$)=0 THEN
  363.    '''''    ShowPathError SID_ERR_CREATEDIR, 0, workdir$
  364.    ''''' END IF
  365.  
  366.     unused%=UpdateOrganizerIniFiles(prodno%)
  367.  
  368. SKIPCONFIG:
  369.  
  370. END FUNCTION
  371.  
  372. '*************************************************************************
  373.  
  374. PUBLIC FUNCTION AddIconsOWA (prodno%, network$, direction$, programgroup$) AS STRING
  375. DIM ripath$
  376.    AddIconsOWA = direction$
  377.    '' In the backwards case, keep backing up
  378.    If direction$ = gBACK Then
  379.       EXIT FUNCTION
  380.    End If
  381.  
  382.    '** Write entries in  Program Manager but skip add-in task Notes agent
  383.     If Lot_IsTheFeatureInstalled("OWAAGTNOTESADINWIN") = TRUE Then
  384.         GOTO SKIPCONFIG
  385.     End If
  386.     If Lot_IsTheFeatureInstalled("OWAAGTVIMNOTESWIN") <> FALSE Then
  387.  
  388.         SELECT CASE Reg_GetProdSelectedInstallType(prodno%)
  389.  
  390.         CASE gCOMPLETE$
  391.             CreateProgmanItem  programgroup$, LdString( SID_ORG_ICON_CCMAIL ) ,_
  392.                            Lot_WhereIsFeature(prodno%, "OWAAGTVIMNOTESWIN", "agentw.exe")+"agentw.exe",_
  393.                            "", cmoOverwrite
  394.         CASE gLAPTOP$
  395.             CreateProgmanItem  programgroup$, LdString( SID_ORG_ICON_NOTES ) ,_
  396.                            Lot_WhereIsFeature(prodno%, "OWAAGTVIMNOTESWIN", "agentw.exe")+"agentw.exe",_
  397.                            "", cmoOverwrite
  398.         END SELECT
  399.     End If
  400.  
  401.  
  402. SKIPCONFIG:
  403.  
  404. END FUNCTION
  405.  
  406. '*************************************************************************
  407.  
  408. PUBLIC FUNCTION PostSuccessRegOWA (prodno%, network$, direction$) AS STRING
  409.  
  410.    PostSuccessRegOWA = direction$
  411.    '' In the backwards case, keep backing up
  412.    If direction$ = gBACK Then
  413.       EXIT FUNCTION
  414.    End If
  415.  
  416. END FUNCTION
  417.  
  418.  
  419. '********************************
  420. '** Product Specific Functions **
  421. '********************************
  422. '*************************************************************************
  423.  
  424. FUNCTION GetOWAPathfromLotusIni() AS STRING
  425. DIM DestDir$, lotusinipath$, defdir$, temp%, ProdDir$, fullpath$, rv%
  426.  
  427.    DestDir$ = GetWindowsDir()
  428.    lotusinipath$ = DestDir$ +"lotus.ini"
  429.  
  430.    if DoesFileExist(lotusinipath$,femExists) then
  431.       defdir$ = GetIniKeyString(lotusinipath$,"Lotus Applications", "owa")
  432.       if defdir$ <> "" then
  433.          temp% = INSTR(1,LCASE$(defdir$),"owa.exe")
  434.          if temp% <> 0 then
  435.             ProdDir$ = MID$(defdir$,1,(temp%-1))
  436.             if ProdDir$ <> "" then
  437.                fullpath$ = ProdDir$ + "owa.exe"
  438.                if DoesFileExist(fullpath$, femExists) then
  439.                   rv% = Lot_CleanPath(fullpath$)
  440.                   GetOWAPathfromLotusIni = fullpath$
  441.                   EXIT FUNCTION
  442.                end if 
  443.             end if 
  444.          end if 
  445.       end if 
  446.    end if
  447.  
  448.    GetOWAPathfromLotusIni = ""
  449.  
  450. END FUNCTION
  451.  
  452. '*************************************************************************
  453.  
  454. FUNCTION GetNotesDir() AS STRING
  455. DIM DestDir$, lotusinipath$, defdir$, temp%, ProdDir$, fullpath$, rv%
  456.  
  457.    DestDir$ = GetWindowsDir()
  458.    lotusinipath$ = DestDir$ +"lotus.ini"
  459.  
  460.    fullpath$ = DestDir$+"notes.ini"
  461.  
  462.    if DoesFileExist(fullpath$,femExists) then
  463.       GetNotesDir = fullpath$
  464.       EXIT FUNCTION
  465.    end if
  466.  
  467.    if DoesFileExist(lotusinipath$,femExists) then
  468.       defdir$ = GetIniKeyString(lotusinipath$,"Lotus Applications", "Notes")
  469.       if defdir$ <> "" then
  470.          temp% = INSTR(1,LCASE$(defdir$),"notes.exe")
  471.          if temp% <> 0 then
  472.             ProdDir$ = MID$(defdir$,1,(temp%-1))
  473.             if ProdDir$ <> "" then
  474.                fullpath$ = ProdDir$ + "notes.ini"
  475.                if DoesFileExist(fullpath$, femExists) then
  476.                   GetNotesDir = fullpath$
  477.                   EXIT FUNCTION
  478.                end if 
  479.             end if 
  480.          end if 
  481.       end if 
  482.    end if
  483.  
  484.    GetNotesDir = fullpath$
  485.  
  486. END FUNCTION
  487.  
  488. '*************************************************************************
  489.  
  490. FUNCTION UpdateOrganizerIniFiles (prodno%) AS INTEGER
  491. DIM iniPath$, ini2Path$, Seperator$, StringBuf$, STRING_BUF_LEN%, notused%, BytesRead%, StringBuf2$, StringBuf3$
  492.     
  493.     iniPath$ = GetWindowsDir() + LdString( SID_ORG_ININAME )
  494.     ini2Path$ = Lot_WhereIsFeature(prodno%, "OWAINI2", LdString( SID_ORG_INI2NAME ))+LdString( SID_ORG_INI2NAME )
  495.  
  496.     SELECT CASE Reg_GetProdSelectedInstallType(prodno%)
  497.  
  498.     CASE gCOMPLETE$
  499.         CreateIniKeyValue iniPath$, "Agent", "UserName", GetSymbolValue("AGENTNAME"), cmoOverwrite
  500.         CreateIniKeyValue iniPath$, "Agent", "ContainerPath", GetSymbolValue("CONTAINERPATH"), cmoOverwrite
  501.         CreateIniKeyValue ini2Path$, "Scheduling", "ExpectedVIM", "CCMAIL", cmoOverwrite
  502.         notused% = WritePrivateProfileString("Agent", "AgentName", 0, "org2.ini")
  503.         notused% = WritePrivateProfileString("Agent", "CanSaveDrafts", 0, "org2.ini")
  504.         notused% = WritePrivateProfileString("Agent", "GatewaySession", 0, "org2.ini")
  505.         notused% = WritePrivateProfileString("Agent", "MailServer", 0, "org2.ini")
  506.         notused% = WritePrivateProfileString("Agent", "Mailfile", 0, "org2.ini")
  507.  
  508.     CASE gLAPTOP$
  509.         CreateIniKeyValue iniPath$, "Agent", "AgentName", GetSymbolValue("AGENTNAME"), cmoOverwrite
  510.         CreateIniKeyValue iniPath$, "Agent", "GatewaySession", GetSymbolValue("NOTESINSTALLTYPE"), cmoOverwrite
  511.         CreateIniKeyValue iniPath$, "Agent", "CanSaveDrafts", "0", cmoOverwrite
  512.         CreateIniKeyValue ini2Path$, "Scheduling", "ExpectedVIM", "NOTES", cmoOverwrite
  513.         notused% = WritePrivateProfileString("Agent", "UserName", 0, "org2.ini")
  514.         notused% = WritePrivateProfileString("Agent", "ContainerPath", 0, "org2.ini")
  515.         notused% = WritePrivateProfileString("Agent", "CCDownFrequency", 0, "org2.ini")
  516.  
  517.     END SELECT
  518.  
  519. '    CreateIniKeyValue iniPath$, "Agent", "Password", GetSymbolValue("AGENTPASSWORD"), cmoOverwrite
  520.     notused% = WritePrivateProfileString("Agent", "RetryFrequency", 0, "org2.ini")
  521.  
  522.     CreateIniKeyValue iniPath$, "Agent", "PollFrequency", GetSymbolValue("POLLFREQUENCY"), cmoOverwrite
  523.  
  524.     If GetSymbolValue("LOGFILEDIR") <> ""  Then
  525.     CreateIniKeyValue iniPath$, "Agent", "LogFilesDir", GetSymbolValue("LOGFILEDIR"), cmoOverwrite
  526.     Else
  527.     CreateIniKeyValue iniPath$, "Agent", "LogFilesDir", Lot_WhereIsFeature(prodno%, "OWAINI2", LdString( SID_ORG_INI2NAME )), cmoOverwrite
  528.     End If
  529.  
  530.     If Lot_IsTheFeatureInstalled("OWAAGTNOTESADINWIN") <> FALSE Then
  531.  
  532.         STRING_BUF_LEN = 256
  533.  
  534.         StringBuf$ = STRING$(STRING_BUF_LEN, 0)
  535.         BytesRead% = GetPrivateProfileString("intl", "sList", "", StringBuf$, STRING_BUF_LEN, "win.ini")
  536.  
  537.         StringBuf$=MID$(StringBuf$, 1, LEN(StringBuf$)-(STRING_BUF_LEN-BytesRead%))
  538.         Seperator$ = StringBuf$
  539.  
  540.         iniPath$ = GetNotesDir()
  541.  
  542.         StringBuf$ = STRING$(STRING_BUF_LEN, 0)
  543.         BytesRead%=GetPrivateProfileString("notes", "ServerTasks", "", StringBuf$, STRING_BUF_LEN, iniPath$)
  544.  
  545.         StringBuf$=MID$(StringBuf$, 1, LEN(StringBuf$)-(STRING_BUF_LEN-BytesRead%))
  546.  
  547.         If BytesRead% = 0 Then
  548.             CreateIniKeyValue iniPath$, "Notes", "ServerTasks", Lot_WhereIsFeature(prodno%, "OWAAGTNOTESADINWIN", "_orgagnt.exe")+"_orgagnt.exe", cmoOverwrite
  549.         else
  550. '            StringBuf2$ = GetIniKeyString(iniPath$,"Notes", "ServerTasks")
  551. '            StringBuf3$ = Lot_WhereIsFeature(prodno%, "OWAAGTNOTESADINWIN", "_orgagnt.exe")+"_orgagnt.exe"
  552.             If INSTR (1, GetIniKeyString(iniPath$,"Notes", "ServerTasks"), Lot_WhereIsFeature(prodno%, "OWAAGTNOTESADINWIN", "_orgagnt.exe")+"_orgagnt.exe", 1) = 0 Then
  553. '                CreateIniKeyValue iniPath$, "Notes", "ServerTasks", StringBuf$+Seperator$+Lot_WhereIsFeature(prodno%, "OWAAGTNOTESADINWIN", "_orgagnt.exe")+"_orgagnt.exe", cmoOverwrite
  554.                 CreateIniKeyValue iniPath$, "Notes", "ServerTasks", StringBuf$+","+Lot_WhereIsFeature(prodno%, "OWAAGTNOTESADINWIN", "_orgagnt.exe")+"_orgagnt.exe", cmoOverwrite
  555.             End If
  556.         End If
  557.  
  558.     End If
  559.  
  560. END FUNCTION
  561.  
  562. '*************************************************************************
  563. '** OWAOPT1CB
  564. '** Purpose:    This is dialog callback for organizer agent screen 1
  565. '*************************************************************************
  566. SUB OWACCMAILOPTCB (hDlg%, CtrlId%, Classes$, Inst%)
  567. DIM count%, notused%, page1%, page2%
  568.  
  569.     SELECT CASE Classes$
  570.  
  571.     CASE "__DLGINIT"
  572.  
  573.         FOR count% = 1 to SID_ORG_NUMNETWORKTYPES
  574.             SetListItem "IDC_COMBO1", count%, LdString( SID_ORG_NETWORK_TYPE0 + count% )
  575.         NEXT
  576.  
  577.         AddListItem SYM_UPDATELIST$, "IDC_COMBO1"
  578.  
  579.         SetSymbolValue "NETWORKTYPE", LdString( SID_ORG_NETWORK_FILE0 + 1 )
  580.  
  581.         SetSymbolValue "NOTESSERVER", "OWAAGTVIMNOTESWIN"
  582.  
  583.         SetListItem "IDC_EDIT", 2, "60"
  584.         SetListItem "IDC_EDIT", 4, Lot_TrimEndSlash(GetSymbolValue("OWADIR"))
  585.         AddListItem SYM_UPDATELIST$, "IDC_EDIT2"
  586.         AddListItem SYM_UPDATELIST$, "IDC_EDIT4"
  587.  
  588.    CASE "IDC_COMBO1"
  589.         SetSymbolValue "NETWORKTYPE", LdString( SID_ORG_NETWORK_FILE0 + Inst% )
  590.  
  591.  
  592.    CASE "IDC_OK"
  593.         SetSymbolValue "AGENTNAME", GetListItem("IDC_EDIT", 1)
  594.         SetSymbolValue "AGENTPASSWORD", ""
  595.         SetSymbolValue "POLLFREQUENCY", STR$(VAL(GetListItem("IDC_EDIT", 2)))
  596.         If IsNumeric(GetListItem("IDC_EDIT", 2)) Then
  597.             If VAL(GetListItem("IDC_EDIT", 2)) > 30000 Then
  598.                 ErrorMsgNoDlgExit 0, LdString( SID_ORG_BIGNUMBER )
  599.             End If
  600.             If VAL(GetListItem("IDC_EDIT", 2)) < 0 Then
  601.                 ErrorMsgNoDlgExit 0, LdString( SID_ORG_SMALLNUMBER )
  602.             End If
  603.         Else
  604.                 ErrorMsgNoDlgExit 0, LdString( SID_ORG_INVALIDNUMBER )
  605.         End If
  606.         SetSymbolValue "CONTAINERPATH", GetListItem("IDC_EDIT", 3)
  607.         SetSymbolValue "LOGFILEDIR", GetListItem("IDC_EDIT", 4)
  608.  
  609.    CASE "IDC_BACK"
  610.    CASE "IDC_HELP"
  611.    CASE "IDC_EXIT"
  612.  
  613.    END SELECT
  614.  
  615. END SUB
  616.  
  617.  
  618. '*************************************************************************
  619. '** OWAOPT1CB
  620. '** Purpose:    This is dialog callback for organizer agent screen 1
  621. '*************************************************************************
  622. SUB OWANOTESOPTCB (hDlg%, CtrlId%, Classes$, Inst%)
  623. DIM count%, notused%, page1%, page2%
  624.  
  625.     SELECT CASE Classes$
  626.  
  627.     CASE "__DLGINIT"
  628.  
  629.         FOR count% = 1 to SID_ORG_NUMNETWORKTYPES
  630.             SetListItem "IDC_COMBO1", count%, LdString( SID_ORG_NETWORK_TYPE0 + count% )
  631.         NEXT
  632.  
  633.         AddListItem SYM_UPDATELIST$, "IDC_COMBO1"
  634.  
  635.         SetSymbolValue "NETWORKTYPE", LdString( SID_ORG_NETWORK_FILE0 + 1 )
  636.  
  637.         SetListItem "IDC_B", 1, "T"
  638.         SetListItem "IDC_B", 2, "F"
  639.         SetListItem "IDC_EDIT", 2, "60"
  640.         SetListItem "IDC_EDIT", 3, Lot_TrimEndSlash(GetSymbolValue("OWADIR"))
  641.         SetSymbolValue "NOTESSERVER", "OWAAGTVIMNOTESWIN"
  642.         AddListItem SYM_UPDATELIST$, "IDC_B1"
  643.         AddListItem SYM_UPDATELIST$, "IDC_B2"
  644.         AddListItem SYM_UPDATELIST$, "IDC_EDIT2"
  645.         AddListItem SYM_UPDATELIST$, "IDC_EDIT3"
  646.  
  647.    CASE "IDC_COMBO1"
  648.         SetSymbolValue "NETWORKTYPE", LdString( SID_ORG_NETWORK_FILE0 + Inst% )
  649.  
  650.    CASE "IDC_B"
  651.         IF inst% = 1 Then
  652.             SetListItem "IDC_B", 1, "T"
  653.             SetListItem "IDC_B", 2, "F"
  654.         else
  655.             SetListItem "IDC_B", 2, "T"
  656.             SetListItem "IDC_B", 1, "F"
  657.         End If
  658.  
  659.    CASE "IDC_EDIT"
  660.         IF inst% = 2 Then
  661.         End If
  662.  
  663.    CASE "IDC_OK"
  664.         SetSymbolValue "AGENTNAME", GetListItem("IDC_EDIT", 1)
  665.         SetSymbolValue "AGENTPASSWORD", ""
  666.         SetSymbolValue "POLLFREQUENCY", STR$(VAL(GetListItem("IDC_EDIT", 2)))
  667.         If IsNumeric(GetListItem("IDC_EDIT", 2)) Then
  668.             If VAL(GetListItem("IDC_EDIT", 2)) > 30000 Then
  669.                 ErrorMsgNoDlgExit 0, LdString( SID_ORG_BIGNUMBER )
  670.             End If
  671.             If VAL(GetListItem("IDC_EDIT", 2)) < 0 Then
  672.                 ErrorMsgNoDlgExit 0, LdString( SID_ORG_SMALLNUMBER )
  673.             End If
  674.         Else
  675.                 ErrorMsgNoDlgExit 0, LdString( SID_ORG_INVALIDNUMBER )
  676.         End If
  677.  
  678.         SetSymbolValue "LOGFILEDIR", GetListItem("IDC_EDIT", 3)
  679.         SetSymbolValue "CONTAINERPATH", ""
  680.  
  681.         if GetListItem("IDC_B", 1) = "T" Then
  682.             SetSymbolValue "NOTESSERVER", "OWAAGTVIMNOTESWIN"
  683.             SetSymbolValue "NOTESINSTALLTYPE", "0"
  684.         Else                               
  685.             SetSymbolValue "NOTESSERVER", "OWAAGTNOTESADINWIN"
  686.             SetSymbolValue "NOTESINSTALLTYPE", "1"
  687.         End If
  688.  
  689.    CASE "IDC_BACK"
  690.    CASE "IDC_HELP"
  691.    CASE "IDC_EXIT"
  692.  
  693.    END SELECT
  694.  
  695. END SUB
  696.