home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 November / PCWNOV07.iso / shared / regwiz.cab / RegWizUI.dll / HTML / DEFAULT.VBS < prev    next >
Encoding:
Text File  |  2005-07-13  |  14.1 KB  |  513 lines

  1. Option Explicit
  2.  
  3. Function OnDefaultBodyLoad()
  4. '{
  5.     Dim objApplication, objRequest, objWizardParam, objApps, objProfile, ApplicationItems
  6.     Dim sAccountID, sSetupUrl, sTermsUrl, sCancelWarnUrl, sRedirectPage
  7.     Dim sRemindMeUrl, sOemIni, sShortPath, sRegWizDataDir, sRegWizAppDirectory
  8.     Dim nRegForce, nRegWizWaitState, nTrial, nCount, nIndex, nRunMode
  9.     Dim bOldObfuscate, bShowWOW, bBootCountZero, bInternetConnection
  10.  
  11.     Call gobjReg.RegDeleteKey ( REG_REGWIZ_LOG_KEY )
  12.  
  13.     If False = SetExternalObject (gobjExternal) Then
  14.     '{
  15.         Call LogDetails ( "Error : Unable to create external object" )
  16.         Call CloseWindow()
  17.         Exit Function
  18.     '}
  19.     End If
  20.  
  21.     sRegWizAppDirectory = GetRegWizAppDir()
  22.     If "" = sRegWizAppDirectory Then
  23.     '{
  24.         Call LogDetails ( "Error : RegApp directory is empty" )
  25.         Call CloseWindow()
  26.         Exit Function
  27.     '}
  28.     End If
  29.  
  30.     Call SetWizardStatus (REGWIZ_ONREBOOT)
  31.  
  32.     Call gobjExternal.SetParam ( PROP_BACKEND, "" )
  33.     Call gobjExternal.SetParam ( PROP_REGURL, "" )
  34.     
  35.     '// Initialize subscription manager object
  36.     Call InitScriptAPI(gobjSubMgr)
  37.  
  38.     Set objApplication = Nothing
  39.     Call PopulateAppsToRegister( objApplication )
  40.  
  41.     If 0 = objApplication.Count Then
  42.     '{
  43.         Call LogDetails ( "No application found for registration" )
  44.         Call SetWizardStatus (REGWIZ_SUCCESS)
  45.         Call CloseWindow()
  46.         Exit Function
  47.     '}
  48.     Else
  49.     '{
  50.         nRunMode = gobjExternal.GetParam ( MCREGWIZ_RUN_MODE )
  51.         If nRunMode = CMDLINE_AUTORUN Then
  52.         '{
  53.             bBootCountZero = True
  54.             bBootCountZero = IsBootCountZero()
  55.  
  56.             If (False = bBootCountZero) Then
  57.             '{
  58.                 Call SetWizardStatus (REGWIZ_ONREBOOT)
  59.                 Call CloseWindow()
  60.                 Exit Function
  61.             '}
  62.             End If
  63.         '}
  64.         End If
  65.  
  66.         Call gobjExternal.SetParam ( PROP_MULTIPRODUCT_REGISTER, 1 )
  67.  
  68.         If objApplication.Count = 1 Then
  69.         '{
  70.             ApplicationItems = objApplication.Items
  71.             Set objApps = ApplicationItems(0)
  72.  
  73.             Call gobjExternal.SetParam ( PROP_PRODDESC_HOLDER, objApps.Item(PROP_APPNAME) )            
  74.  
  75.             nTrial = CLng(objApps.Item(PROP_TRIAL))
  76.             Call gobjExternal.SetParam ( PROP_TRIAL, nTrial )
  77.  
  78.             If "vso" = LCase(objApps.Item(PROP_APPCAT)) Then
  79.             '{
  80.                 Call gobjExternal.SetParam ( PROP_MULTIPRODUCT_REGISTER, 0 )
  81.             '}
  82.             End If
  83.         '}
  84.         Else
  85.         '{
  86.             Call gobjExternal.SetParam ( PROP_PRODDESC_HOLDER, CStr(STR_MULTI_PRODUCT_DESC) )            
  87.  
  88.             nCount = objApplication.Count
  89.  
  90.             ApplicationItems = objApplication.Items
  91.             Set objApps = ApplicationItems(0)
  92.  
  93.             nTrial  = 1
  94.  
  95.             For nIndex = 0 To nCount-1
  96.             '{
  97.                 If 0 = CLng(objApps.Item(PROP_TRIAL)) Then
  98.                 '{
  99.                     nTrial = 0
  100.                     Exit For
  101.                 '}
  102.                 End If
  103.             '}
  104.             Next
  105.             Call gobjExternal.SetParam ( PROP_TRIAL, nTrial )
  106.         '}
  107.         End If
  108.     '}
  109.     End If
  110.  
  111.     sShortPath = GetAgentDir()
  112.  
  113.     '// Set Back Button Url's
  114.     '// 1. Setup Screen Url.  2. Terms Screen Url
  115.     sSetupUrl = PROTOCOL_MCP & sShortPath  & REGWIZ_UI_DLL_WCOLON & PROFILE_HTM
  116.     sTermsUrl = PROTOCOL_MCP & sShortPath  & REGWIZ_UI_DLL_WCOLON & TERMS_HTM
  117.     sCancelWarnUrl = PROTOCOL_MCP & sShortPath  & REGWIZ_UI_DLL_WCOLON & THANKYOU_HTM
  118.     sRemindMeUrl = PROTOCOL_MCP & sShortPath  & REGWIZ_UI_DLL_WCOLON & REMINDME_HTM
  119.  
  120.     sOemIni = GetAgentDir()
  121.     sOemIni = sOemIni & OEM_INI_WSLASH
  122.  
  123.     nRegForce = Trim (gobjReg.IniGetValue (sOemIni, SECTION_CUSTOM, KEY_REG_FORCE))
  124.     
  125.     If "" = nRegForce Then
  126.     '{
  127.         nRegForce = 0
  128.     '}
  129.     Else
  130.     '{
  131.         nRegForce = CLng(nRegForce)
  132.     '}
  133.     End If
  134.  
  135.     '// Set client side navigation url's for server pages.
  136.     Call gobjExternal.SetParam ( PROP_SETUP_URL, sSetupUrl )
  137.     Call gobjExternal.SetParam ( PROP_TERMS_URL, sTermsUrl )
  138.     Call gobjExternal.SetParam ( PROP_CANCELWARN_URL, sCancelWarnUrl )
  139.     Call gobjExternal.SetParam ( PROP_REMINDME_URL, sRemindMeUrl )
  140.     
  141.     Call gobjExternal.SetParam ( PROP_FORCE_REG, nRegForce )
  142.  
  143.     Set objRequest = CreateObject ("Scripting.Dictionary")
  144.  
  145.     '// Version #
  146.     objRequest.Add PROP_VERSION, REGWIZ_VERSION
  147.  
  148.     '// AccountID
  149.     sAccountID = GetAccountID()
  150.     objRequest.Add PROP_ACCOUNTID, sAccountID
  151.  
  152.     '// WizardParam
  153.     Call CreateWizardParam ( objWizardParam )
  154.     objRequest.Add PROP_WIZARDPARAM, objWizardParam
  155.  
  156.     '// Profile
  157.     If "" <> sAccountID Then
  158.     '{
  159.         Call LogDetails ( "---------------------------------" )
  160.         Call LogDetails ( "Account ID found" )
  161.         objRequest.Add PROP_PROFILE, Nothing
  162.     '}
  163.     Else
  164.     '{
  165.         Call LogDetails ( "---------------------------------" )
  166.         Call LogDetails ( "Account ID not found" )
  167.         '// Populate existing data, if any
  168.         sRegWizDataDir = GetRegWizDataDir()
  169.         
  170.         Set objProfile = CreateObject ( "Scripting.Dictionary" )
  171.  
  172.         bOldObfuscate = gobjReg.Obfuscate
  173.         gobjReg.Obfuscate = True
  174.  
  175.         objProfile.Add PROP_FIRSTNAME, Trim(CStr(gobjReg.IniGetValue( CStr(sRegWizDataDir & PROFILE_INI), SECTION_USERPROFILE, KEY_FIRSTNAME )))
  176.         objProfile.Add PROP_LASTNAME, Trim(CStr(gobjReg.IniGetValue( CStr(sRegWizDataDir & PROFILE_INI), SECTION_USERPROFILE, KEY_LASTNAME )))
  177.         objProfile.Add PROP_EMAILADDRESS, Trim(CStr(gobjReg.IniGetValue( CStr(sRegWizDataDir & PROFILE_INI), SECTION_USERPROFILE, KEY_EMAILADDRESS )))
  178.         objProfile.Add PROP_PASSWORD, Trim(CStr(gobjReg.IniGetValue( CStr(sRegWizDataDir & PROFILE_INI), SECTION_USERPROFILE, KEY_PASSWORD )))
  179.         objProfile.Add PROP_COUNTRY, USER_PROFILE_COUNTRY
  180.         objProfile.Add PROP_LANGUAGE, REGWIZ_LANG_ID
  181.  
  182.         gobjReg.Obfuscate = bOldObfuscate
  183.  
  184.         objRequest.Add PROP_PROFILE, objProfile
  185.     '}
  186.     End If
  187.  
  188.     '// Application
  189.     objRequest.Add PROP_APPLICATION, objApplication
  190.  
  191.     Call gobjExternal.SetParam ( PROP_REGREQUEST, objRequest )
  192.  
  193.     '// Deinitialize subscription manager object
  194.     Call DeinitScriptAPI()
  195.  
  196. 'Call TestValues ( PROP_REGREQUEST )
  197.  
  198.     nRegWizWaitState = gobjExternal.GetParam ( MCREGWIZ_WAIT_STATE )
  199.  
  200.     sRedirectPage = UPROSET_HTM
  201.  
  202. '// No wow screen for retail product
  203.     Call gobjExternal.SetParam ( PROP_ERROR_CODE, 0 )
  204.     bShowWOW = gobjExternal.GetParam ( PROP_SHOW_WOW )
  205.  
  206.     Dim bAdmin
  207.     bAdmin = gobjOS.IsAdministrator() 
  208.  
  209.     If REGWIZ_STATE_INETWAIT = nRegWizWaitState Then
  210.     '{
  211.         bInternetConnection = True
  212.         bInternetConnection = gobjOS.InternetGetConnectedState()
  213.  
  214.         If False = bInternetConnection Then
  215.         '{
  216.             Call LogDetails ( "Default.htm : Internet Wait State : No internet connection available." )
  217.  
  218.             sRedirectPage = REMINDME_HTM
  219.             If 1 = nRegForce Then
  220.                 sRedirectPage = SUBMITONCONNECT_HTM
  221.             End If
  222.         '}
  223.         Else
  224.         '{
  225.             Call LogDetails ( "Default.htm : Internet Wait State : Internet connection available." )
  226.  
  227.             sRedirectPage = INETCONRM_HTM
  228.             If 1 = nRegForce Then
  229.                 sRedirectPage = FORCESUB_HTM
  230.             End If
  231.         '}
  232.         End If
  233.     '}
  234.     ElseIf False = bAdmin Then
  235.     '{
  236.         Call LogDetails ( "Admin rights not found. Display admin rights required error message." )
  237.         Call gobjExternal.SetParam ( PROP_ERROR_CODE, MCINST_ADMIN_REQUIRED )
  238.         sRedirectPage = ERROR_HTM
  239.     '}
  240.     End If
  241.  
  242.     Call LogDetails ( "Default.htm : Registration required. Transfering control to : " & sRedirectPage )
  243.  
  244.     Call gobjExternal.ShowWindow (1)
  245.     Call window.location.replace ( CStr(sRedirectPage) )
  246. '}
  247. End Function
  248.  
  249. Function CreateWizardParam( ByRef objWizardParam )
  250. '{
  251.     Dim sCustomID, sLang, sOemIni, sCompleteUrl, sTemp, sShortPath
  252.  
  253.     sShortPath = GetAgentDir()
  254.     'sShortPath = gobjFS.GetShortPathName (sTemp)
  255.     sOemIni = sShortPath & OEM_INI_WSLASH
  256.  
  257.     sCustomID = Trim(gobjReg.IniGetValue (sOemIni, SECTION_CUSTOM, KEY_CUSTOM_ID))
  258.     sLang = REGWIZ_LANG_ID
  259.     
  260.     sCompleteUrl = PROTOCOL_MCP & sShortPath  & REGWIZ_UI_DLL_WCOLON & COMPLETION_HTM
  261.  
  262.     Set objWizardParam = Nothing
  263.     Set objWizardParam = CreateObject ("Scripting.Dictionary")
  264.  
  265.     objWizardParam.Add PROP_CUSTOMID, sCustomID
  266.     objWizardParam.Add PROP_LANGUAGE, sLang
  267.     objWizardParam.Add PROP_COMPLETION_URL, sCompleteUrl
  268. '}
  269. End Function
  270.  
  271. Function PopulateAppsToRegister( ByRef objApplication )
  272. '{
  273.     Dim sRegWizAppDir, sTemp, sIniFiles, nIdx, nResult, nSlashPos
  274.     Dim sAppID, sAppCode, sRegUrl, sBackend, sWebSite, sIni
  275.     Dim sAppName, sAppDesc, sTrialSubDesc, sAffID, sAppRegKey
  276.     Dim objApps, objCustomData, objSubInfo
  277.     Dim bSubscribed, sOemIni, bTempobfuscate
  278.  
  279.     sRegWizAppDir = GetRegWizAppDir()
  280.     'sRegWizAppDir = gobjFS.GetShortPathName (sRegWizAppDir)
  281.  
  282.     Set objApplication = CreateObject ("Scripting.Dictionary")
  283.     Set objApps = Nothing
  284.  
  285.     If "" = sRegWizAppDir Then
  286.         Exit Function
  287.     End If
  288.  
  289.     sIniFiles = gobjFS.EnumerateFolder ( sRegWizAppDir & "\*.ini" )
  290.     
  291.     For nIdx = LBound(sIniFiles) To UBound(sIniFiles)
  292.     '{
  293.         sIni = LCase(sIniFiles(nIdx,0))
  294.  
  295.         If True = gobjFS.IsFile(sIni) Then
  296.         '{
  297.             sAppID   = Trim(gobjReg.IniGetValue (sIni, SECTION_REGISTER, KEY_APPID))
  298.             sAppRegKey = REGKEY_AGENT_APPS & sAppID
  299.  
  300.             If "" <> sAppID And True = gobjReg.RegKeyPresent(sAppRegKey) Then
  301.             '{
  302.                 Call LogDetails ( "-------------------------------" )
  303.                 Call LogDetails ( sIni & " found for registration" )
  304.     
  305.                 sAppCode = Trim(gobjReg.IniGetValue (sIni, SECTION_REGISTER, KEY_APPCODE))
  306.                 sAffID = Trim(gobjReg.IniGetValue (sIni, SECTION_REGISTER, KEY_AFFID))
  307.  
  308.                 If "" <> sAppCode Then
  309.                 '{
  310.                     sTemp = ""
  311.                     sTemp = gobjExternal.GetParam ( PROP_BACKEND )
  312.                     If "" = sTemp Then
  313.                     '{
  314.                         sBackend = Trim(gobjReg.IniGetValue (sIni, SECTION_REGISTER, PROP_BACKEND))
  315.                         Call gobjExternal.SetParam ( PROP_BACKEND, sBackend )
  316.                     '}
  317.                     End If
  318.  
  319.                     sTemp = ""
  320.                     sTemp = gobjExternal.GetParam ( PROP_REGURL )
  321.                     If "" = sTemp Then
  322.                     '{
  323.                         'sOemIni = GetAgentDir()
  324.                         'sOemIni = sOemIni & OEM_INI_WSLASH
  325.  
  326.                         'sRegUrl  = Trim(gobjReg.IniGetValue (sOemIni, SECTION_CUSTOM, PROP_REGURL))
  327.  
  328.                         '// get the registration url from registry
  329.                         bTempobfuscate = gobjReg.Obfuscate
  330.                         gobjReg.Obfuscate = True
  331.                         sRegUrl  = Trim(gobjReg.RegQueryValue ( REG_REGWIZ_KEY, REG_REGWIZ_URL_KEY )) 
  332.                         gobjReg.Obfuscate = bTempobfuscate 
  333.  
  334.                         '// if not present, then get it from the application ini file
  335.                         If "" = sRegUrl Then
  336.                         '{
  337.                             sRegUrl  = Trim(gobjReg.IniGetValue (sIni, sBackend, PROP_REGURL))
  338.                         '}
  339.                         End If
  340.                         If "" <> sRegUrl Then
  341.                         '{
  342.                             Call gobjExternal.SetParam ( PROP_REGURL, sRegUrl )
  343.                         '}
  344.                         End If
  345.                     '}
  346.                     End If
  347.  
  348.                     bSubscribed = IsPartnerAppActivated(sAppID, sAppCode, sBackend, sAffID, nResult)
  349.     
  350.                     Call GetAppCustomData ( sIni, SECTION_REGISTER, objCustomData )
  351.     
  352.                     If False = bSubscribed Then
  353.                     '{
  354.                         Set objApps = Nothing
  355.                         Set objApps = CreateObject ("Scripting.Dictionary")
  356.     
  357.                         objApps.Add PROP_APPCAT, sAppID
  358.                         objApps.Add PROP_APPCODE, sAppCode
  359.                         objApps.Add PROP_CUSTOMDATA, objCustomData
  360.  
  361.                         sAppName = Trim(gobjReg.IniGetValue (sIni, SECTION_REGISTER, KEY_APP_NAME))
  362.                         sAppDesc = Trim(gobjReg.IniGetValue (sIni, SECTION_REGISTER, KEY_APP_DESC))
  363.                         sTrialSubDesc = Trim(gobjReg.IniGetValue (sIni, SECTION_REGISTER, KEY_TRIALSUB_DESC))
  364.  
  365.                         objApps.Add PROP_APPNAME, sAppName
  366.                         objApps.Add PROP_APPDESC, sAppDesc
  367.                         objApps.Add PROP_APPTRIALSUBDESC, sTrialSubDesc
  368.  
  369.                         Call GetApplicationRegInfo ( sIni, SECTION_REGISTER, objApps )
  370.  
  371.                         objApplication.Add LCase(sAppCode), objApps
  372.                     '}
  373.                     Else
  374.                     '{
  375.                         Call LogDetails ( "AppID : " & sAppID & " , AppCode : " & sAppCode & " , Backend : " & sBackend & " already registered" )
  376.     
  377.                         Call GetSubInfo (sAppID, sAppCode, objSubInfo)
  378.                         sWebSite = objSubInfo.Website
  379.     
  380.                         Call PerformPostReg ( sIni, sWebSite )
  381.     
  382.                         Call LogDetails ( "Application already registered. Deleting file : " & sIni )
  383.                         Call gobjFS.RemoveFiles ( sIni, "" )
  384.                     '}
  385.                     End If
  386.                 '}
  387.                 Else
  388.                 '{
  389.                     Call LogDetails ( "AppID or AppCode is missing in " & sIni )
  390.                 '}
  391.                 End If
  392.             '}
  393.             Else
  394.             '{
  395.                 Call LogDetails ( "-------------------------------" )
  396.                 Call LogDetails ( "Either " & sIni & " is missing or " & sAppRegKey & " not found" )
  397.                 Call LogDetails ( "Deleting the file : " & sIni )
  398.  
  399.                 Call gobjFS.RemoveFiles ( sIni, "" )
  400.             '}
  401.             End If
  402.         '}
  403.         End If
  404.     '}
  405.     Next
  406. '}
  407. End Function
  408.  
  409. Function GetAppCustomData ( ByVal sIni, ByVal sSection, ByRef objCustomData )
  410. '{
  411.     Dim sVal, sCustData, sKey, sName, sValue, sValSplit
  412.     Dim nIdx
  413.     Dim bOldObfuscate
  414.  
  415.     sCustData = gobjReg.IniGetValue( sIni, sSection, KEY_CUSTOMDATA )
  416.     sVal = gobjReg.IniGetMultipleValues( sIni, sCustData )
  417.  
  418.     bOldObfuscate = gobjReg.Obfuscate
  419.  
  420.     gobjReg.AllowEveryone = True
  421.     gobjReg.Obfuscate = False
  422.  
  423.     Set objCustomData = Nothing
  424.     Set objCustomData = CreateObject ("Scripting.Dictionary")
  425.  
  426.     For nIdx = LBound(sVal) To UBound(sVal)
  427.     '{
  428.         sValue = LCase(sVal(nIdx, 1))
  429.         sName = LCase(sVal(nIdx, 0))
  430.  
  431.         If InStr (sName, "$reg$") > 0 Then
  432.         '{
  433.             sValSplit = split (sValue, ",")
  434.             
  435.             sName = Trim(sValSplit(1))
  436.             sKey = Trim(sValSplit(0))
  437.  
  438.             sValue = Trim(gobjReg.RegQueryValue ( sKey, sName ))
  439.         '}
  440.         End If
  441.  
  442.         objCustomData.Add sName, sValue
  443.     '}
  444.     Next
  445.     
  446.     If 0 = objCustomData.Count Then
  447.         Set objCustomData = Nothing
  448.     End If
  449.  
  450.     gobjReg.Obfuscate = bOldObfuscate
  451. '}
  452. End Function
  453.  
  454. Function GetApplicationRegInfo ( ByVal sIni, ByVal sSection, ByRef objApps )
  455. '{
  456.     Dim nTrial, nPerpetual
  457.  
  458.     objApps.Add PROP_AFFID, Trim(gobjReg.IniGetValue (sIni, sSection, KEY_AFFID))
  459.     objApps.Add PROP_COUNTRY, Trim(gobjReg.IniGetValue (sIni, sSection, KEY_COUNTRY))
  460.     objApps.Add PROP_LANGCODE, Trim(gobjReg.IniGetValue (sIni, sSection, KEY_LANG))
  461.     
  462.     nPerpetual = Trim(gobjReg.IniGetValue (sIni, sSection, KEY_PERPETUAL))
  463.     If "" = nPerpetual Then
  464.         nPerpetual = 0
  465.     Else
  466.         If IsNumeric(nPerpetual) Then
  467.             nPerpetual = CLng(nPerpetual)
  468.         Else
  469.             nPerpetual = 0
  470.         End If
  471.     End If
  472.  
  473.     objApps.Add PROP_PERPETUAL, CLng(nPerpetual)
  474.  
  475.     nTrial = Trim(gobjReg.IniGetValue (sIni, sSection, KEY_TRIAL))
  476.     If "" = nTrial Then
  477.         nTrial = 1
  478.     Else
  479.         If IsNumeric(nTrial) Then
  480.             nTrial = CLng(nTrial)
  481.         Else
  482.             nTrial = 1
  483.         End If
  484.     End If
  485.  
  486.     objApps.Add PROP_TRIAL, CLng(nTrial)
  487.  
  488.     objApps.Add PROP_ACCOUNTID, ""
  489.     objApps.Add PROP_SYNCURL, ""
  490.     objApps.Add PROP_WEBSITE, ""
  491.     objApps.Add PROP_BACKEND, ""
  492.     objApps.Add PROP_EXPIRYDATE, ""
  493.     objApps.Add PROP_SUBTYPE, 0
  494.     objApps.Add PROP_SUBSTATUS, 0
  495. '}
  496. End Function
  497.  
  498. Function GetAccountID ()
  499. '{
  500.     Dim sBackend, sAccountID
  501.  
  502.     sBackend = gobjExternal.GetParam ( PROP_BACKEND )
  503.  
  504.     GetAccountID = ""
  505.  
  506.     If "" <> sBackend Then
  507.     '{
  508.         Call GetUserRegistered(sBackend, sAccountID)
  509.         GetAccountID = sAccountID
  510.     '}
  511.     End If
  512. '}
  513. End Function