Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

656 lines
24 KiB

  1. <html xmlns:MSIE="urn:default" id="htmlText" style="width: 365px; height: 240px">
  2. <head>
  3. <title id="TitleText">Install on Demand (Internet Explorer)</title>
  4. <META http-equiv="PICS-Label" content='(PICS-1.1 "http://www.rsac.org/ratingsv01.html" l gen true comment "RSACi North America Server" by "[email protected]" on "1997.06.30T14:48-0500" r (n 0 s 0 v 0 l 0))'>
  5. <style type="text/css">
  6. p,td,input { font:8pt MS Shell Dlg; cursor:default}
  7. body { font:8pt MS Shell Dlg; color: windowtext;
  8. background:menu;}
  9. </style>
  10. <STYLE>
  11. MSIE\:CLIENTCAPS {behavior:url(#default#clientcaps)}
  12. </STYLE>
  13. <script for="window" event="onload()" language="JavaScript">
  14. window.setTimeout("FirstLoad()",100);
  15. </script>
  16. <!-- onbeforeunload can trap user closing dialog during download -->
  17. <script for="window" event="onbeforeunload()" language="JavaScript">
  18. // Do not allow the page to close if user is installing.
  19. if (installingState == true)
  20. return L_WARNINGINSTALLING_TEXT;
  21. </script>
  22. <script for="window" event="onunload()" language="JavaScript">
  23. if((errorhandlerflag == false) && (installingState == true))
  24. {
  25. window.external.returnValue = CANCELLED;
  26. engine.Abort(0); // If user cancels download by unloading the page, make sure engine aborts.
  27. }
  28. </script>
  29. </head>
  30. <body tabindex="-1">
  31. <MSIE:CLIENTCAPS ID="idClCap" />
  32. <!-- HTML document begins below -->
  33. <!-- Table for the entire dialog box -->
  34. <table cellspacing=3 width=100% height=99% border=0>
  35. <tr>
  36. <td valign=top style="padding-top:4px; padding-left:6px; padding-right:2px" rowspan=2><img id="alertImage" src="jitalert.gif"></td>
  37. <td valign=top colspan=6>
  38. <!-- Inner table - the list of components -->
  39. <table height="100px" width="100%" style="border-collapse:collapse;" border=0>
  40. <tr>
  41. <td id="WarningToDownloadText" height=20 style="padding-top:1px; padding-bottom:6px; padding-left:3px">To display this page correctly, you need to download and install the following components:</td>
  42. </tr>
  43. <tr>
  44. <td height=4></td>
  45. </tr>
  46. <tr valign="top">
  47. <td style="padding-left:4px">
  48. <div style="overflow: 'auto'">
  49. <div class="ComponentName" id="defaultName">Loading . . . please wait</div>
  50. <div class="ComponentName" id="JAVAVMJIT" style="display:'none'" helpid="50464">Microsoft virtual machine</div>
  51. <div class="ComponentName" id="IELPKJA" style="display:'none'" helpid="50465">Japanese Text Display Support</div>
  52. <div class="ComponentName" id="IELPKKO" style="display:'none'" helpid="50466">Korean Text Display Support</div>
  53. <div class="ComponentName" id="IELPKPE" style="display:'none'" helpid="50467">Pan-European Text Display Support</div>
  54. <div class="ComponentName" id="IELPKZHT" style="display:'none'" helpid="50468">Chinese (Traditional) Text Display Support</div>
  55. <div class="ComponentName" id="IELPKZHC" style="display:'none'" helpid="50469">Chinese (Simplified) Text Display Support</div>
  56. <div class="ComponentName" id="IELPKTH" style="display:'none'" helpid="50470">Thai Text Support</div>
  57. <div class="ComponentName" id="IELPKIW" style="display:'none'" helpid="50471">Hebrew Text Support</div>
  58. <div class="ComponentName" id="IELPKVI" style="display:'none'" helpid="50472">Vietnamese Text Support</div>
  59. <div class="ComponentName" id="IELPKAR" style="display:'none'" helpid="50473">Arabic Text Support</div>
  60. <div class="ComponentName" id="IELPKAD" style="display:'none'" helpid="50474">Language Auto-Selection</div>
  61. <div class="ComponentName" id="MEDIAPLAYER" style="display:'none'" helpid="50475">Windows Media Player</div>
  62. <div class="ComponentName" id="AOLSUPP" style="display:'none'" helpid="50478">Support for Viewing AOL Graphics</div>
  63. <div class="ComponentName" id="MOBILEPK" style="display:'none'" helpid="50479">Offline Browsing Pack</div>
  64. <div class="ComponentName" id="ICW" style="display:'none'" helpid="50480">Internet Connection Wizard</div>
  65. <div class="ComponentName" id="USP10" style="display:'none'" helpid="50481">Uniscribe</div>
  66. <div class="ComponentName" id="DIRECTANIMATION" style="display:'none'" helpid="50504">DirectAnimation</div>
  67. <div class="ComponentName" id="DIRECTOR" style="display:'none'" helpid="50505">Macromedia Shockwave</div>
  68. <div class="ComponentName" id="FLASH" style="display:'none'" helpid="50553">Macromedia Flash Player</div>
  69. <div class="ComponentName" id="HELPCONT" style="display:'none'" helpid="50506">Internet Explorer Help</div>
  70. <div class="ComponentName" id="TRIDATA" style="display:'none'" helpid="50508">Dynamic HTML Data Binding</div>
  71. <div class="ComponentName" id="MSVBScript" style="display:'none'" helpid="50556">Visual Basic Scripting Support</div>
  72. <div class="ComponentName" id="MSVML" style="display:'none'" helpid="50557">Vector Graphic Rendering (VML)</div>
  73. <div class="ComponentName" id="ADDRESSBOOK" style="display:'none'" helpid="50558">Windows Address Book</div>
  74. <div class="ComponentName" id="EXTRAPACK" style="display:'none'" helpid="50509">Browsing Enhancements</div>
  75. </div>
  76. </td>
  77. </tr>
  78. </table>
  79. <!-- End inner components table -->
  80. </td>
  81. </tr>
  82. <tr height="20px" id="DownloadTexts">
  83. <td nowrap width="20%" valign="bottom" id="SizeText" helpid="50457" style="padding-left:4px">Download Size:</td>
  84. <td width="18%" nowrap align="right" valign="bottom" id="DLSizeText" helpid="50457"><span id="totalDownloadSize"></span></td>
  85. <td width="10%" id="blanksp1">&nbsp;</td>
  86. <td nowrap width="20%" valign="bottom" id="DownloadTimeText" helpid="50458">Download Time:</td>
  87. <td width="16%" nowrap align="right" valign="bottom" id="DLTimeText" helpid="50458"><span id="totalDownloadTime"></span></td>
  88. <td width="16%" id="blanksp2">&nbsp;</td>
  89. </tr>
  90. <!-- Checkbox section -->
  91. <tr height="20px" align="top">
  92. <td rowspan=2><object ID="engine" WIDTH="1" HEIGHT="1" CLASSID="CLSID:6E449683-C509-11CF-AAFA-00AA00B6015C" CODEBASE="actsetup.cab#Version=4,71,1712,0"></object></td>
  93. <td colspan=6><input type="checkbox" title="Never download any of these components." id="checkboxNever" accessKey="V" onclick="CheckClick()" tabindex="3" helpid="50459">
  94. <span id="NeverDownloadText" onclick="checkboxNever.click()" style="font-family: MS Shell Dlg; font-size: 8pt; background: buttonface" tabindex="-1" helpid="50459">
  95. Ne<u>v</u>er download any of these components.
  96. </span>
  97. </td>
  98. </tr>
  99. <!-- action buttons -->
  100. <tr>
  101. <td align="right" valign="bottom" colspan=6>
  102. <table style="border-collapse:collapse;" border=0>
  103. <tr>
  104. <td id="OKButtonbox">
  105. <button id="OKButton" style="width: 75px; font: 8pt MS Shell Dlg" type="button" onClick="downloadComponents()" tabindex="1" helpid="50510">OK</button>
  106. </td>
  107. <td id="downloadButtonbox">
  108. <button id="downloadButton" style="width: 75px; font: 8pt MS Shell Dlg" type="button" onClick="downloadComponents()" tabindex="1" helpid="50461" accessKey="D"><u>D</u>ownload</button>
  109. </td>
  110. <td id="blanksp3">&nbsp;</td>
  111. <td>
  112. <button id="cancelButton" style="width: 75px; font: 8pt MS Shell Dlg" type="button" onClick="verifyCancel()" tabindex="2" helpid="50462">Cancel</button>
  113. </td>
  114. </tr>
  115. </table>
  116. </tr>
  117. </table>
  118. <script language="JavaScript">
  119. // Localizable Text Strings
  120. L_KILOBYTES_TEXT = " KB";
  121. L_MEGABYTE_TEXT = " MB";
  122. L_MINUTES_TEXT = " min";
  123. L_LessThanAMinute_TEXT = "< 1 min";
  124. L_hr1_TEXT = "1 hr";
  125. L_hrs_TEXT = " hrs";
  126. L_LOCAL_TEXT = " (available locally)";
  127. L_MISSINGCOMPONENTNAME_TEXT = "There has been a mismatched binary error in Internet Explorer.";
  128. L_ReInstall_TEXT = "Please reinstall, or install an updated version of Internet Explorer by choosing 'Windows Update' under the Internet Explorer 'Tools' menu.";
  129. L_DIALOGERROR_TEXT = "Install on Demand has detected an error.";
  130. L_DIALOGERROR2_TEXT = "You cannot load this page manually. It must be invoked by Internet Explorer directly.";
  131. L_WARNINGINSTALLING_TEXT = "You would interrupt component installation.";
  132. L_ALTWARNINGDOWNLOAD_TEXT = "To perform this action with Internet Explorer, you need to download and install the following components:";
  133. L_ALTLANGUAGEDOWNLOAD_TEXT = "To display language characters correctly you need to download and install the following components:";
  134. L_DLFail_TEXT="The component cannot be downloaded at this time.";
  135. L_InstallFail_TEXT = "Installation of the component failed.";
  136. L_ServerError_TEXT = "Install on Demand could not connect to the required network or Internet Server to download components.";
  137. L_UnknownError_TEXT = "An unknown error has occurred.";
  138. L_ProductUpdates_TEXT = "Please try again later or choose 'Windows Update' under the Internet Explorer 'Tools' menu to install this component.";
  139. L_NotConnected_TEXT = "Please verify that you are still connected to your network or the Internet.";
  140. L_CertRefuse_TEXT = "The file being downloaded is not signed, or you did not accept the Authenticode certificate.";
  141. L_IBusy_TEXT = "The Internet may be busy.";
  142. L_SecurityHigh_TEXT = "The security setting for your current zone may be set to HIGH.";
  143. L_SecurityHigh1_TEXT = "This setting does not allow ActiveX controls to function properly.";
  144. L_SecurityHigh2_TEXT = "To restart Install on Demand, change the security for your zone to MEDIUM by selecting the Security tab in 'Internet Options' under the IE 'Tools' menu.";
  145. L_SecurityHigh3_TEXT = "Then close the Internet Explorer Properties dialog and press the browser 'Refresh' button.";
  146. L_OfflineAlert_TEXT = "Install on Demand will not work properly when you are working offline.";
  147. L_OfflineAlert2_TEXT = "Please uncheck 'Work Offline' under the Internet Explorer 'File' menu and restore your Internet connection before continuing with installation.";
  148. L_AdminRights_TEXT = "You must be logged-on as an Administrator to complete this procedure.";
  149. L_NEVERDOWNLOAD_TEXT = "Never download the Web Folders component.";
  150. L_PlatformNOT_Text = "The required component is not available for this version of Windows.";
  151. // Return values from this HTML dialog
  152. SUCCESS = 0; // Component successfully downloaded and installed
  153. CANCELLED = 2; // User canceled dialog
  154. NEVERASK = 3; // User requested never to be asked to d/l this component again
  155. ERROR_SUCCESS_REBOOT_REQUIRED = 3010; // d/l reboot required
  156. // Initialize variables
  157. componentShown = false; // Description of component not shown yet
  158. // used to make this happen only once on
  159. // engineState = 3 (ready)
  160. downloadError = false; // Marked true if ActiveSetup had a problem downloading
  161. dlErrorResult = 0; // No download error result
  162. installingState = false; // ActiveSetup is not installing yet
  163. errorhandlerflag = false;
  164. stophelp = false;
  165. isoffline = false;
  166. AdminError = false;
  167. function FirstLoad()
  168. {
  169. firstloaderrorcheck = true;
  170. window.external.returnValue = CANCELLED;
  171. firstloaderrorcheck = false;
  172. GetDownloadSpeed();
  173. StoreParamsArray(); //load the component names in array
  174. SetCIFandURL(); //load the CIF file after page loads
  175. }
  176. function verifyCancel()
  177. {
  178. window.external.returnValue = CANCELLED; // Cancel d/l
  179. window.close();
  180. }
  181. function downloadComponents()
  182. {
  183. if (checkboxNever.checked == false)
  184. {
  185. document.all.downloadButton.disabled = true;
  186. document.all.downloadButton.style.color = "inactivecaption";
  187. document.all.checkboxNever.disabled = true;
  188. /* ProcessComponents Codes
  189. * 0 = unknown
  190. * 1 = Don't do reboot UI
  191. * 2 = Don't show any UI
  192. * 4 = No End summary
  193. * 32 = Ignore Download errors
  194. */
  195. engine.ProcessComponents(4);
  196. }
  197. else
  198. {
  199. window.external.returnValue = NEVERASK; // Never ask to download this component again
  200. window.close();
  201. }
  202. }
  203. /*
  204. * function stripPlatform
  205. *
  206. * Removes the CIF's ComponentID _NTX86 or _NTALPHA designations
  207. * when showing the friendly name/description of the component.
  208. * ActiveSetup still gets the full ComponentID
  209. */
  210. function stripPlatform(componentID)
  211. {
  212. len = componentID.length;
  213. if (componentID.substring(len-6,len).toUpperCase()=="_NTX86") // Check for _NTX86
  214. return componentID.substring(0,len-6)
  215. else if (componentID.substring(len-8,len).toUpperCase()=="_NTALPHA") // Check for _NTALPHA
  216. return componentID.substring(0,len-8)
  217. else return componentID; // For Win 9X
  218. }
  219. function errorHandler(message, url, line)
  220. {
  221. errorhandlerflag = true;
  222. if(firstloaderrorcheck == true)
  223. alert(L_DIALOGERROR_TEXT + "\n\n" + L_DIALOGERROR2_TEXT);
  224. else
  225. {
  226. alert(L_DIALOGERROR_TEXT + "\n\n" + message);
  227. window.external.returnValue = CANCELLED;
  228. }
  229. window.close();
  230. return true; // don't show real error message
  231. }
  232. function WhatKeyPressed()
  233. {
  234. if(window.event.keyCode == "27")
  235. verifyCancel();
  236. }
  237. function callHelp(elm)
  238. {
  239. if (stophelp != true)
  240. {
  241. if (null != elm.helpid)
  242. window.showHelp("iexplore.hlp", elm.helpid,"popup");
  243. else
  244. {
  245. if ("BODY" != elm.tagName)
  246. callHelp(elm.parentElement);
  247. }
  248. }
  249. else
  250. window.event.returnValue = false;
  251. }
  252. function DontDragMe()
  253. {
  254. window.event.returnValue = false;
  255. }
  256. /*
  257. * function fillArray()
  258. *
  259. * Parse the componentIDs passed and get size and friendly name info.
  260. *
  261. * URL: www.example.com/jit.htm
  262. * dialogArguments: feature=VRML&feature=JAVAVMJIT
  263. * Split by &, then save the componentIDs
  264. */
  265. function fillArray()
  266. {
  267. componentID = new Array();
  268. for (i = 0; i < paramsArray.length; i++)
  269. {
  270. /*
  271. * paramsArray looks like:
  272. * feature=componentID&feature=componentID&flag=force
  273. * componentIDs should be processed;
  274. * flags are handled separate from components
  275. */
  276. if (paramsArray[i].split("=")[0] == "feature")
  277. {
  278. componentID[i] = paramsArray[i].split("=")[1];
  279. if (componentID[i] == null)
  280. MissingComponent(); // Urlmon didn't send a component name
  281. retSet = engine.SetAction(componentID[i], 1); // Queue up components to download
  282. if(retSet == 1)
  283. NoPlatformComponent();
  284. else if((retSet != 0) && (retSet != 1))
  285. MissingComponent(); // Urlmon didn't send a component name
  286. compNameStripped = stripPlatform(componentID[i]);
  287. document.all(compNameStripped).style.display='';
  288. if((compNameStripped == "IELPKTH") || (compNameStripped == "IELPKIW") || (compNameStripped == "IELPKVI") || (compNameStripped == "IELPKAR") || (compNameStripped == "IELPKAD"))
  289. {
  290. if(document.all.idClCap.isComponentInstalled("{3bf42070-b3b1-11d1-b5c5-0000f8051515}","componentid",VER_USP10) != true)
  291. document.all("USP10").style.display='';
  292. }
  293. if (compNameStripped == "MOBILEPK") // Special case wording for MobilePk
  294. document.all.WarningToDownloadText.innerText = L_ALTWARNINGDOWNLOAD_TEXT;
  295. else if (compNameStripped == "HELPCONT") // Special case wording for Helpcont, disable dialog Help
  296. {
  297. document.all.WarningToDownloadText.innerText = L_ALTWARNINGDOWNLOAD_TEXT;
  298. stophelp = true;
  299. }
  300. else if(compNameStripped.substring(0,5) == "IELPK") // Special case Lang Packs too
  301. document.all.WarningToDownloadText.innerText = L_ALTLANGUAGEDOWNLOAD_TEXT;
  302. }
  303. else if (paramsArray[i].split("=")[0] == "flag")
  304. {
  305. // The only flag is the one for disabling "Never download..."
  306. document.all.NeverDownloadText.disabled = true;
  307. // underline not shown disabled:
  308. document.all.NeverDownloadText.style.color = "inactivecaption";
  309. document.all.checkboxNever.disabled = true;
  310. }
  311. }
  312. downloadSize = engine.TotalDownloadsize;
  313. downloadTime = Math.round(parseInt(downloadSize) / parseInt(downloadSpeed));
  314. if (downloadTime > 60)
  315. {
  316. downloadHr = Math.round(downloadTime / 60);
  317. downloadmin = Math.round(downloadTime % 60);
  318. if(downloadHr == 1)
  319. {
  320. if(downloadmin == 0)
  321. downloadTime = L_hr1_TEXT;
  322. else
  323. downloadTime = (L_hr1_TEXT + " " + downloadmin + L_MINUTES_TEXT);
  324. }
  325. else
  326. {
  327. if(downloadmin == 0)
  328. downloadTime = (downloadHr + L_hrs_TEXT);
  329. else
  330. downloadTime = (downloadHr + L_hrs_TEXT + " " + downloadmin + L_MINUTES_TEXT);
  331. }
  332. }
  333. else if(downloadTime < 60)
  334. {
  335. if((downloadSize != 0) && (downloadTime == 0))
  336. downloadTime = L_LessThanAMinute_TEXT;
  337. else
  338. downloadTime = downloadTime + L_MINUTES_TEXT;
  339. }
  340. else if(downloadTime == 60)
  341. downloadTime = L_hr1_TEXT;
  342. if (downloadSize > 1024)
  343. {
  344. MegabyteSize = Math.round((parseInt(downloadSize) / 1024) * 10) / 10;
  345. document.all("totalDownloadSize").innerText = MegabyteSize + L_MEGABYTE_TEXT;
  346. }
  347. else if(downloadSize == 0)
  348. {
  349. document.all("totalDownloadSize").innerText = downloadSize + L_KILOBYTES_TEXT + L_LOCAL_TEXT;
  350. document.all("totalDownloadTime").style.display = "none";
  351. document.all("DownloadTimeText").style.display = "none";
  352. }
  353. else
  354. document.all("totalDownloadSize").innerText = downloadSize + L_KILOBYTES_TEXT;
  355. document.all("totalDownloadTime").innerText = downloadTime;
  356. document.all("defaultName").style.display = "none";
  357. document.all.downloadButton.disabled = false;
  358. document.all.downloadButton.style.color = "buttontext";
  359. document.all("downloadButton").focus();
  360. document.onhelp = new Function("callHelp(window.event.srcElement)");
  361. }
  362. function MissingComponent()
  363. {
  364. alert(L_MISSINGCOMPONENTNAME_TEXT + " " + L_ReInstall_TEXT);
  365. window.external.returnValue = CANCELLED;
  366. window.close();
  367. }
  368. function NoPlatformComponent()
  369. {
  370. alert(L_PlatformNOT_Text);
  371. window.external.returnValue = CANCELLED;
  372. window.close();
  373. }
  374. function GetDownloadSpeed()
  375. {
  376. if (document.all.idClCap.connectionType == "lan")
  377. downloadSpeed = 800; // good estimate for LAN - 800 KB/min
  378. else if (document.all.idClCap.connectionType == "offline")
  379. {
  380. downloadSpeed = 120; // default to modem speed if offline
  381. isoffline = true;
  382. }
  383. else
  384. downloadSpeed = 120; // good estimate for 28.8kbps modem, 120 KB/min
  385. }
  386. function SetCIFandURL()
  387. {
  388. /*
  389. * The control will check the 4 download
  390. * sites in the registry and pull bits from the default.
  391. * If there are no defaults, I will have to pass a hardcoded
  392. * pointer to ms.com's ie5sites.dat.
  393. */
  394. ret = engine.SetSitesFile("","","");
  395. // On error, set BaseURL to default Microsoft site
  396. if (ret < 0)
  397. {
  398. alert(L_InstallFail_TEXT + " " + L_ProductUpdates_TEXT);
  399. window.close();
  400. }
  401. else
  402. {
  403. engine.SetLocalCif("iesetup.cif");
  404. engine.SetCIFFile("iecif.cab","iesetup.cif"); // Gets new CIF from site
  405. }
  406. }
  407. function StoreParamsArray()
  408. {
  409. /*
  410. * Parse the componentIDs passed in
  411. *
  412. * URL: www.example.com/jit.htm
  413. * dialogArguments: feature=VRML&feature=JAVAVMJIT
  414. * Split by &.
  415. */
  416. params = window.dialogArguments;
  417. paramsArray = params.split("&");
  418. }
  419. function CheckClick()
  420. {
  421. if (checkboxNever.checked == true)
  422. {
  423. document.all.DownloadTexts.style.color = "inactivecaption";
  424. document.all.downloadButtonbox.style.display = "none";
  425. document.all.OKButton.style.display = "";
  426. }
  427. else
  428. {
  429. document.all.DownloadTexts.style.color = "buttontext";
  430. document.all.downloadButtonbox.style.display = "";
  431. document.all.OKButton.style.display = "none";
  432. }
  433. }
  434. /******************************
  435. * IMMEDIATELY EXECUTING SCRIPT
  436. ******************************/
  437. window.onerror = errorHandler;
  438. document.onkeypress = WhatKeyPressed;
  439. document.ondragstart = DontDragMe;
  440. document.all.OKButton.style.display = "none";
  441. document.all.downloadButton.disabled = true;
  442. document.all.downloadButton.style.color = "inactivecaption";
  443. </script>
  444. <script for="engine" event="OnEngineStatusChange(newstate,substate)" language="JavaScript">
  445. /*
  446. * If the engine is ready and the component name is not yet shown,
  447. * get the component name and description and fill out the dialog
  448. */
  449. if ( (newstate==3) && (componentShown != true) )
  450. {
  451. window.fillArray();
  452. componentShown = true;
  453. }
  454. if (newstate == 2)
  455. installingState = true;
  456. </script>
  457. <script for="engine" event="OnStopInstall(Lresult, String, Lstatus)" language="JavaScript">
  458. installingState = false;
  459. /*
  460. * When the ActiveSetup engine is done installing, close the window
  461. * and return SUCCESS if the Lresult is 0 and there wasn't a download
  462. * error along the way in one of the components
  463. */
  464. if ((downloadError == true) || (Lresult < 0))
  465. {
  466. /*
  467. * Pass back URLMON error code if component failed.
  468. */
  469. if ((dlErrorResult == -2147467260) || (Lresult == -2147467260)) // Cancelled
  470. {
  471. window.external.returnValue = CANCELLED;
  472. }
  473. else if(dlErrorResult == -2146697210) // D/L failure - component
  474. {
  475. alert(L_DLFail_TEXT + " " + L_ProductUpdates_TEXT);
  476. window.external.returnValue = dlErrorResult;
  477. }
  478. else if(Lresult == -2146697210) // D/L failure - engine
  479. {
  480. if (isoffline == true)
  481. alert(L_OfflineAlert_TEXT + "\n\n" + L_OfflineAlert2_TEXT);
  482. else
  483. alert(L_DLFail_TEXT + " " + L_ProductUpdates_TEXT);
  484. window.external.returnValue = Lresult;
  485. }
  486. else if((dlErrorResult == -2146697211) || (Lresult == -2146697211)) // Server offline
  487. {
  488. alert(L_ServerError_TEXT + " " + L_IBusy_TEXT + " " + L_NotConnected_TEXT);
  489. if (dlErrorResult < 0)
  490. window.external.returnValue = dlErrorResult;
  491. else
  492. window.external.returnValue = Lresult;
  493. }
  494. else if((dlErrorResult == -2146697208) || (Lresult == -2146697208)) // JIT reg key munged
  495. {
  496. if (isoffline == true)
  497. alert(L_OfflineAlert_TEXT + "\n\n" + L_OfflineAlert2_TEXT);
  498. else
  499. alert(L_ServerError_TEXT + " " + L_ProductUpdates_TEXT);
  500. if (dlErrorResult < 0)
  501. window.external.returnValue = dlErrorResult;
  502. else
  503. window.external.returnValue = Lresult;
  504. }
  505. else if((dlErrorResult == -2147467259) || (Lresult == -2147467259)) // Install failure
  506. {
  507. if(AdminError == true)
  508. alert(L_InstallFail_TEXT + " " + L_AdminRights_TEXT); // No Admin Rights
  509. else
  510. alert(L_InstallFail_TEXT + " " + L_ProductUpdates_TEXT);
  511. if (dlErrorResult < 0)
  512. window.external.returnValue = dlErrorResult;
  513. else
  514. window.external.returnValue = Lresult;
  515. }
  516. else if((dlErrorResult == -2146762748) || (Lresult == -2146762748)) // Cert refused / failed
  517. {
  518. alert(L_CertRefuse_TEXT + " " + L_ProductUpdates_TEXT);
  519. if (dlErrorResult < 0)
  520. window.external.returnValue = dlErrorResult;
  521. else
  522. window.external.returnValue = Lresult;
  523. }
  524. else if((dlErrorResult == -2146762485) || (Lresult == -2146762485)) // Security set to HIGH
  525. {
  526. alert(L_SecurityHigh_TEXT + " " + L_SecurityHigh1_TEXT + " " + L_SecurityHigh2_TEXT + " " + L_SecurityHigh3_TEXT);
  527. if (dlErrorResult < 0)
  528. window.external.returnValue = dlErrorResult;
  529. else
  530. window.external.returnValue = Lresult;
  531. }
  532. else if(((dlErrorResult + " ").substring(0,9) == "-21466972") || ((Lresult + " ").substring(0,9) == "-21466972")) // General d/l error
  533. {
  534. alert(L_DLFail_TEXT + " " + L_IBusy_TEXT + " " + L_NotConnected_TEXT);
  535. if (dlErrorResult < 0)
  536. window.external.returnValue = dlErrorResult;
  537. else
  538. window.external.returnValue = Lresult;
  539. }
  540. else
  541. {
  542. if(AdminError == true)
  543. alert(L_InstallFail_TEXT + " " + L_AdminRights_TEXT); // No Admin Rights
  544. else
  545. alert(L_UnknownError_TEXT + " " + L_ProductUpdates_TEXT); // Unknown error
  546. if (dlErrorResult < 0)
  547. window.external.returnValue = dlErrorResult;
  548. else
  549. window.external.returnValue = Lresult;
  550. }
  551. }
  552. else if (Lstatus > 0)
  553. {
  554. /*
  555. * Lstatus = 0 - no reboot needed
  556. * Lstatus = 1 - Reboot needed, user clicked yes
  557. * Lstatus = 3 - Reboot needed, user clicked no
  558. */
  559. window.external.returnValue = ERROR_SUCCESS_REBOOT_REQUIRED;
  560. }
  561. else if (Lresult == 0)
  562. {
  563. window.external.returnValue = SUCCESS;
  564. }
  565. window.close();
  566. </script>
  567. <script for="engine" event="OnStopComponent(ComponentID, Lresult, Phase, FriendlyName, Status)" language="JavaScript">
  568. /*
  569. * If a component failed to d/l or install correctly, note the Lresult (hr from urlmon)
  570. */
  571. if (Lresult < 0)
  572. {
  573. downloadError = true;
  574. dlErrorResult = Lresult;
  575. if(Lresult == -2147024891) // No Admin Rights
  576. AdminError = true;
  577. }
  578. // IE version = VER_CORE
  579. </script>
  580. </body>
  581. </html>