home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2006 December / PCWDEC06.iso / Shared / regwiz.cab / RegWizUI.dll / HTML / UTILS.VBS < prev    next >
Encoding:
Text File  |  2004-09-08  |  19.3 KB  |  811 lines

  1. Option Explicit
  2.  
  3. Function CloseWindow()
  4. '{
  5.     If IsObject( gobjExternal ) Then
  6.     '{
  7.         gobjExternal.Close
  8.         Set gobjExternal = Nothing
  9.     '}
  10.     Else
  11.     '{
  12.         window.close
  13.     '}
  14.     End If
  15. '}
  16. End Function
  17.  
  18. Function SetWizardStatus( nStatus )
  19. '{
  20.     If (Not gobjExternal Is Nothing) And IsObject(gobjExternal) Then
  21.     '{
  22.         gobjExternal.ReturnValue = nStatus
  23.     '}
  24.     End If
  25. '}
  26. End Function
  27.  
  28. Function SetExternalObject( ByRef objExternal )
  29. '{
  30.     Dim   nLastError
  31.  
  32.     On Error Resume Next  ' This is local for this function.
  33.  
  34.     Set objExternal = nothing
  35.     SetExternalObject = False
  36.     
  37.     If IsObject( window.external ) And not window.external is nothing Then
  38.     '{
  39.         Set objExternal = window.external
  40.         
  41.         Err.Clear
  42.         nLastError = Err.Number
  43.         
  44.         objExternal.ReturnValue = CLng(-1)
  45.         If Err.Number <> nLastError Then
  46.         '{
  47.             Set objExternal = nothing
  48.             Exit Function
  49.         '}
  50.         End If
  51.         SetExternalObject = True
  52.     '}
  53.     End If
  54. '}
  55. End Function
  56.  
  57. Function GetProgramFilesDir()
  58. '{
  59.     Dim sProgramFilesDir
  60.  
  61.     sProgramFilesDir = gobjReg.RegQueryValue( PROGRAMFILES_REGKEY, PROGRAMFILES_VALNAME )
  62.     If "" = sProgramFilesDir Then
  63.     '{
  64.         sProgramFilesDir = gobjOS.WindowsDirectory
  65.         sProgramFilesDir = Left( sProgramFilesDir, InStr( sProgramFilesDir, ":" ) ) & PROGRAMFILES_DIR_NAME
  66.     '}
  67.     End If
  68.     sProgramFilesDir = gobjFS.GetShortPathName (sProgramFilesDir)
  69.  
  70.     GetProgramFilesDir = sProgramFilesDir
  71. '}
  72. End Function
  73.  
  74. Function GetMcAfeeComDir()
  75. '{
  76.     Dim sMcAfeeComDir
  77.  
  78.     sMcAfeeComDir = GetProgramFilesDir()
  79.     sMcAfeeComDir = sMcAfeeComDir & MCAFEECOM_WSLASH
  80.     sMcAfeeComDir = gobjFS.GetShortPathName (sMcAfeeComDir)
  81.  
  82.     GetMcAfeeComDir = sMcAfeeComDir
  83. '}
  84. End Function
  85.  
  86. Function GetAgentDir()
  87. '{
  88.     Dim sAgentDir
  89.  
  90.     sAgentDir = gobjOS.GetObjectModuleDir(CLSID_MCAgent)
  91.  
  92.     If "" = sAgentDir Then
  93.     '{
  94.         sAgentDir = GetProgramFilesDir()
  95.         sAgentDir = sAgentDir & AGENT_WSLASH
  96.     '}
  97.     End If
  98.     sAgentDir = gobjFS.GetShortPathName (sAgentDir)
  99.  
  100.     GetAgentDir = sAgentDir
  101. '}
  102. End Function
  103.  
  104. Function GetSharedFolderDir()
  105. '{
  106.     Dim sSharedDir
  107.  
  108.     sSharedDir = GetMcAfeeComDir()
  109.     sSharedDir = sSharedDir & SHARED_WSLASH
  110.     sSharedDir = gobjFS.GetShortPathName (sSharedDir)
  111.  
  112.     GetSharedFolderDir = sSharedDir
  113. '}
  114. End Function
  115.  
  116. Function GetAgentDataDir()
  117. '{
  118.     Dim sAgentDataDir, sOSName, eOSType
  119.  
  120.     eOSType = gobjOS.GetOSInfo(sOSName)
  121.  
  122.     If MCINST_OS_WIN_XP <> eOSType Then
  123.     '{
  124.         sAgentDataDir = GetAgentDir() & DATA_NEWS_DIR
  125.     '}
  126.     Else
  127.     '{
  128.         Call gobjShell.GetSpecialFolderPath( ID_COMMON_APP_DATA, sAgentDataDir)
  129.         sAgentDataDir = sAgentDataDir & COMMON_APP_DATA_DIR
  130.     '}
  131.     End If
  132.     sAgentDataDir = gobjFS.GetShortPathName (sAgentDataDir)
  133.  
  134.     GetAgentDataDir = sAgentDataDir
  135. '}
  136. End Function
  137.  
  138. Function GetRegWizDir()
  139. '{
  140.     Dim sRegWizDir
  141.  
  142.     sRegWizDir = gobjOS.GetObjectModuleDir (CLSID_MCREGWIZ_EXE)
  143.  
  144.     If "" = sRegWizDir Then
  145.     '{
  146.         sRegWizDir = GetAgentDir()
  147.         sRegWizDir = sRegWizDir & REGWIZ_DIR_NAME_WSLASH
  148.     '}
  149.     End If
  150.     sRegWizDir = gobjFS.GetShortPathName (sRegWizDir)
  151.  
  152.     GetRegWizDir = sRegWizDir
  153. '}
  154. End Function
  155.  
  156. Function GetRegWizDataDir()
  157. '{
  158.     Dim sRegWizDataDir
  159.  
  160.     sRegWizDataDir = GetAgentDataDir()
  161.     sRegWizDataDir = sRegWizDataDir & REGWIZ_DIR_NAME_WSLASH
  162.     sRegWizDataDir = gobjFS.GetShortPathName (sRegWizDataDir)
  163.  
  164.     GetRegWizDataDir = sRegWizDataDir
  165. '}
  166. End Function
  167.  
  168. Function GetRegWizAppDir()
  169. '{
  170.     Dim sRegWizAppDir
  171.  
  172.     sRegWizAppDir = GetRegWizDataDir()
  173.     sRegWizAppDir = sRegWizAppDir & REGWIZ_APP_DIR_NAME_WSLASH
  174.     sRegWizAppDir = gobjFS.GetShortPathName (sRegWizAppDir)
  175.  
  176.     GetRegWizAppDir = sRegWizAppDir
  177. '}
  178. End Function
  179.  
  180. Function FormatNextRun( nDays )
  181. '{
  182.     Dim sDate, sYear, sMonth, sDay, sHour, sMin, sSeconds, CurDateTime
  183.  
  184.     CurDateTime = DateAdd ( "d", nDays, Now )
  185.  
  186.     sYear = Trim(CStr(Year(CurDateTime)))
  187.  
  188.     sMonth = Trim(CStr(Month(CurDateTime)))
  189.     If Len(sMonth) <> 2 Then sMonth = "0" & sMonth
  190.  
  191.     sDay = Trim(CStr(Day(CurDateTime)))
  192.     If Len(sDay) <> 2 Then sDay = "0" & sDay
  193.  
  194.     sHour = Trim(CStr(Hour(CurDateTime)))
  195.     If Len(sHour) <> 2 Then sHour = "0" & sHour
  196.  
  197.     sMin = Trim(CStr(Minute(CurDateTime)))
  198.     If Len(sMin) <> 2 Then sMin = "0" & sMin
  199.     
  200.     sSeconds = Trim(CStr(Second(CurDateTime)))
  201.     If Len(sSeconds) <> 2 Then sSeconds = "0" & sSeconds
  202.  
  203.     sDate = sYear & ":" & sMonth & ":" & sDay & ":" & sHour & ":" & sMin & ":" & sSeconds
  204.  
  205.     FormatNextRun = sDate
  206. '}
  207. End Function
  208.  
  209. Function TestValues ( strPropName )
  210. '{
  211.     Dim objRequest, objProfile, objApplication, objWParam, objApps, objCData
  212.     Dim AppsItems, cdk, cd, sVal
  213.     Dim nCustDataCtr, nCount, nCtr
  214.  
  215.     Set objRequest = gobjExternal.GetParam ( strPropName )
  216.  
  217.     Set objProfile = Nothing
  218.     Set objWParam  = Nothing 
  219.     If PROP_REGREQUEST = strPropName Then
  220.         Set objProfile = objRequest.Item (PROP_PROFILE)
  221.         Set objWParam = objRequest.Item (PROP_WIZARDPARAM)
  222.     End If
  223.  
  224.     Set objApplication = objRequest.Item (PROP_APPLICATION)
  225.  
  226.     sVal = "Version = " & objRequest.Item (PROP_VERSION) & vbCrLf
  227.     sVal = sVal & "Account ID = " & objRequest.Item (PROP_ACCOUNTID) & vbCrLf & vbCrLf
  228.  
  229.     If objProfile Is Nothing Then
  230.         sVal = sVal & "Profile is nothing" & vbCrLf & vbCrLf
  231.     Else
  232.         sVal = sVal & PROP_FIRSTNAME & " = " & objProfile.Item (PROP_FIRSTNAME)  & vbCrLf
  233.         sVal = sVal & PROP_LASTNAME & " = " & objProfile.Item (PROP_LASTNAME)  & vbCrLf
  234.         sVal = sVal & PROP_EMAILADDRESS & " = " & objProfile.Item (PROP_EMAILADDRESS)  & vbCrLf
  235.         sVal = sVal & PROP_PASSWORD & " = " & objProfile.Item (PROP_PASSWORD)  & vbCrLf & vbCrLf
  236.     End If
  237.  
  238.     If objWParam Is Nothing Then
  239.         sVal = sVal & "Wizard Param is nothing" & vbCrLf & vbCrLf
  240.     Else
  241.         sVal = sVal & PROP_LANGUAGE & " = " & objWParam.Item (PROP_LANGUAGE)  & vbCrLf
  242.         sVal = sVal & PROP_COMPLETION_URL & " = " & objWParam.Item (PROP_COMPLETION_URL)  & vbCrLf
  243.         sVal = sVal & PROP_CUSTOMID & " = " & objWParam.Item (PROP_CUSTOMID)  & vbCrLf & vbCrLf
  244.     End If
  245.  
  246.     If objApplication Is Nothing Then
  247.         sVal = sVal & "No Application has to be registered or activated" &vbCrLf & vbCrLf
  248.     Else
  249.         nCount = objApplication.Count
  250.         AppsItems = objApplication.Items
  251.  
  252.         For nCtr = 0 To nCount-1
  253.             Set objApps = AppsItems(nCtr)
  254.  
  255.             sVal = sVal & " Application Object # " & (nCtr+1) & " # " & objApps.Item (PROP_APPCODE) & vbCrLf
  256.             sVal = sVal & "---------------------------------------" & vbCrLf
  257.             
  258.             sVal = sVal & PROP_APPCAT & " = " & objApps.Item (PROP_APPCAT)  & vbCrLf
  259.             sVal = sVal & PROP_APPCODE & " = " & objApps.Item (PROP_APPCODE)  & vbCrLf
  260.             sVal = sVal & PROP_ACCOUNTID & " = " & objApps.Item (PROP_ACCOUNTID)  & vbCrLf
  261.             sVal = sVal & PROP_AFFID & " = " & objApps.Item (PROP_AFFID)  & vbCrLf
  262.             sVal = sVal & PROP_COUNTRY & " = " & objApps.Item (PROP_COUNTRY)  & vbCrLf
  263.             sVal = sVal & PROP_LANGCODE & " = " & objApps.Item (PROP_LANGCODE)  & vbCrLf
  264.             sVal = sVal & PROP_SYNCURL & " = " & objApps.Item (PROP_SYNCURL)  & vbCrLf
  265.             sVal = sVal & PROP_BACKEND & " = " & objApps.Item (PROP_BACKEND)  & vbCrLf        
  266.             sVal = sVal & PROP_EXPIRYDATE & " = " & objApps.Item (PROP_EXPIRYDATE)  & vbCrLf
  267.             sVal = sVal & PROP_WEBSITE & " = " & objApps.Item (PROP_WEBSITE)  & vbCrLf
  268.             sVal = sVal & PROP_SUBTYPE & " = " & objApps.Item (PROP_SUBTYPE)  & vbCrLf
  269.             sVal = sVal & PROP_SUBSTATUS & " = " & objApps.Item (PROP_SUBSTATUS)  & vbCrLf & vbCrLf
  270.  
  271.             If PROP_REGREQUEST = strPropName Then
  272.             '{
  273.                 Set objCData = objApps.Item (PROP_CUSTOMDATA)
  274.  
  275.                 sVal = sVal & "Application's Custom Data" & vbCrLf
  276.                 sVal = sVal & "---------------------------------------" & vbCrLf
  277.                 cd = objCData.Items
  278.                 cdk = objCData.Keys
  279.  
  280.                 For nCustDataCtr = 0 To objCData.Count-1
  281.                     sVal = sVal & cdk(nCustDataCtr) & " = " & cd(nCustDataCtr) & vbCrLf
  282.                 Next
  283.  
  284.             '}
  285.             End If
  286.  
  287.             Set objApps = Nothing
  288.         Next
  289.     End If
  290.  
  291.     Msgbox sVal, ,strPropName
  292. '}
  293. End Function
  294.  
  295. Function SetTestResponse ()
  296. '{
  297.     Dim objRequest, objApplication, objWParam, objApps, AppsItems
  298.     Dim objResponse, objRespApps, objRespApplication
  299.     Dim nCustDataCtr, nCount, nCtr
  300.     Dim sTemp, sVal, sMon, sdate, sDay
  301.  
  302.     Set objRequest = gobjExternal.GetParam ( PROP_REGREQUEST )
  303.     Set objResponse = CreateObject ( "Scripting.Dictionary" )
  304.  
  305.     Set objApplication = objRequest.Item (PROP_APPLICATION)
  306.  
  307.     sTemp = objRequest.Item (PROP_VERSION)
  308.  
  309.     '// PROP # 1. Version
  310.     objResponse.Add PROP_VERSION, sTemp 
  311.  
  312.     Set objRespApplication = Nothing    
  313.  
  314.     '// Result    
  315.     objResponse.Add PROP_RESULT, 0
  316.  
  317.     If Not objApplication Is Nothing Then
  318.         nCount = objApplication.Count
  319.         AppsItems = objApplication.Items
  320.  
  321.         Set objRespApplication = CreateObject ( "Scripting.Dictionary" )
  322.  
  323.         For nCtr = 0 To nCount-1
  324.             Set objApps = AppsItems(nCtr)
  325.             Set objRespApps = CreateObject ( "Scripting.Dictionary" )
  326.  
  327.             sTemp = objApps.Item (PROP_APPCAT)            
  328.             sVal = PROP_APPCAT & " = " & sTemp  & vbCrLf
  329.             objRespApps.Add PROP_APPCAT, sTemp
  330.  
  331.             sTemp = objApps.Item (PROP_APPCODE)
  332.             sVal = sVal & PROP_APPCODE & " = " & sTemp  & vbCrLf
  333.             objRespApps.Add PROP_APPCODE, sTemp
  334.  
  335.             sTemp = "123456"
  336.             sVal = sVal & PROP_ACCOUNTID & " = " & sTemp  & vbCrLf
  337.             objRespApps.Add PROP_ACCOUNTID, sTemp
  338.  
  339.             sTemp = objApps.Item (PROP_AFFID)
  340.             sVal = sVal & PROP_AFFID & " = " & sTemp & vbCrLf
  341.             objRespApps.Add PROP_AFFID, sTemp
  342.  
  343.             sTemp = objApps.Item (PROP_COUNTRY)
  344.             sVal = sVal & PROP_COUNTRY & " = " & sTemp  & vbCrLf
  345.             objRespApps.Add PROP_COUNTRY, sTemp
  346.  
  347.             sTemp = objApps.Item (PROP_LANGCODE)
  348.             sVal = sVal & PROP_LANGCODE & " = " & sTemp  & vbCrLf
  349.             objRespApps.Add PROP_LANGCODE, sTemp
  350.  
  351.             sTemp = "msc_sync_url.asp"
  352.             sVal = sVal & PROP_SYNCURL & " = " & sTemp  & vbCrLf
  353.             objRespApps.Add PROP_SYNCURL, sTemp
  354.  
  355.             sTemp = gobjExternal.GetParam ( PROP_BACKEND )
  356.             sVal = sVal & PROP_BACKEND & " = " & sTemp  & vbCrLf        
  357.             objRespApps.Add PROP_BACKEND, sTemp
  358.  
  359.             sTemp =  DateAdd ( "d", 90, Date )
  360.             sVal = sVal & PROP_EXPIRYDATE & " = " & sTemp  & vbCrLf
  361.             objRespApps.Add PROP_EXPIRYDATE, sTemp
  362.  
  363.             sTemp = "us.mcafee.com"
  364.             sVal = sVal & PROP_WEBSITE & " = " & sTemp  & vbCrLf
  365.             objRespApps.Add PROP_WEBSITE, sTemp
  366.             
  367.             sTemp = 1
  368.             sVal = sVal & PROP_SUBTYPE & " = " & sTemp  & vbCrLf
  369.             objRespApps.Add PROP_SUBTYPE, sTemp
  370.  
  371.             sTemp = 1
  372.             sVal = sVal & PROP_SUBSTATUS & " = " & sTemp  & vbCrLf
  373.             objRespApps.Add PROP_SUBSTATUS, sTemp
  374.  
  375.             objRespApplication.Add objApps.Item (PROP_APPCODE), objRespApps
  376.  
  377.             Set objApps = Nothing
  378.             Set objRespApps = Nothing
  379.         Next
  380.     End If
  381.  
  382.     '// PROP # 3. Application
  383.     objResponse.Add PROP_APPLICATION, objRespApplication
  384.  
  385.     '// PROP # 4. Completed Url Message
  386.     objResponse.Add PROP_COMPLETED_MSG, STR_COMPLETED_MSG
  387.  
  388.     Call gobjExternal.SetParam ( PROP_REGRESPONSE, objResponse )
  389.  
  390. '}
  391. End Function
  392.  
  393. Function PerformPostReg ( sIni, sWebSite )
  394. '{
  395.     Dim sVal, sKey, sName, sRegVal, sValue, sRegArgsSplit
  396.     Dim sValSplit, sRegValArgs, sTemp, sRegRelativeUrl
  397.     Dim nPos, nCount, nIdx
  398.     Dim bOldObfuscate
  399.  
  400.     sVal = gobjReg.IniGetMultipleValues( sIni, SECTION_POSTREG )
  401.  
  402.     bOldObfuscate = gobjReg.Obfuscate
  403.  
  404.     gobjReg.AllowEveryone = True
  405.     gobjReg.Obfuscate = False
  406.  
  407.     For nIdx = LBound(sVal) To UBound(sVal)
  408.     '{
  409.         sValue = LCase(sVal(nIdx, 1))
  410.         sName = LCase(sVal(nIdx, 0))
  411.  
  412.         If InStr (sName, "$reg$") > 0 Then
  413.         '{
  414.             sValSplit = split (sValue, ",")
  415.             
  416.             sName = Trim(sValSplit(1))
  417.             sKey = Trim(sValSplit(0))
  418.  
  419.             sRegVal = LCase(Trim(gobjReg.RegQueryValue ( sKey, sName )))
  420.  
  421.             If "" <> sRegVal Then
  422.             '{
  423.                 nPos = InStr (sRegVal, "?")
  424.                 If nPos > 0 Then
  425.                     sRegValArgs = Trim(Mid (sRegVal, nPos+1))
  426.                     sRegVal = Left ( sRegVal, nPos-1)
  427.                 End If
  428.  
  429.                 sRegRelativeUrl = ""
  430.                 nPos = InStr (sRegVal, "//")
  431.  
  432.                 If 0 < nPos Then sRegRelativeUrl = Mid (sRegVal, nPos+2)
  433.  
  434.                 If "" <> sRegRelativeUrl Then
  435.                 '{
  436.                     nPos = InStr (sRegRelativeUrl, "/")
  437.                     If 0 < nPos Then sRegRelativeUrl = Mid (sRegRelativeUrl, nPos)
  438.                 '}
  439.                 End If
  440.  
  441.                 If "" = sRegRelativeUrl Then sRegRelativeUrl = sRegVal
  442.                 
  443.                 sTemp = "http://" & sWebSite & sRegRelativeUrl
  444.                 sValue = ""
  445.  
  446.                 If "" <> sRegValArgs Then
  447.                 '{
  448.                     sRegArgsSplit = split (sRegValArgs, "&")
  449.  
  450.             
  451.                     For nCount = 0 To UBound(sRegArgsSplit)
  452.                     '{
  453.                         nPos = InStr (sRegArgsSplit(nCount),LCase(EXCLUSION_LIST_PARAMS))
  454.                         If nPos <= 0 Then
  455.                         '{
  456.                             sValue = sValue & sRegArgsSplit(nCount) & "&"
  457.                         '}
  458.                         End If
  459.                     '}
  460.                     Next
  461.                 '}
  462.                 End If
  463.  
  464.                 If "" <> sValue Then
  465.                 '{
  466.                     If Right (sValue, 1) = "&" Then sValue = Left (sValue, Len(sValue)-1)
  467.     
  468.                     sValue = sTemp & "?" & sValue
  469.                 '}
  470.                 Else
  471.                 '{
  472.                     sValue = sTemp
  473.                 '}
  474.                 End If
  475.  
  476.                 Call gobjReg.RegSetValue ( sKey, sName, CStr(sValue) )
  477.             '}
  478.             End If
  479.         '}
  480.         End If
  481.     '}
  482.     Next
  483.  
  484.     gobjReg.Obfuscate = bOldObfuscate
  485. '}
  486. End Function
  487.  
  488. Function GetObjectPath( sCLSID, sRelativeFileDir, sFileName )
  489. '{
  490.     Dim   sPath
  491.  
  492.     sPath = gobjOS.GetObjectModuleDir( sCLSID )
  493.     If "" = sPath Then
  494.     '{
  495.         sPath = GetProgramFilesDir() & sRelativeFileDir
  496.         If False = gobjFS.IsFile( sPath & sFileName ) Then
  497.         '{
  498.             GetObjectPath = ""
  499.             Exit Function
  500.         '}
  501.         End If
  502.     '}
  503.     End If
  504.  
  505.     GetObjectPath = gobjFS.GetShortPathName( sPath )
  506. '}
  507. End Function
  508.  
  509. Function LaunchWOW ( strWowExe, strArgs )
  510. '{
  511.     Dim bShowWOW
  512.  
  513.     bShowWOW = gobjExternal.GetParam ( PROP_SHOW_WOW )
  514.  
  515.     If True = bShowWOW Then
  516.     '{
  517.         Call LaunchMSCExe (strWowExe, strArgs)
  518.         Call gobjExternal.SetParam ( PROP_SHOW_WOW, False )
  519.     '}
  520.     End If 
  521. '}
  522. End Function
  523.  
  524. Function ShowPostWOW()
  525. '{
  526.     Dim bShowWOW
  527.  
  528. '    bShowWOW = gobjExternal.GetParam ( PROP_SHOW_WOW )
  529.  
  530.     LogDetails ( "Close main window" )
  531.     Call CloseWindow()
  532.  
  533. '}
  534. End Function
  535.  
  536. Function LaunchMSCExe( strExeName, strArgs )
  537. '{
  538.     Dim strAgentDir
  539.  
  540.     If IsObject(gobjOS) Then
  541.     '{
  542.         strAgentDir = gobjOS.GetObjectModuleDir( CLSID_MCAgent )
  543.  
  544.         If "" <> strAgentDir Then
  545.         '{
  546.             Call gobjOS.RunProgram( CStr(strAgentDir & "\" & strExeName), CStr(strArgs) )
  547.         '}
  548.         End If
  549.     '}
  550.     End If
  551. '}
  552. End Function
  553.  
  554. Function GetResponseSubscriptionInfo ( objApp, objSubInfo )
  555. '{
  556.     Dim sTemp
  557.  
  558.     GetResponseSubscriptionInfo = REGWIZ_SUCCESS
  559.  
  560.     If IsObject ( objSubInfo ) Then
  561.     '{
  562.         objSubInfo.AppId     = objApp.Item (PROP_APPCAT)
  563.         objSubInfo.AppCode     = objApp.Item (PROP_APPCODE)
  564.  
  565.         sTemp = objApp.Item (PROP_ACCOUNTID)
  566.         If "" <> sTemp Then objSubInfo.AccountId = sTemp
  567.  
  568.         objSubInfo.ExpiryDate = objApp.Item (PROP_EXPIRYDATE)
  569.  
  570.         sTemp = objApp.Item (PROP_SYNCURL)
  571.         If "" <> sTemp Then objSubInfo.SyncUrl = sTemp
  572.  
  573.         sTemp = objApp.Item (PROP_WEBSITE)
  574.         If "" <> sTemp Then objSubInfo.WebSite = sTemp
  575.  
  576.         sTemp = objApp.Item (PROP_BACKEND)
  577.         If "" <> sTemp Then objSubInfo.Backend = sTemp
  578.  
  579.         sTemp = objApp.Item (PROP_AFFID)
  580.         If "" <> sTemp Then objSubInfo.affId = sTemp
  581.  
  582.         Select Case CLng(objApp.Item (PROP_SUBTYPE))
  583.         '{
  584.             Case 1
  585.                 objSubInfo.Perpetual = 0
  586.             Case 5
  587.                 objSubInfo.Perpetual = 1
  588.         '}
  589.         End Select
  590.  
  591.         Select Case CLng(objApp.Item (PROP_SUBSTATUS))
  592.         '{
  593.             Case 1
  594.                 objSubInfo.Trial = 1
  595.             Case 2
  596.                 objSubInfo.Trial = 0
  597.         '}
  598.         End Select
  599.  
  600.         '// Renewal Url is not available as part of response object. DBVersion is not written.
  601.     '}
  602.     End If
  603. '}
  604. End Function
  605.  
  606. Function FallBackToFactorySettings()
  607. '{
  608.     Dim sTemp, sAgentDir, sDate, sRegWizDir
  609.     Dim objRegWiz
  610.     Dim nStatus
  611.  
  612.     nStatus = REGWIZ_ONREBOOT
  613.     sAgentDir = GetAgentDir()
  614.     
  615.     sTemp = Trim(gobjReg.IniGetValue( CStr(sAgentDir & FACTORY_SETTINGS_INI), SECTION_SETTINGS, KEY_ACTION ))
  616.  
  617.     If "" <> sTemp Then
  618.     '{
  619.         nStatus = CLng(sTemp)
  620.  
  621.         If 2 = nStatus Then
  622.         '{
  623.             sTemp = ""
  624.             sTemp = Trim(gobjReg.IniGetValue( CStr(sAgentDir & FACTORY_SETTINGS_INI), SECTION_FREQUENCY, KEY_DAYS ))
  625.  
  626.             If "" = sTemp Then
  627.             '{
  628.                 sTemp = "1"
  629.             '}
  630.             End If
  631.             sDate = FormatNextRun ( Clng(sTemp) )
  632.  
  633.             Set objRegWiz = gobjExternal.GetParam(MCREGWIZ_INTERFACE_NAME)
  634.  
  635.             If IsObject (objRegWiz) Then
  636.             '{
  637.                 objRegWiz.NextRun = sDate
  638.                 
  639.                 sRegWizDir = GetRegWizDataDir()
  640.  
  641.                 Call gobjReg.IniWriteValue( CStr(sRegWizDir & MCREGWIZ_INI), SECTION_REGWIZ, KEY_WHENCONNECTED, CStr("") )
  642.                 Call gobjReg.IniWriteValue( CStr(sRegWizDir & MCREGWIZ_INI), SECTION_REGWIZ, KEY_NEXTRUN, CStr(sDate) )
  643.             '}
  644.             End If
  645.             
  646.             nStatus = REGWIZ_NEXTRUN
  647.         '}
  648.         End If
  649.     '}
  650.     End If
  651.  
  652.     FallBackToFactorySettings = nStatus
  653. '}
  654. End Function
  655.  
  656. Function SubmitDataForRegistration( strMode )
  657. '{
  658.     Dim bInternetConnection, strRegUrl
  659.  
  660.     bInternetConnection = gobjOS.InternetGetConnectedState()
  661.  
  662.     strRegUrl = gobjExternal.GetParam ( PROP_REGURL )
  663.     strRegUrl = strRegUrl & strMode
  664.  
  665.     SubmitDataForRegistration = REGWIZ_STATUS_NOINTERNET
  666.  
  667.     If True = bInternetConnection Then
  668.     '{
  669.         SubmitDataForRegistration = REGWIZ_STATUS_SUCCESS
  670.         Call window.location.replace (CStr(strRegUrl))
  671.     '}
  672.     Else
  673.     '{
  674.         SubmitDataForRegistration = REGWIZ_STATUS_NOINTERNET
  675.     '}
  676.     End If
  677. '}
  678. End Function
  679.  
  680. Function LogDetails ( strLog )
  681. '{
  682.     Dim bObfuscate
  683.     Dim nCount, sName
  684.  
  685.     bObfuscate = gobjReg.Obfuscate
  686.  
  687.     gobjReg.AllowEveryone = True
  688.     gobjReg.Obfuscate = False
  689.  
  690.     Call gobjReg.RegCreateKey ( REG_REGWIZ_LOG_KEY )
  691.     
  692.     nCount = gobjReg.RegQueryValue( REG_REGWIZ_LOG_KEY, REG_REGWIZ_LOG_COUNT_NAME )
  693.     If 0 = VarType(nCount) Then
  694.         nCount = 0
  695.     Else
  696.         nCount = nCount + 1
  697.     End If
  698.  
  699.     If nCount < 10 Then
  700.         sName = CStr(REG_REGWIZ_LOG_COUNT_PREFIX & "00" & CLng(nCount))
  701.     ElseIf nCount < 100 Then
  702.         sName = CStr(REG_REGWIZ_LOG_COUNT_PREFIX & "0" & CLng(nCount))
  703.     Else
  704.         sName = CStr(REG_REGWIZ_LOG_COUNT_PREFIX & CLng(nCount))
  705.     End If
  706.  
  707.     If 0 = gobjReg.RegSetValue( REG_REGWIZ_LOG_KEY, CStr(sName), CStr(strLog) ) Then
  708.         call gobjReg.RegSetValue( REG_REGWIZ_LOG_KEY, REG_REGWIZ_LOG_COUNT_NAME, CLng(nCount) )
  709.     End If
  710.  
  711.     gobjReg.Obfuscate = bObfuscate     
  712. '}
  713. End Function
  714.  
  715. Function IsBootCountZero()
  716. '{
  717.     Dim nBootCount
  718.     
  719.     IsBootCountZero = True
  720.  
  721.     nBootCount = gobjReg.RegQueryValue (REG_AGENT, REG_KEY_REGWIZ_BOOT_COUNT)
  722.     
  723.     If "" <> Trim(CStr(nBootCount)) Then
  724.     '{
  725.         nBootCount = CLng(nBootCount)
  726.  
  727.         If (1 <= nBootCount) Then
  728.             nBootCount = nBootCount - 1
  729.         Else
  730.             nBootCount = 0
  731.         End If
  732.  
  733.         If (0 <> nBootCount) Then
  734.         '{
  735.             Call gObjReg.RegSetValue (REG_AGENT, REG_KEY_REGWIZ_BOOT_COUNT, Clng(nBootCount))
  736.             IsBootCountZero = False
  737.         '}
  738.         End If
  739.     '}
  740.     End If
  741. '}
  742. End Function
  743.  
  744. Function ShowOptinPage()
  745. '{
  746.     Dim sOemIni, strShowOptin
  747.  
  748.     ShowOptinPage = False
  749.  
  750.     sOemIni = GetAgentDir()
  751.     sOemIni = sOemIni & OEM_INI_WSLASH
  752.  
  753.     strShowOptin = Trim (gobjReg.IniGetValue (sOemIni, SECTION_CUSTOM, KEY_SHOW_OPTIN))
  754.     
  755.     If "1" = CStr(strShowOptin) Then
  756.     '{
  757.         ShowOptinPage = True
  758.     '}
  759.     End If
  760. '}
  761. End Function
  762.  
  763. Function CanShowPage( strKey )
  764. '{
  765.     Dim sOemIni, strShowPage
  766.  
  767.     CanShowPage = False
  768.  
  769.     sOemIni = GetAgentDir()
  770.     sOemIni = sOemIni & OEM_INI_WSLASH
  771.  
  772.     strShowPage = Trim (gobjReg.IniGetValue (sOemIni, SECTION_CUSTOM, strKey))
  773.     
  774.     If "1" = CStr(strShowPage) Then
  775.     '{
  776.         CanShowPage = True
  777.     '}
  778.     End If
  779. '}
  780. End Function
  781.  
  782. Function ShowPrivacyPolicy()
  783. '{
  784.     'On Error Resume Next
  785.  
  786.     Dim bInternetConnection, objWindow, strUrl, strPrivacyPolicyLCode
  787.  
  788.     bInternetConnection = False
  789.     bInternetConnection = gobjOS.InternetGetConnectedState()
  790.  
  791.     If False = bInternetConnection Then
  792.     '{
  793.         MsgBox STR_CONNECT_TO_INTERNET, VBSystemModal Or VBInformation Or VBOKOnly, STR_APP_ERROR_TITLE
  794.         Exit Function
  795.     '}
  796.     End If
  797.  
  798.     strPrivacyPolicyLCode = GetLangCodeForPrivacyPolicy( gsEulaLang )
  799.     strUrl = STR_PRIVACY_POLICY_URL & strPrivacyPolicyLCode
  800.  
  801.     Set objWindow = openNoScrollWindow(strUrl, "_McAfeePrivacyPolicy", "720", "680")
  802.  
  803.     If (IsObject(objWindow)) And (Not objWindow Is Nothing) Then
  804.     '{
  805.         objWindow.focus()
  806.     '}
  807.     End If
  808. '}
  809. End Function
  810.  
  811.