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.

4079 lines
146 KiB

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML>
  3. <HEAD>
  4. <TITLE>File a bug report</TITLE>
  5. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" >
  6. <LINK ID=Stylesheet_Ref href="bugrep.css" rel=STYLESHEET type=text/css>
  7. <META content=/scripts/PostInfo.asp name=postinfo>
  8. <OBJECT ID=pchealth classid=CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7></OBJECT>
  9. <!--
  10. ******************************************************************
  11. Copyright (c) 1999 Microsoft Corporation
  12. Module Name:
  13. Bug Reporting Page
  14. File:
  15. bugrep.htm
  16. Abstract:
  17. Bug reporting channel for Whistler beta
  18. Internal Version : 1.000
  19. 1999-09-10 : Cleaned up formatting of HTML and made syntax clean
  20. 1999-09-20 : Cleaning up code
  21. 1999-09-21 : Bugs P1 99969, 102646, 102645, 102740, 102196 (102811?)
  22. 1999-09-22 : Cleaned up formatting, added removing from a list and
  23. made localization easier
  24. 1999-09-23 : Made printing easier with expanding text areas
  25. 1999-09-27 : Removed leading spaces from filenames in AddFile
  26. BetaID field accepts only 0-9 values
  27. Error message if XML files are missing (broken install)
  28. 1999-09-28 : Fixed alignment of text areas to top
  29. Fixed focus related bug in text areas
  30. Fixed to be more localization friendly (Bug 103361)
  31. Removed config.sys and autoexec.bat from collected file list
  32. 1999-09-29 : Added user.dat, system.dat and classes.dat to default file list
  33. 1999-09-30 : Added DirectX data collection
  34. Added system drive path instead of \..\ convention
  35. Added option to handle data collection failures
  36. 1999-10-01 : Added ActiveX object to collect build and language info
  37. Register ActiveX object on script load (brp_sysinfo.dll)
  38. Added tracking number after data upload
  39. Moved thankyou into a SPAN to display tracking after upload
  40. 1999-10-05 : Adding IEINFO5.MOF to cab and using MOFCOMP to compile this
  41. Collecting IE info along with machine data
  42. Forced extension of saved file to be CAB (bug 102973)
  43. 1999-10-06 : Changed directx diag running mode to 1
  44. Disabled DirectX data collection
  45. 1999-10-11 : Changed max sizes of text-areas to 2000
  46. Changed to use bugrep.css
  47. 1999-10-12 : Added xml files to list of collected files
  48. 1999-10-13 : Fixed IE realted break
  49. 1999-10-13 : Added min space image
  50. 1999-10-16 : When no info checked direct CAB creating skipping DC
  51. Registry files collected only for Area = Setup
  52. CollecOk related bugs fixed
  53. Restructed flow to have Save and Submit check boxes
  54. Report bytes transmitted in upload
  55. Changed CAB file name to preserve all .'s in filename
  56. Behaviour changed to hide all input field when saving
  57. or submitting bug so that no fields can be changed
  58. After finishing all fields are restored
  59. Upload bug reporting page version in incident XML
  60. Changed cursor to busy when uploading/saving bug
  61. Disabled controls during submit
  62. Added record of incidents using SAF framework for
  63. saved and submitted incidents in a \incidents
  64. directory
  65. 1999-10-18 : Set focus to beta id on page load
  66. Set focus to missing entry when validating form
  67. Removed .'s from BetaID
  68. Declared all objects locally/globally
  69. Order of error checking consistent with screen order
  70. Fix for MOF command not returning after finishing
  71. 1999-10-19 : Changed Confirm to have title
  72. Added link to winbeta site
  73. Added bug page version
  74. If failure then do not get streams
  75. Changed Run commands to use short path name for IEINFO
  76. Changed Run commands to use short path name for SYSINFO
  77. 1999-10-23 : Changed checking of stream to JS code to work around VB problem
  78. 1999-10-24 : Added collecting hcupdate.log
  79. Added collecting WMI logs
  80. Added dc_onComplete function
  81. 1999-10-25 : Find build number and do proper RecordIncident
  82. 1999-10-26 : Changed occured to occurred
  83. Added width for space.gif image for localization
  84. 1999-10-27 : Updated xml files to handle changes to dataspec.xml
  85. 1999-10-28 : Text boxes on incident view have scroll bars but no edit/cut/paste
  86. Fixed . in file name to be at end
  87. Changed Done to Submit
  88. 1999-10-28 : Fixed to initialize only once (brp_init.ini)
  89. Save incident data in csv files
  90. Added resume.txt
  91. Fixed build break
  92. 1999-10-30 : Added presisting betaid and other options
  93. Added DrWatson log collection
  94. Added display for cabbit and directX
  95. Extensive validation of filenames
  96. Auto filling of filename from title
  97. Set default folder to millennium bugs
  98. 1999-11-09 : Adding local LCID and ACP to handle Local translations
  99. Updated xml files to collect data
  100. 1999-12-02 : Changed page encoding to UTF-8 to display special characters (118165)
  101. Fixed extra space in recorded incident page (119877)
  102. Fixed localizability with BRP Version string (121829)
  103. 1999-12-06 : Removed IEMOF section, because IE5 providers are already registered on
  104. Whistler (3529);
  105. Removed BRP_INFO registration section, because brpinfo.dll is installed as
  106. part of helpctr (millen bug#121483).
  107. 2000-04-27 : Began modifying bugrep.htm for deployment to Whistler Beta Program web server and
  108. application. (DougA)
  109. 2000-05-22 : Finalized changes, incremented version number
  110. 2000-06-06 : Changed tracking number text since tracking numbers will come from the server
  111. 2000-08-01 : Began work on changes for Beta1. These changes will include:(DougA)
  112. * New Areas
  113. * Verification of Email address.
  114. * Persistance of Email address.
  115. * Regression, SKU and Upgrade questions.
  116. * Feild limits match bugreporting page on http://windowsbeta.microsoft.com
  117. * Text changes in the intro verbage.
  118. * Drop requirement for BetaID.
  119. * Rev the build number on the page.
  120. 2000-11-15 : Began changes for Beta2. Theses changes will include:(DougA)
  121. * Persist major data ( sku, this problems happens, et et et...)
  122. * Correct a mis-spelling in the SKU drop down.
  123. * added a few files to be collected with bug report.
  124. 2001-2-13 : Globalized the above additions by adding ID attributes to the tags.(DougA)
  125. 2001-4-11 : Began changes for RC1. Theses changes will include: (DougA)
  126. * New Area: HCT
  127. * Change "Personal" - > "Home" in Area Drop down.
  128. * Re-activate the DxDiag Div for both games and video areas.
  129. * New Area: Fast User Switching
  130. * New Text RE: Comments Link.
  131. * Make sure all changes are localizable
  132. * Rev Build Number
  133. Requires following files
  134. ErrCodes.vbs
  135. bugrep.css
  136. bug_upload_collect.xml
  137. bug_upload_nocollect.xml
  138. dataspec.xml
  139. ******************************************************************
  140. -->
  141. <SCRIPT ID="ErrCodesList" LANGUAGE=VBScript SRC="ErrCodes.vbs"></SCRIPT>
  142. <SCRIPT LANGUAGE=VBScript>
  143. '
  144. ' Make sure all variables are declared explicitly and to make typos easier
  145. ' to find (in in the current code)
  146. '
  147. 'option explicit
  148. '
  149. ' ProductName (should be equal to product name field in SAF1.XML)
  150. '
  151. const L_BRP_Version = "5.00.00."
  152. const L_BRPBuild_Version = "6000"
  153. '
  154. ' ProductName (should be equal to product name field in SAF1.XML)
  155. '
  156. const L_ProductName_Version = "Microsoft Whistler Beta"
  157. '
  158. ' Vendor directory under which all files are stored on the client
  159. '
  160. const L_VendorChannel_Address = "CN=Microsoft Corporation,L=Redmond,S=Washington,C=US"
  161. '
  162. ' Title for all dialog message boxes
  163. '
  164. const L_MsgBoxTitle_Message = "Bug Reporting"
  165. '
  166. ' Server name for uploading bugs
  167. '
  168. const L_ServerName_Address = "http://windowsbeta.microsoft.com/pchealth/UpLoadServer.dll"
  169. '
  170. ' Field names
  171. '
  172. const L_MissingField_ErrorMessage = "Missing or incomplete required field: "
  173. const L_FormField_FIELDNAME_BetaID_TEXT = "Beta ID"
  174. const L_FormField_FIELDNAME_Emailaddr_TEXT = "Email address"
  175. const L_FormField_FIELDNAME_Title_TEXT = "Problem title"
  176. const L_FormField_FIELDNAME_Description_TEXT = "Describe the problem"
  177. const L_FormField_FIELDNAME_Expected_TEXT = "What did you expect to happen"
  178. const L_FormField_FIELDNAME_Repro_TEXT = "Enter the steps required to reproduce the problem"
  179. const L_FormField_FIELDNAME_Severity_TEXT = "Problem type"
  180. const L_FormField_FIELDNAME_SKU_TEXT = "This Windows install is the"
  181. const L_FormField_FIELDNAME_regression_TEXT = "This Problem (2nd Dropdown)"
  182. const L_FormField_FIELDNAME_upgrade_TEXT = "This install is"
  183. const L_FormField_FIELDNAME_Area_TEXT = "Area"
  184. const L_FormField_FIELDNAME_Reproducibility_TEXT = "This Problem (1st Dropdown)"
  185. '
  186. ' Testing flag, set to 0 for release code, 1 for testing code and using the
  187. ' test server
  188. '
  189. const BRP_DebugFlag = 0
  190. '
  191. ' Main code, only localization changes to be made after this section
  192. '
  193. const UL_HISTORY_LOG = 1
  194. const UL_HISTORY_LOG_AND_DATA = 2
  195. const UL_HISTORY_NONE = 0
  196. const UL_BACKGROUND = 0
  197. const UL_FOREGROUND = 1
  198. const UL_ABORTED = 4
  199. const UL_ACTIVE = 1
  200. const UL_COMPLETED = 6
  201. const UL_DELETED = 7
  202. const UL_FAILED = 5
  203. const UL_NOTACTIVE = 0
  204. const UL_SUSPENDED = 2
  205. const UL_TRANSMITTING = 3
  206. const DC_NOTACTIVE = 0
  207. const DC_COLLECTING = 1
  208. const DC_FAILED = 2
  209. const DC_COMPLETED = 3
  210. const L_NoConnection1_ErrorMessage = "Bug can not be sent at this time because we detect no current internet connection."
  211. const L_NoConnection2_ErrorMessage = "Please connect to the Internet and resend the bug, or deselect ""Submit to Microsoft now"" and select ""Save copy to disk"" only to save the bug for sending later (please see readme for batch uploading instructions)."
  212. const g_TestingURL = "http://www.microsoft.com"
  213. '
  214. ' g_oDc Data collection object
  215. ' g_oUpl Upload object
  216. ' g_oCab Cab creation object
  217. '
  218. Dim g_oDc, g_oUpl, g_oCab, g_nInProgress, g_bSaveIncident, g_bSubmitIncident
  219. Dim g_bSaveIncidentSucceeded, g_bSubmitIncidentSucceeded
  220. Dim g_bFormValid
  221. Dim g_nCurrentBuild
  222. Dim g_SettingsBetaId
  223. Dim g_SettingsEmail
  224. Dim g_SettingsSKU
  225. Dim g_SettingsUpgrade
  226. Dim g_SettingsLastPath
  227. Dim g_SettingsShareInfo
  228. Dim g_SettingsSubmitNow
  229. Dim g_SettingsSaveToDisk
  230. Dim g_CrashDumpFile
  231. Dim g_KernelCrash
  232. Dim g_CrashApp
  233. Dim g_DeleteCrashDump
  234. Set g_oDc = Nothing
  235. Set g_oUpl = Nothing
  236. Set g_oCab = Nothing
  237. g_nCurrentBuild = 0
  238. g_nInProgress = 0
  239. g_bSaveIncident = False
  240. g_bSaveIncidentSucceeded = False
  241. g_bSubmitIncident= False
  242. g_bSubmitIncidentSucceeded = False
  243. g_bFormValid = False
  244. '------------------------------------------------------------------------------
  245. '
  246. ' Validate form before submitting report
  247. '
  248. '------------------------------------------------------------------------------
  249. sub ValidateForm()
  250. const L_BetaIDBadRange_ErrorMessage = "There is an problem with your betaid."
  251. Dim misc_fields, colon, bang, field, description, BetaIDValue
  252. Dim oFS
  253. ' Override the default behavior so we can control where we go.
  254. window.event.cancelBubble = true
  255. window.event.returnValue = false
  256. '
  257. 'Format of misc-fields is a colon-separated list. Each entry
  258. 'consists of the field name to check, optionally followed by a
  259. 'bang and a human-readable description of that field.
  260. '"BetaID!" & L_FormField_FIELDNAME_BetaID_TEXT & _
  261. misc_fields = "Title!" & L_FormField_FIELDNAME_Title_TEXT
  262. while misc_fields <> ""
  263. colon = instr(misc_fields, ":")
  264. if colon <> 0 then
  265. field = left(misc_fields, colon-1)
  266. misc_fields = right(misc_fields, len(misc_fields) - colon)
  267. else
  268. field = misc_fields
  269. misc_fields = ""
  270. end if
  271. bang = instr(field, "!")
  272. if bang <> 0 then
  273. description = right(field, len(field) - bang)
  274. field = left(field, bang-1)
  275. else
  276. description = field
  277. end if
  278. if IsNull(document.all(field)) or len(document.all(field).value) = 0 then
  279. Call BRP_MessageBox(L_MissingField_ErrorMessage & description)
  280. g_bFormValid = False
  281. '
  282. ' Set focus to missing field
  283. '
  284. document.all(field).focus
  285. exit sub
  286. end if
  287. wend
  288. 'Verify email value.
  289. dim emailinput
  290. emailinput = document.all.Emailaddr_Input.value
  291. if ( (emailinput = "") or (len(emailinput) < 6) or (instr(emailinput,"@") = 0) or (instr(emailinput,".") = 0) or (instr(emailinput," ") <> 0) ) then
  292. Call BRP_MessageBox(L_MissingField_ErrorMessage & L_FormField_FIELDNAME_emailaddr_TEXT)
  293. g_bFormValid = False
  294. document.all.Emailaddr_Input.focus
  295. exit sub
  296. end if
  297. if document.all.Severity.value = "NA" then
  298. Call BRP_MessageBox(L_MissingField_ErrorMessage & L_FormField_FIELDNAME_Severity_TEXT)
  299. g_bFormValid = False
  300. document.all.Severity.focus
  301. exit sub
  302. end if
  303. if document.all.regression.value = "NA" then
  304. Call BRP_MessageBox(L_MissingField_ErrorMessage & L_FormField_FIELDNAME_regression_TEXT)
  305. g_bFormValid = False
  306. document.all.regression.focus
  307. exit sub
  308. end if
  309. if document.all.Area.value = "NA" then
  310. Call BRP_MessageBox(L_MissingField_ErrorMessage & L_FormField_FIELDNAME_Area_TEXT)
  311. g_bFormValid = False
  312. document.all.Area.focus
  313. exit sub
  314. end if
  315. if document.all.SKU.value = "NA" then
  316. Call BRP_MessageBox(L_MissingField_ErrorMessage & L_FormField_FIELDNAME_SKU_TEXT)
  317. g_bFormValid = False
  318. document.all.SKU.focus
  319. exit sub
  320. end if
  321. if document.all.upgrade.value = "NA" then
  322. Call BRP_MessageBox(L_MissingField_ErrorMessage & L_FormField_FIELDNAME_upgrade_TEXT)
  323. g_bFormValid = False
  324. document.all.upgrade.focus
  325. exit sub
  326. end if
  327. '
  328. 'Format of misc-fields is a colon-separated list. Each entry
  329. 'consists of the field name to check, optionally followed by a
  330. 'bang and a human-readable description of that field.
  331. '
  332. misc_fields = "Description!" & L_FormField_FIELDNAME_Description_TEXT & _
  333. ":ExpectedBehavior!" & L_FormField_FIELDNAME_Expected_TEXT & _
  334. ":StepsToRepro!" & L_FormField_FIELDNAME_Repro_TEXT
  335. while misc_fields <> ""
  336. colon = instr(misc_fields, ":")
  337. if colon <> 0 then
  338. field = left(misc_fields, colon-1)
  339. misc_fields = right(misc_fields, len(misc_fields) - colon)
  340. else
  341. field = misc_fields
  342. misc_fields = ""
  343. end if
  344. bang = instr(field, "!")
  345. if bang <> 0 then
  346. description = right(field, len(field) - bang)
  347. field = left(field, bang-1)
  348. else
  349. description = field
  350. end if
  351. if IsNull(document.all(field)) or len(document.all(field).value) = 0 then
  352. Call BRP_MessageBox(L_MissingField_ErrorMessage & description)
  353. g_bFormValid = False
  354. '
  355. ' Set focus to missing field
  356. '
  357. document.all(field).focus
  358. exit sub
  359. end if
  360. wend
  361. on error resume next
  362. Err.Clear
  363. 'BetaIDvalue = CLng(document.all.BetaID.value)
  364. 'if Err.number <> 0 then
  365. ' Call BRP_MessageBox(L_BetaIDBadRange_ErrorMessage)
  366. ' g_bFormValid = False
  367. ' document.all.BetaID.focus
  368. ' exit sub
  369. 'end if
  370. Set oFS = CreateObject("Scripting.FileSystemObject")
  371. document.all.IncidentFilename.value = oFS.GetAbsolutePathName(document.all.IncidentFilename.value)
  372. '
  373. ' Return validity flag in a global variable
  374. '
  375. g_bFormValid = True
  376. end sub
  377. '------------------------------------------------------------------------------
  378. '
  379. '
  380. '
  381. '------------------------------------------------------------------------------
  382. sub ValidateTextLength(limit)
  383. const L_TooLong1_ErrorMessage = "This text field is too long. It is limited to "
  384. const L_TooLong2_ErrorMessage = " characters. The entry has been truncated."
  385. if len(window.event.srcElement.value) > limit then
  386. BRP_MessageBox L_TooLong1_ErrorMessage & CStr(limit) & L_TooLong2_ErrorMessage
  387. window.event.srcElement.value = left(window.event.srcElement.value, limit)
  388. window.event.srcElement.focus
  389. end if
  390. end sub
  391. '------------------------------------------------------------------------------
  392. '
  393. ' Message box with OK and special title
  394. '
  395. '------------------------------------------------------------------------------
  396. sub BRP_MessageBox(msg)
  397. Call MsgBox(msg,vbOKOnly,L_MsgBoxTitle_Message)
  398. end sub
  399. '------------------------------------------------------------------------------
  400. '
  401. '
  402. '
  403. '------------------------------------------------------------------------------
  404. function BRP_Confirm(msg)
  405. BRP_Confirm = MsgBox(msg,vbYesNo,L_MsgBoxTitle_Message)
  406. end function
  407. '------------------------------------------------------------------------------
  408. '
  409. '
  410. '
  411. '------------------------------------------------------------------------------
  412. sub BRP_TraceMessage(msg)
  413. if BRP_DebugFlag >= 2 then
  414. Call MsgBox(msg,vbOKOnly,L_MsgBoxTitle_Message)
  415. end if
  416. end sub
  417. '------------------------------------------------------------------------------
  418. '
  419. '
  420. '
  421. '------------------------------------------------------------------------------
  422. function GetVendorPath()
  423. Dim oChannel
  424. Set oChannel= pchealth.CreateObject_Channel(L_VendorChannel_Address, L_ProductName_Version)
  425. GetVendorPath = oChannel.VendorDirectory
  426. end function
  427. '------------------------------------------------------------------------------
  428. '
  429. '
  430. '
  431. '------------------------------------------------------------------------------
  432. function GetWinPath()
  433. Dim oFS
  434. Set oFS = CreateObject("Scripting.FileSystemObject")
  435. GetWinPath = oFS.GetSpecialFolder(0)
  436. end function
  437. '------------------------------------------------------------------------------
  438. '
  439. '
  440. '
  441. '------------------------------------------------------------------------------
  442. function GetWinSystemPath()
  443. Dim oFS
  444. Set oFS = CreateObject("Scripting.FileSystemObject")
  445. GetWinSystemPath = oFS.GetSpecialFolder(1)
  446. end function
  447. '------------------------------------------------------------------------------
  448. '
  449. '
  450. '
  451. '------------------------------------------------------------------------------
  452. function GetTempPath()
  453. Dim oFS
  454. Set oFS = CreateObject("Scripting.FileSystemObject")
  455. GetTempPath = oFS.GetSpecialFolder(2)
  456. end function
  457. '------------------------------------------------------------------------------
  458. '
  459. ' Only on Whistler
  460. '
  461. '
  462. '------------------------------------------------------------------------------
  463. function GetSystemRootPath()
  464. Dim oWshShell
  465. Set oWshShell = CreateObject("WScript.Shell")
  466. GetSystemRootPath = oWshShell.ExpandEnvironmentStrings("%SYSTEMROOT%")
  467. end function
  468. '------------------------------------------------------------------------------
  469. '
  470. '
  471. '
  472. '------------------------------------------------------------------------------
  473. function GetSystemDrivePath()
  474. Dim oWshShell, szWinBootDir, szSystemDrive
  475. Dim slash
  476. Set oWshShell = CreateObject("WScript.Shell")
  477. szSystemDrive = oWshShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%")
  478. if len(szSystemDrive) <= 0 OR szSystemDrive = "%SYSTEMDRIVE%" then
  479. szWinBootDir = oWshShell.ExpandEnvironmentStrings("%WINBOOTDIR%")
  480. slash = instr(szWinBootDir,"\")
  481. if slash <> 0 then
  482. GetSystemDrivePath = left(szWinBootDir,slash-1)
  483. else
  484. GetSystemDrivePath = "C:"
  485. end if
  486. else
  487. GetSystemDrivePath = szSystemDrive
  488. end if
  489. end function
  490. '------------------------------------------------------------------------------
  491. '
  492. '
  493. '
  494. '------------------------------------------------------------------------------
  495. function RunExternalApplicationDxDiag()
  496. Dim oFS
  497. Dim oWshShell
  498. Set oWshShell = CreateObject("WScript.Shell")
  499. Set oFS = CreateObject("Scripting.FileSystemObject")
  500. szAppName = GetWinSystemPath & "\dxdiag.exe " & GetTempPath & "\dxdiag.txt"
  501. Call BRP_TraceMessage(szAppName)
  502. '
  503. ' Activate the window and display in minimum size
  504. '
  505. RunExternalApplicationDxDiag = oWshShell.Run(szAppName, 1, True)
  506. end function
  507. function RunExternalApplicationCabbit()
  508. Dim oFS
  509. Dim oWshShell
  510. Set oWshShell = CreateObject("WScript.Shell")
  511. Set oFS = CreateObject("Scripting.FileSystemObject")
  512. szAppName = GetWinSystemPath & "\restore\cabbit.exe /f: " & GetTempPath & "\srdata.cab"
  513. Call BRP_TraceMessage(szAppName)
  514. '
  515. ' Activate the window and display in minimum size
  516. '
  517. RunExternalApplicationCabbit = oWshShell.Run(szAppName, 1, True)
  518. end function
  519. '------------------------------------------------------------------------------
  520. '
  521. ' Get build number from string of type X.XX.XXXX xxxx, assumes 4 digit build
  522. ' number and sets g_nCurrentBuild
  523. '
  524. '------------------------------------------------------------------------------
  525. sub BRP_SetOSBuild(szVer)
  526. Dim period, szVer1, szVer2, szVer3
  527. period = instr(szVer,".")
  528. if period <> 0 then
  529. szVer1 = right(szVer,len(szVer)-period)
  530. period = instr(szVer1,".")
  531. if period <> 0 then
  532. szVer2 = right(szVer1,len(szVer1)-period)
  533. szVer3 = left(szVer2,4)
  534. nVer = CInt(szVer3)
  535. g_nCurrentBuild = nVer
  536. end if
  537. end if
  538. end sub
  539. '------------------------------------------------------------------------------
  540. '
  541. '
  542. '
  543. '------------------------------------------------------------------------------
  544. sub BRP_SetStatusMessage(msg)
  545. document.all.Status.innerHTML = msg
  546. end sub
  547. '------------------------------------------------------------------------------
  548. '
  549. '
  550. '
  551. '------------------------------------------------------------------------------
  552. sub BRP_SetProgressMessage(msg)
  553. document.all.Status.innerHTML = msg
  554. end sub
  555. '------------------------------------------------------------------------------
  556. '
  557. '
  558. '
  559. '------------------------------------------------------------------------------
  560. sub BRP_AppendProgressMessage(msg)
  561. document.all.Status.innerHTML = document.all.Status.innerHTML & msg
  562. end sub
  563. '------------------------------------------------------------------------------
  564. '
  565. '
  566. '
  567. '------------------------------------------------------------------------------
  568. sub SetProgress(percent)
  569. L_PctDone_Message = "% done"
  570. Call BRP_SetProgressMessage(percent & L_PctDone_Message)
  571. end sub
  572. '------------------------------------------------------------------------------
  573. '
  574. '
  575. '
  576. '------------------------------------------------------------------------------
  577. sub dc_onProgress(DataCollectionPtr, done, total)
  578. Dim PercentDone
  579. if total = 0 then
  580. ' Avoid divide-by-zero errors.
  581. total = 100
  582. end if
  583. PercentDone = Round(done / total * 90)
  584. Call SetProgress(PercentDone)
  585. end sub
  586. '------------------------------------------------------------------------------
  587. '
  588. '
  589. '
  590. '------------------------------------------------------------------------------
  591. sub dc_onStatusChange(DataCollectionPtr, status)
  592. const L_DataCollection_STATUS_Collecting_Message = "Collecting data"
  593. Dim szDCStatus
  594. select case status
  595. case DC_COLLECTING szDCStatus=L_DataCollection_STATUS_Collecting_Message
  596. end select
  597. Call BRP_SetStatusMessage(szDCStatus)
  598. end sub
  599. '------------------------------------------------------------------------------
  600. '
  601. '
  602. '
  603. '------------------------------------------------------------------------------
  604. sub dc_onComplete(DataCollectionPtr, hresult)
  605. const L_DataCollection_STATUS_NotActive_Message = "Not active"
  606. const L_DataCollection_STATUS_Failed_ErrorMessage = "Failed data collection."
  607. const L_DataCollection_STATUS_Completed_Message = "Creating CAB file."
  608. const L_CollectError_ErrorMessage = "The following error occurred during data collection: "
  609. const L_CollectErrorNoErrNum_ErrorMessage = "There was an error collecting data about your machine. "
  610. const L_UploadOnlyFiles_Message = "Do you want to continue by submitting system files from your machine."
  611. const L_SaveOnlyFiles_Message = "Do you want to continue by saving system files from your machine."
  612. Dim status
  613. Dim szDCStatus, szErrorMessage
  614. status = g_oDc.status
  615. status = CInt(status)
  616. select case status
  617. case DC_NOTACTIVE szDCStatus=L_DataCollection_STATUS_NotActive_Message
  618. case DC_FAILED szDCStatus=L_DataCollection_STATUS_Failed_ErrorMessage
  619. case DC_COMPLETED szDCStatus=L_DataCollection_STATUS_Completed_Message
  620. end select
  621. Call BRP_SetStatusMessage(szDCStatus)
  622. if status = DC_FAILED or status = DC_COMPLETED then
  623. UnregisterDCHandlers
  624. if status = DC_COMPLETED then
  625. CreateCab(False)
  626. else
  627. if hresult <> 0 then
  628. szErrorMessage = L_CollectError_ErrorMessage & Err.description & " (" & Err.number & "). "
  629. else
  630. szErrorMessage = L_CollectErrorNoErrNum_ErrorMessage
  631. end if
  632. Err.Clear
  633. if g_bSubmitIncident = True then
  634. if BRP_Confirm( szErrorMessage & vbCrLf & L_UploadOnlyFiles_Message ) = vbYes then
  635. CreateCab(True)
  636. else
  637. Call BRP_CleanupAfterCancelUpload
  638. end if
  639. else
  640. if g_bSaveIncident = True then
  641. if BRP_Confirm( szErrorMessage & vbCrLf & L_SaveOnlyFiles_Message ) = vbYes then
  642. CreateCab(True)
  643. else
  644. Call BRP_CleanupAfterCancelUpload
  645. end if
  646. end if
  647. end if
  648. end if
  649. end if
  650. end sub
  651. '------------------------------------------------------------------------------
  652. '
  653. '
  654. '
  655. '------------------------------------------------------------------------------
  656. sub cab_onComplete(g_oCab, hr)
  657. const L_CabError_ErrorMessage = "Couldn't create cab file due to error #"
  658. const L_CabErrorStatus_ErrorMessage = "Error creating cab file."
  659. if g_oCab.Status <> 2 then
  660. Call BRP_MessageBox(L_CabError_ErrorMessage & Hex(hr))
  661. Call BRP_SetStatusMessage(L_CabErrorStatus_ErrorMessage)
  662. exit sub
  663. End if
  664. Call SetProgress(100)
  665. '
  666. ' Save incident if required
  667. '
  668. Call ContinueSaveIncident()
  669. '
  670. ' Upload incident if required
  671. '
  672. Call ContinueUploadIncident()
  673. end sub
  674. '------------------------------------------------------------------------------
  675. '
  676. '
  677. '
  678. '------------------------------------------------------------------------------
  679. sub CollectData()
  680. const L_DCFailed_ErrorMessage = "Data collection cannot be carried as the parameter files are missing."
  681. const L_CabStartStatus_Message = "Creating CAB file."
  682. Dim oFS
  683. Dim iSpecNotFound
  684. Dim szUploadXMLFileName
  685. on error resume next
  686. if Not (g_oDc is Nothing) then
  687. set g_oDc = Nothing
  688. end if
  689. Set g_oDc = pchealth.CreateObject_DataCollection
  690. Set oFS = CreateObject("Scripting.FileSystemObject")
  691. iSpecNotFound = FALSE
  692. if document.all.CollectOk.checked then
  693. szUploadXMLFileName = "\bug_upload_collect.XML"
  694. if oFS.FileExists( GetVendorPath & szUploadXMLFileName ) then
  695. g_oDc.MachineData_Dataspec = GetVendorPath & szUploadXMLFileName
  696. '
  697. ' If history file exists then use this else just upload regular files
  698. '
  699. if oFS.FileExists( GetWinPath & "\PCHealth\HelpCtr\Config\DataSpec.XML" ) then
  700. g_oDc.History_Dataspec = GetWinPath & "\PCHealth\HelpCtr\Config\DataSpec.XML"
  701. g_oDc.History_MaxDeltas = 5
  702. else
  703. iSpecNotFound = TRUE
  704. end if
  705. else
  706. iSpecNotFound = TRUE
  707. end if
  708. else
  709. '
  710. ' if a user unchecks data collection, we will not touch any data collection portion,
  711. ' and pretend a data collection failure; server side should check CollectOk flag
  712. ' before read into DCStatus
  713. '
  714. Call BRP_SetStatusMessage(L_CabStartStatus_Message)
  715. Call CreateCab(TRUE)
  716. exit sub
  717. end if
  718. if ( iSpecNotFound ) then
  719. BRP_MessageBox L_DCFailed_ErrorMessage
  720. Call BRP_CleanupAfterCancelUpload
  721. else
  722. RegisterDCHandlers
  723. g_oDc.ExecuteASync
  724. end if
  725. end sub
  726. '------------------------------------------------------------------------------
  727. '
  728. '
  729. '
  730. '------------------------------------------------------------------------------
  731. function CreateIncident(oInc, iDCFailed)
  732. '
  733. ' oInc Incident object
  734. ' iDCFailed False if data collection was OK
  735. ' True if data collection failed
  736. '
  737. const L_GetDataFailedSS_ErrorMessage = "Failed to get collected machine snapshot data."
  738. const L_GetDataFailedHS_ErrorMessage = "Failed to get collected machine history data."
  739. const L_IncCollectError_ErrorMessage = "The following error occurred during data collection: "
  740. Dim oTmpStream, oDict, oSysInfo
  741. Dim misc_fields, field, colon
  742. Dim fDataValid, fHistoryValid
  743. ' Colon-separated list of fields to be stored in the data dictionary
  744. misc_fields = "emailaddr:Title:Severity:Area:Reproducibility:ExpectedBehavior:StepsToRepro"
  745. Set oInc = pchealth.CreateObject_Incident()
  746. 'Prep the description with addtional information (SKU, regression, upgrade information)
  747. dim Final_Description
  748. Final_Description = ""
  749. Final_Description = Final_Description & "Version Installed: " & document.all.SKU.value & chr(13)
  750. Final_Description = Final_Description & "Regression: " & document.all.Regression.value & chr(13)
  751. Final_Description = Final_Description & "Upgrade From: " & document.all.upgrade.value & chr(13)
  752. Final_Description = Final_Description & "=======================================================================" & chr(13)
  753. Final_Description = Final_Description & document.all("Description").value
  754. if document.all.BetaID.value <> "" then
  755. oInc.UserName = document.all.BetaID.value
  756. else
  757. oInc.UserName = 999999 'MAGIC NUMBER (IF they don't have a betaid, use 999999)
  758. end if
  759. oInc.ProductID = "Whistler Beta Bug"
  760. oInc.ProductName = "Whistler"
  761. oInc.ProblemDescription = Final_Description
  762. '
  763. ' Get data stream if data collection did not fail
  764. '
  765. on error resume next
  766. if iDCFailed = False then
  767. '
  768. ' If incident stream exists then get MachineSnapshot else do not
  769. ' and just continue as data collection has already failed and we
  770. ' have to just continue
  771. '
  772. fDataValid = IsMachineDataValid(g_oDc)
  773. fHistoryValid = IsHistoryDataValid(g_oDc)
  774. if fDataValid then
  775. oInc.MachineSnapshot = g_oDc.MachineData_GetStream
  776. if document.all.CollectOk.checked then
  777. if fHistoryValid then
  778. oInc.MachineHistory = g_oDc.History_GetStream
  779. else
  780. Call BRP_SetStatusMessage(L_GetDataFailedHS_ErrorMessage)
  781. iDCFailed = True
  782. end if
  783. end if
  784. else
  785. Call BRP_SetStatusMessage(L_GetDataFailedSS_ErrorMessage)
  786. iDCFailed = True
  787. end if
  788. end if
  789. oInc.UploadType = 0
  790. Set oDict = oInc.Misc
  791. if document.all.BetaID.value <> "" then
  792. oDict.add "betaid", document.all.BetaID.value
  793. else
  794. oDict.add "betaid", "999999" 'MAGIC NUMBER (IF they don't have a betaid, use 999999)
  795. end if
  796. while misc_fields <> ""
  797. colon = instr(misc_fields, ":")
  798. if (colon <> 0) then
  799. field = left(misc_fields, colon-1)
  800. misc_fields = right(misc_fields, len(misc_fields) - colon)
  801. else
  802. field = misc_fields
  803. misc_fields = ""
  804. end if
  805. if len(field) > 0 then
  806. oDict.add field, document.all(field).value
  807. end if
  808. wend
  809. '
  810. ' Change for CollectOk flag
  811. '
  812. if document.all.CollectOk.checked then
  813. oDict.add "CollectOK", "on"
  814. else
  815. oDict.add "CollectOK", "off"
  816. end if
  817. oDict.add "EmailAddr", document.all("Emailaddr").value
  818. oDict.add "AdditionalFiles_Number", document.all.AdditionalFilesScroll_List_UL.childNodes.length
  819. oDict.add "MachineID", g_oUpl.Sig
  820. if document.all.CollectOk.checked then
  821. oDict.add "DCStatus", iDCFailed
  822. else
  823. oDict.add "DCStatus", "0"
  824. end if
  825. Err.Clear
  826. Set oSysInfo = CreateObject("PCHealth.BugRepSysInfo")
  827. if Err.number <> 0 then
  828. Err.Clear
  829. oDict.add "OSBuildNumber", "Unknown"
  830. oDict.add "OSLanguage", "0"
  831. oDict.add "OSUserLocalLCID", "0"
  832. oDict.add "OSSysACP", "0"
  833. else
  834. oDict.add "OSBuildNumber", oSysInfo.GetOSVersionString
  835. oDict.add "OSLanguage", oSysInfo.GetLanguageID
  836. oDict.add "OSUserLocalLCID", oSysInfo.GetUserDefaultLCID
  837. oDict.add "OSSysACP", oSysInfo.GetActiveCP
  838. end if
  839. '
  840. ' Add bug reporting page version
  841. '
  842. oDict.add "BRP_Version", L_BRP_Version & L_BRPBuild_Version
  843. CreateIncident = true
  844. end function
  845. '------------------------------------------------------------------------------
  846. '
  847. '
  848. '
  849. '------------------------------------------------------------------------------
  850. sub upl_onProgressChange(UploadJobPtr, currentSize, totalSize)
  851. const L_BytesSent1_Text = " ( "
  852. const L_BytesSent2_Text = " bytes of "
  853. const L_BytesSent3_Text = " bytes sent )"
  854. if totalSize = 0 then
  855. ' Avoid divide-by-zero errors.
  856. totalSize = 100
  857. end if
  858. Call SetProgress(Round(currentSize / totalSize * 100))
  859. Call BRP_AppendProgressMessage(L_BytesSent1_Text & currentSize & _
  860. L_BytesSent2_Text & totalSize & _
  861. L_BytesSent3_Text)
  862. end sub
  863. '------------------------------------------------------------------------------
  864. '
  865. '
  866. '
  867. '------------------------------------------------------------------------------
  868. sub upl_onStatusChange(UploadJobPtr, status)
  869. Dim stat_str, szTrackingNo, szTrackingTime
  870. const L_Upload_STATUS_NotActive_Message = "Not active"
  871. const L_Upload_STATUS_Active_Message = "Active"
  872. const L_Upload_STATUS_Suspended_Message = "Suspended"
  873. const L_Upload_STATUS_Transmitting_Message = "Transmitting"
  874. const L_Upload_STATUS_Aborted_ErrorMessage = "Retrying upload"
  875. const L_Upload_STATUS_Failed_ErrorMessage = "Failed due to server error."
  876. const L_Upload_STATUS_Completed_Message = "Completed upload"
  877. const L_Upload_STATUS_Deleted_Message = "Deleted"
  878. const L_UploadError_ErrorMessage = "The following error occurred during upload: "
  879. const L_UploadErrorCode_ErrorMessage = "Error : "
  880. const L_UploadErrorNoErrNum_ErrorMessage = "There was an error uploading your bug report."
  881. const L_SubmitToRety_ErrorMessage = "Click submit to retry."
  882. select case status
  883. case UL_NOTACTIVE stat_str=L_Upload_STATUS_NotActive_Message
  884. case UL_ACTIVE stat_str=L_Upload_STATUS_Active_Message
  885. case UL_SUSPENDED stat_str=L_Upload_STATUS_Suspended_Message
  886. case UL_TRANSMITTING stat_str=L_Upload_STATUS_Transmitting_Message
  887. case UL_ABORTED stat_str=L_Upload_STATUS_Aborted_ErrorMessage
  888. case UL_FAILED stat_str=L_Upload_STATUS_Failed_ErrorMessage
  889. case UL_COMPLETED stat_str=L_Upload_STATUS_Completed_Message
  890. case UL_DELETED stat_str=L_Upload_STATUS_Deleted_Message
  891. end select
  892. Call BRP_SetStatusMessage(stat_str)
  893. if status = UL_FAILED or status = UL_COMPLETED then
  894. Call UnregisterUPLHandlers()
  895. if status = UL_COMPLETED then
  896. '
  897. ' Successfully submitted an incident
  898. '
  899. g_bSubmitIncidentSucceeded = TRUE
  900. '
  901. ' No cleanup requird here as a seperate thankyou DIV is being
  902. ' displayed and users cannot navigate back to the page, a
  903. ' cleanup here adds some flicker before the thankyou page
  904. '
  905. szTrackingNo = g_oUpl.Sig & "_" & g_oUpl.JobID
  906. szTrackingTime = g_oUpl.CompleteTime
  907. Call BRP_TraceMessage(szTrackingTime)
  908. Call BRP_TraceMessage(szTrackingNo)
  909. '
  910. ' Make a record of the incident
  911. '
  912. Call RecordIncident(szTrackingTime,szTrackingNo)
  913. '
  914. ' Store valid options
  915. '
  916. Call BRP_WriteIniFile()
  917. document.all.BRP_IncidentTime.innerHTML = szTrackingTime
  918. document.all.BRP_TrackingNo.innerHTML = szTrackingNo
  919. Call BRP_CleanCrashDump()
  920. end if
  921. '
  922. ' Cleanup
  923. '
  924. Call BRP_CleanupAfterCancelUpload
  925. '
  926. ' Delete the upload object
  927. '
  928. g_oUpl.Delete
  929. '
  930. ' Move to thank you page, must remove the InProgess before this
  931. ' or the unload handlers will kick in so above code order is
  932. ' important
  933. '
  934. if status = UL_COMPLETED then
  935. document.all.spanEnterBug.style.display = "none"
  936. document.all.spanThankYou.style.display = ""
  937. exit sub
  938. end if
  939. '
  940. ' Changed to print error code string
  941. '
  942. if g_oUpl.ErrorCode <> 0 then
  943. lErrCode = CLng(g_oUpl.Errorcode)
  944. szError = ERR_GetJobErrorCodeString(lErrCode)
  945. BRP_MessageBox L_UploadError_ErrorMessage & vbCrLf & _
  946. L_UploadErrorCode_ErrorMessage & _
  947. szError & _
  948. vbCrLf & _
  949. L_SubmitToRety_ErrorMessage
  950. else
  951. BRP_MessageBox L_UploadErrorNoErrNum_ErrorMessage & _
  952. L_SubmitToRety_ErrorMessage
  953. end if
  954. end if
  955. end sub
  956. '------------------------------------------------------------------------------
  957. '
  958. '
  959. '
  960. '------------------------------------------------------------------------------
  961. sub ResetUpload()
  962. On Error Resume Next
  963. if not (g_oUpl is Nothing) then
  964. g_oUpl.Delete
  965. end if
  966. Set g_oUpl = Nothing
  967. if not (g_oDc is Nothing) then
  968. g_oDc.Abort
  969. end if
  970. Set g_oDc = Nothing
  971. if not (g_oCab is Nothing) then
  972. g_oCab.Abort
  973. end if
  974. Set g_oCab = Nothing
  975. Call BRP_CleanupAfterCancelUpload()
  976. end sub
  977. '------------------------------------------------------------------------------
  978. '
  979. '
  980. '
  981. '------------------------------------------------------------------------------
  982. sub CancelUpload()
  983. const L_UserCancel_Message = "Cancelled by user"
  984. if g_nInProgress then
  985. Call UnregisterDCHandlers()
  986. Call UnregisterUPLHandlers()
  987. Call UnregisterCabHandler()
  988. Call BRP_SetStatusMessage(L_UserCancel_Message)
  989. Call ResetUpload()
  990. Call SetProgress(0)
  991. end if
  992. end sub
  993. '------------------------------------------------------------------------------
  994. '
  995. '
  996. '
  997. '------------------------------------------------------------------------------
  998. sub CreateCab(iDCFailed)
  999. const L_UploadObjectMissing_ErrorMessage = "An error occurred when trying to create the upload data object."
  1000. const L_FailedIncident_ErrorMessage = "Failed generating incident"
  1001. const L_CantGenerateIncident_ErrorMessage = "There was an error trying to save the incident information."
  1002. const L_CabCompression_ErrorMessage = "An error occurred when trying to compress the CAB file before upload."
  1003. const L_CompressingCab_Message = "Compressing CAB file"
  1004. Dim oInc, oTmpObj, oFS, oFileSelected, oFolder, oFiles, oFile, oLastLogFile
  1005. Dim FileList(), FileListIndex, AddFilesIndex
  1006. Dim iFileCount, AddFilesCount
  1007. Dim iStart
  1008. Dim nCount, dCurDate, dMaxDate, fIsLog
  1009. Dim iMaxSysRootFiles, szSysRootFileName()
  1010. Dim iMaxSysDriveFiles, szSysDriveFileName()
  1011. Dim iMaxCDriveFiles, szCDriveFileName()
  1012. Dim szText
  1013. ReDim FileList(500)
  1014. ReDim szSysRootFileName(20)
  1015. ReDim szSysDriveFileName(20)
  1016. ReDim szCDriveFileName(20)
  1017. AddFilesCount = 0
  1018. Call BRP_TraceMessage("CreateCAB")
  1019. on error resume next
  1020. Err.Clear
  1021. Set oTmpObj = CreateObject("UploadManager.MPCUpload")
  1022. '
  1023. ' Error handler for bad MPCUpload object (missing config.xml)
  1024. '
  1025. if Err.number <> 0 then
  1026. Call BRP_MessageBox(L_UploadObjectMissing_ErrorMessage)
  1027. Call BRP_CleanupAfterCancelUpload()
  1028. exit sub
  1029. end if
  1030. if Not (g_oUpl is Nothing) then
  1031. set g_oUpl = Nothing
  1032. end if
  1033. Set g_oUpl = oTmpObj.CreateJob
  1034. g_oUpl.Sig = ""
  1035. if NOT CreateIncident(oInc, iDCFailed) then
  1036. g_oUpl.Delete
  1037. exit sub
  1038. end if
  1039. Err.Clear
  1040. oInc.GetXML GetTempPath & "\Incident.XML"
  1041. if Err.number <> 0 then
  1042. Err.Clear
  1043. Call BRP_SetStatusMessage(L_FailedIncident_ErrorMessage)
  1044. Call BRP_MessageBox(L_CantGenerateIncident_ErrorMessage)
  1045. Call BRP_CleanupAfterCancelUpload()
  1046. end if
  1047. Set oFS = CreateObject("Scripting.FileSystemObject")
  1048. iFileCount = 0
  1049. if oFS.FileExists( GetTempPath & "\Incident.XML" ) then
  1050. FileList(iFileCount) = GetTempPath & "\Incident.XML"
  1051. iFileCount = iFileCount + 1
  1052. end if
  1053. '
  1054. ' Collect hcupdate.log
  1055. '
  1056. if oFS.FileExists( GetWinPath & "\temp\hcupdate.log" ) then
  1057. FileList(iFileCount) = GetWinPath & "\temp\hcupdate.log"
  1058. iFileCount = iFileCount + 1
  1059. end if
  1060. '
  1061. ' Add XML files to upload
  1062. '
  1063. if oFS.FileExists( GetVendorPath & "\bug_upload_collect.XML" ) then
  1064. FileList(iFileCount) = GetVendorPath & "\bug_upload_collect.XML"
  1065. iFileCount = iFileCount + 1
  1066. end if
  1067. if oFS.FileExists( GetVendorPath & "\bug_upload_nocollect.XML" ) then
  1068. FileList(iFileCount) = GetVendorPath & "\bug_upload_nocollect.XML"
  1069. iFileCount = iFileCount + 1
  1070. end if
  1071. '
  1072. ' Get files from the SYSTEMROOT (Windows) directory
  1073. '
  1074. szSysRootFileName(01) = "\ntbtlog.txt"
  1075. szSysRootFileName(02) = "\setupact.log"
  1076. szSysRootFileName(03) = "\setupapi.log"
  1077. szSysRootFileName(04) = "\setuperr.log"
  1078. szSysRootFileName(05) = "\setuplog.txt"
  1079. szSysRootFileName(06) = "\PCHealth\HelpCtr\Config\DataSpec.XML"
  1080. szSysRootFileName(07) = "\repair\setup.log"
  1081. szSysRootFileName(08) = "\system\sfp\sfplog.txt"
  1082. szSysRootFileName(09) = "\system32\autoexec.nt"
  1083. szSysRootFileName(10) = "\system32\config\appevent.evt"
  1084. szSysRootFileName(11) = "\system32\config\secevent.evt"
  1085. szSysRootFileName(12) = "\system32\config\sysevent.evt"
  1086. szSysRootFileName(13) = "\debug\UserMode\userenv.log"
  1087. szSysRootFileName(14) = "\debug\NetSetup.log"
  1088. szSysRootFileName(15) = "\debug\dcpromo.log"
  1089. szSysRootFileName(16) = "\ntcompat.txt"
  1090. szSysRootFileName(17) = "\upgrade.txt"
  1091. szSysRootFileName(18) = "\system32\$winnt$.inf"
  1092. iMaxSysRootFiles = 19
  1093. for iCount = 0 to iMaxSysRootFiles-1
  1094. if oFS.FileExists( GetSystemRootPath & szSysRootFileName(iCount) ) then
  1095. FileList(iFileCount) = GetSystemRootPath & szSysRootFileName(iCount)
  1096. iFileCount = iFileCount + 1
  1097. end if
  1098. next
  1099. '
  1100. ' Get files from the SYSTEMDRIVE directory
  1101. '
  1102. szSysDriveFileName(00) = "\boot.ini"
  1103. szSysDriveFileName(01) = "\bootex.log"
  1104. szSysDriveFileName(02) = "\sysparse.log"
  1105. iMaxSysDriveFiles = 3
  1106. for iCount = 0 to iMaxSysDriveFiles-1
  1107. if oFS.FileExists( GetSystemDrivePath & szSysDriveFileName(iCount) ) then
  1108. FileList(iFileCount) = GetSystemDrivePath & szSysDriveFileName(iCount)
  1109. iFileCount = iFileCount + 1
  1110. end if
  1111. next
  1112. '
  1113. ' Get files from the WMI LOG directory log files
  1114. '
  1115. if oFS.FolderExists(GetWinSystemPath & "\wbem\logs") then
  1116. Set oFolder = oFS.GetFolder(GetWinSystemPath & "\wbem\logs")
  1117. Set oFiles = oFolder.Files
  1118. for Each oFile in oFiles
  1119. fIsLog = instrrev(lcase(oFile.name), ".log")
  1120. if fIsLog <> 0 then
  1121. if oFS.FileExists( oFile.Path ) then
  1122. FileList(iFileCount) = oFile.Path
  1123. iFileCount = iFileCount + 1
  1124. end if
  1125. end if
  1126. next
  1127. end if
  1128. '
  1129. ' Run DirectX diagnostic utility and collect this information
  1130. '
  1131. 'Call RunExternalApplicationDxDiag()
  1132. 'if oFS.FileExists( GetTempPath & "\dxdiag.txt" ) then
  1133. ' FileList(iFileCount) = GetTempPath & "\dxdiag.txt"
  1134. ' iFileCount = iFileCount + 1
  1135. 'end if
  1136. FileListIndex = iFileCount
  1137. '
  1138. ' Find number of selected files and add them to the list
  1139. ' they exist at the time of selection so not re-checking them
  1140. '
  1141. Set oFileSelected = document.all.AdditionalFilesScroll_List_UL.childNodes
  1142. AddFilesCount = oFileSelected.length
  1143. ReDim Preserve FileList(FileListIndex + AddFilesCount - 1)
  1144. for AddFilesIndex = 0 to (AddFilesCount - 1)
  1145. FileList(FileListIndex) = oFileSelected.item(AddFilesIndex).innerText
  1146. FileListIndex = FileListIndex + 1
  1147. next
  1148. if Not (g_oCab is Nothing) then
  1149. set g_oCab = Nothing
  1150. end if
  1151. Set g_oCab = pchealth.CreateObject_Cabinet
  1152. for AddFilesIndex = 0 to (FileListIndex-1)
  1153. g_oCab.AddFile FileList(AddFilesIndex)
  1154. document.all.ProgressText.innerHTML = "Collecting " & FileList(AddFilesIndex)
  1155. next
  1156. document.all.ProgressText.innerHTML = "&nbsp;"
  1157. '
  1158. ' Register cab completion call back
  1159. '
  1160. RegisterCabHandler
  1161. Call BRP_TraceMessage("Compressing cab")
  1162. Call BRP_SetStatusMessage(L_CompressingCab_Message)
  1163. Err.Clear
  1164. g_oCab.Compress GetTempPath & "\Upload.CAB"
  1165. '
  1166. ' Error trapping for problems during compression
  1167. '
  1168. if Err.number <> 0 then
  1169. Call UnregisterCabHandler()
  1170. Call BRP_MessageBox(L_CabCompression_ErrorMessage)
  1171. Call BRP_CleanupAfterCancelUpload()
  1172. exit sub
  1173. end if
  1174. end sub
  1175. '------------------------------------------------------------------------------
  1176. '
  1177. '
  1178. '
  1179. '------------------------------------------------------------------------------
  1180. sub ContinueSaveIncident()
  1181. const L_SavingIncident_Message = "Saving incident to "
  1182. const L_IncidentSaved_Message = "Incident saved to "
  1183. const L_SaveFailed_ErrorMessage = "Couldn't save incident to "
  1184. const L_CantSaveFile_ErrorMessage = "Can't save incident. Make sure the path is valid and there is free space on the drive."
  1185. const L_SavingFinished_Message = " - File saved"
  1186. Dim oTmpObj, oFS
  1187. Dim szCabFileName
  1188. Err.Clear
  1189. Call BRP_TraceMessage("ContinueSaveIncident")
  1190. if g_bSaveIncident = False then
  1191. exit sub
  1192. end if
  1193. if g_bSubmitIncident = False then
  1194. g_oUpl.Delete
  1195. end if
  1196. Call BRP_SetStatusMessage(L_SavingIncident_Message & document.all.IncidentFilename.value)
  1197. if g_bSubmitIncident = False then
  1198. Call SetProgress(0)
  1199. end if
  1200. Set oFS = CreateObject("Scripting.FileSystemObject")
  1201. on error resume next
  1202. szCabFileName = document.all.IncidentFilename.value
  1203. oFS.CopyFile GetTempPath & "\Upload.CAB", szCabFileName
  1204. if err.number <> 0 then
  1205. Call BRP_SetStatusMessage(L_SaveFailed_ErrorMessage & document.all.IncidentFilename.value)
  1206. Call BRP_MessageBox(L_CantSaveFile_ErrorMessage)
  1207. '
  1208. ' If submitting is not going to happen after this, clean up the buttons
  1209. '
  1210. if g_bSubmitIncident = False then
  1211. Call BRP_CleanupAfterCancelUpload()
  1212. end if
  1213. exit sub
  1214. end if
  1215. '
  1216. ' save succeeded
  1217. '
  1218. g_bSaveIncidentSucceeded = TRUE
  1219. Call BRP_SetStatusMessage(L_IncidentSaved_Message & document.all.IncidentFilename.value)
  1220. '
  1221. ' If submitting is not going to happen after this, clean up the buttons
  1222. '
  1223. if g_bSubmitIncident = False then
  1224. Call SetProgress(100)
  1225. Call BRP_AppendProgressMessage(L_SavingFinished_Message)
  1226. Call BRP_CleanCrashDump()
  1227. '
  1228. ' Make a record of the incident
  1229. '
  1230. Call RecordIncident(Now(),"-")
  1231. '
  1232. ' Store valid options
  1233. '
  1234. Call BRP_WriteIniFile()
  1235. Call BRP_CleanupAfterCancelUpload()
  1236. end if
  1237. end sub
  1238. '------------------------------------------------------------------------------
  1239. '
  1240. '
  1241. '
  1242. '------------------------------------------------------------------------------
  1243. sub ContinueUploadIncident()
  1244. const L_UploadCab_ErrorMessage = "An error occurred when trying to use the upload CAB file."
  1245. const L_UploadStart_ErrorMessage = "An error occurred when trying to start upload."
  1246. Dim oTmpObj, oInc, oFS
  1247. '
  1248. ' Alway trap all errors in the code
  1249. '
  1250. on error resume next
  1251. Err.Clear
  1252. Call BRP_TraceMessage("ContinueUploadIncident")
  1253. if g_bSubmitIncident = False then
  1254. exit sub
  1255. end if
  1256. if BRP_DebugFlag >= 1 then
  1257. g_oUpl.Server = L_ServerNameTest_Address
  1258. else
  1259. g_oUpl.Server = L_ServerName_Address
  1260. end if
  1261. g_oUpl.ProviderID = "ESC"
  1262. g_oUpl.Mode = UL_FOREGROUND
  1263. g_oUpl.PersistToDisk = False
  1264. '
  1265. ' CAB file is already in a compressed state so further compression
  1266. ' is not required (Fixes Bug 102646)
  1267. '
  1268. g_oUpl.Compressed = False
  1269. g_oUpl.History = UL_HISTORY_NONE
  1270. '
  1271. ' We need to zero out the progress indicator, since the Upload object
  1272. ' doesn't always do this (for example, if it aborts immediatly).
  1273. '
  1274. upl_onProgressChange g_oUpl, 0, 100
  1275. Call RegisterUPLHandlers()
  1276. Call BRP_TraceMessage("Get Data from Upload.CAB file")
  1277. g_oUpl.GetDataFromFile GetTempPath & "\Upload.CAB"
  1278. '
  1279. ' Error trapping for invalid parameters has to be carried out here
  1280. ' with proper error code message
  1281. '
  1282. if Err.number <> 0 then
  1283. Call BRP_MessageBox(L_UploadCab_ErrorMessage )
  1284. Call BRP_CleanupAfterCancelUpload()
  1285. exit sub
  1286. end if
  1287. Call BRP_TraceMessage("Start uploading")
  1288. Err.Clear
  1289. g_oUpl.ActivateASync
  1290. '
  1291. ' Error trapping for invalid parameters has to be carried out here
  1292. ' with proper error code message
  1293. '
  1294. if Err.number <> 0 then
  1295. Call BRP_MessageBox(L_UploadStart_ErrorMessage)
  1296. Call BRP_CleanupAfterCancelUpload()
  1297. exit sub
  1298. end if
  1299. end sub
  1300. Function ReadAllTextFile(szFileName)
  1301. Const ForReading = 1, ForWriting = 2
  1302. Dim oFS, oFile
  1303. Set oFS = CreateObject("Scripting.FileSystemObject")
  1304. Set oFile = oFS.OpenTextFile(szFileName, ForReading)
  1305. ReadAllTextFile = oFile.ReadAll
  1306. oFile.Close
  1307. End Function
  1308. '------------------------------------------------------------------------------
  1309. '
  1310. '
  1311. '
  1312. '------------------------------------------------------------------------------
  1313. sub RecordIncident(szTrackingTime,szTrackingNo)
  1314. const L_IncidentDir_FileName = "\incidents"
  1315. const L_IncHead_FileName = "\inc_head.htm"
  1316. const L_IncTail_FileName = "\inc_tail.htm"
  1317. const L_Saved_Message = "Saved"
  1318. const L_Submitted_Message = "Submitted"
  1319. const L_BugReport_Message = "Bug Report"
  1320. const L_ActionsTaken_Message = "Actions taken"
  1321. const L_AddFiles_Message = "Additional Files"
  1322. const L_SubmitTime_Message = "Submit Time"
  1323. const L_TrackingNumber_Message = "Tracking Number"
  1324. const L_SavedFile_Message = "Saved File"
  1325. const L_CSVFileName_Message = "CSV File"
  1326. const L_RecordIncident_ErrorMessage = "An error occurred when recording the incident on the computer."
  1327. Dim oFS, oChannel, oDataFile
  1328. Dim bFileOK
  1329. Dim nAddFiles
  1330. Dim szIncidentAction
  1331. on error resume next
  1332. if g_bSubmitIncidentSucceeded = FALSE AND g_bSaveIncidentSucceeded = FALSE then
  1333. '
  1334. ' no need to record an incident
  1335. '
  1336. exit sub
  1337. end if
  1338. Err.number = 0
  1339. Err.Clear
  1340. bFileOK = True
  1341. Set oFS = CreateObject("Scripting.FileSystemObject")
  1342. if Err.number <> 0 then
  1343. Call BRP_MessageBox(L_RecordIncident_ErrorMessage)
  1344. exit sub
  1345. end if
  1346. '
  1347. ' Create an incidents folder
  1348. '
  1349. if ( oFS.FolderExists( GetVendorPath & L_IncidentDir_FileName )) then
  1350. else
  1351. oFS.CreateFolder( GetVendorPath & L_IncidentDir_FileName )
  1352. end if
  1353. if Err.number <> 0 then
  1354. Call BRP_MessageBox(L_RecordIncident_ErrorMessage)
  1355. exit sub
  1356. end if
  1357. '
  1358. ' Find a unique file name based on number for the HTML file
  1359. '
  1360. nCount = 1
  1361. NewFile = False
  1362. Do
  1363. szFile = nCount & ".htm"
  1364. szFileName = GetVendorPath & L_IncidentDir_FileName & "\" & szFile
  1365. szCSV_File = nCount & ".csv"
  1366. szCSV_FileName = GetVendorPath & L_IncidentDir_FileName & "\" & szCSV_File
  1367. if oFS.FileExists(szFileName) OR oFS.FileExists(szCSV_FileName) then
  1368. nCount = nCount + 1
  1369. else
  1370. NewFile = True
  1371. end if
  1372. Loop While NewFile = False
  1373. if Err.number <> 0 then
  1374. Call BRP_MessageBox(L_RecordIncident_ErrorMessage)
  1375. exit sub
  1376. end if
  1377. szIncidentAction = " "
  1378. if g_bSaveIncidentSucceeded = True then
  1379. szIncidentAction = szIncidentAction & L_Saved_Message
  1380. if g_bSubmitIncidentSucceeded = True then
  1381. szIncidentAction = szIncidentAction & " "
  1382. end if
  1383. end if
  1384. if g_bSubmitIncidentSucceeded = True then
  1385. szIncidentAction = szIncidentAction & L_Submitted_Message
  1386. end if
  1387. '
  1388. ' Create CSV data file
  1389. '
  1390. Err.Clear
  1391. Set oDataFile = oFS.CreateTextFile(szCSV_FileName, False)
  1392. if Err.number <> 0 then
  1393. Call BRP_MessageBox(L_RecordIncident_ErrorMessage)
  1394. exit sub
  1395. end if
  1396. szEscaped = replaceQuotes(Cstr(szTrackingTime))
  1397. oDataFile.Write chr(34) & szEscaped & chr(34) & ","
  1398. szEscaped = replaceQuotes(szTrackingNo)
  1399. oDataFile.Write chr(34) & szEscaped & chr(34) & ","
  1400. if g_bSaveIncident = True then
  1401. szEscaped = replaceQuotes(document.all.IncidentFilename.value)
  1402. oDataFile.Write chr(34) & szEscaped & chr(34) & ","
  1403. end if
  1404. szEscaped = replaceQuotes(szCSV_FileName)
  1405. oDataFile.Write chr(34) & szEscaped & chr(34) & ","
  1406. szEscaped = replaceQuotes(szIncidentAction)
  1407. oDataFile.Write chr(34) & szEscaped & chr(34) & ","
  1408. 'Prep the description with addtional information (SKU, regression, upgrade information)
  1409. dim Final_Description
  1410. Final_Description = ""
  1411. Final_Description = Final_Description & "Version Installed: " & document.all.SKU.value & chr(13)
  1412. Final_Description = Final_Description & "Regression: " & document.all.Regression.value & chr(13)
  1413. Final_Description = Final_Description & "Upgrade From: " & document.all.upgrade.value & chr(13)
  1414. Final_Description = Final_Description & "=======================================================================" & chr(13)
  1415. Final_Description = Final_Description & document.all("Description").value
  1416. misc_fields = "BetaID:Emailaddr:Title:Severity:Area:Reproducibility:Description:ExpectedBehavior:StepsToRepro"
  1417. while misc_fields <> ""
  1418. colon = instr(misc_fields, ":")
  1419. if (colon <> 0) then
  1420. field = left(misc_fields, colon-1)
  1421. misc_fields = right(misc_fields, len(misc_fields) - colon)
  1422. else
  1423. field = misc_fields
  1424. misc_fields = ""
  1425. end if
  1426. if len(field) > 0 then
  1427. if (field = "Description") then
  1428. szEscaped = replaceQuotes(Final_Description)
  1429. else
  1430. szEscaped = replaceQuotes(document.all(field).value)
  1431. end if
  1432. oDataFile.Write chr(34) & szEscaped & chr(34) & ","
  1433. end if
  1434. wend
  1435. nAddFiles = document.all.AdditionalFilesScroll_List_UL.childNodes.length
  1436. szEscaped = replaceQuotes(Cstr(nAddFiles))
  1437. oDataFile.Write chr(34) & szEscaped & chr(34)
  1438. oDataFile.Close
  1439. if Err.number <> 0 then
  1440. Call BRP_MessageBox(L_RecordIncident_ErrorMessage)
  1441. exit sub
  1442. end if
  1443. '
  1444. ' Create HTML data file
  1445. '
  1446. Set oDataFile = oFS.CreateTextFile(szFileName, False)
  1447. if Err.number <> 0 then
  1448. Call BRP_MessageBox(L_RecordIncident_ErrorMessage)
  1449. exit sub
  1450. end if
  1451. if ( oFS.FileExists( GetVendorPath & L_IncHead_FileName )) then
  1452. szHeadString = ReadAllTextFile( GetVendorPath & L_IncHead_FileName )
  1453. oDataFile.Write szHeadString
  1454. end if
  1455. oDataFile.Write "<TR>"
  1456. oDataFile.Write "<TD>"
  1457. oDataFile.Write "<TABLE border=0>"
  1458. oDataFile.Write "<TBODY>"
  1459. oDataFile.Write " <TR>"
  1460. oDataFile.Write " <TD valign=top><B>" & L_SubmitTime_Message & "</B></TD>"
  1461. oDataFile.Write " <TD>" & szTrackingTime & "</TD>"
  1462. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1463. oDataFile.Write " <TR>"
  1464. oDataFile.Write " <TD valign=top><B>" & L_TrackingNumber_Message & "</B></TD>"
  1465. oDataFile.Write " <TD>" & szTrackingNo & "</TD>"
  1466. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1467. if g_bSaveIncident = True then
  1468. oDataFile.Write " <TR>"
  1469. oDataFile.Write " <TD valign=top><B>" & L_SavedFile_Message & "</B></TD>"
  1470. oDataFile.Write " <TD>" & document.all.IncidentFilename.value & "</TD>"
  1471. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1472. end if
  1473. oDataFile.Write " <TR>"
  1474. oDataFile.Write " <TD valign=top><B>" & L_CSVFileName_Message & "</B></TD>"
  1475. oDataFile.Write " <TD>" & szCSV_FileName & "</TD>"
  1476. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1477. szIncidentAction = " "
  1478. if g_bSaveIncidentSucceeded = True then
  1479. szIncidentAction = szIncidentAction & L_Saved_Message
  1480. if g_bSubmitIncidentSucceeded = True then
  1481. szIncidentAction = szIncidentAction & " "
  1482. end if
  1483. end if
  1484. if g_bSubmitIncidentSucceeded = True then
  1485. szIncidentAction = szIncidentAction & L_Submitted_Message
  1486. end if
  1487. oDataFile.Write " <TR>"
  1488. oDataFile.Write " <TD valign=top><B>" & L_ActionsTaken_Message & "</B></TD>"
  1489. oDataFile.Write " <TD>" & szIncidentAction & "</TD>"
  1490. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1491. misc_fields = "BetaID:Emailaddr:Title:Severity:Area:Reproducibility"
  1492. oDataFile.Write " <TR>"
  1493. oDataFile.Write " <TD valign=top><B>" & L_FormField_FIELDNAME_BetaID_TEXT & "</B></TD>"
  1494. oDataFile.Write " <TD>" & document.all("BetaID").value & "</TD>"
  1495. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1496. oDataFile.Write " <TR>"
  1497. oDataFile.Write " <TD valign=top><B>" & L_FormField_FIELDNAME_Emailaddr_TEXT & "</B></TD>"
  1498. oDataFile.Write " <TD>" & document.all("Emailaddr").value & "</TD>"
  1499. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1500. oDataFile.Write " <TR>"
  1501. oDataFile.Write " <TD valign=top><B>" & L_FormField_FIELDNAME_Title_TEXT & "</B></TD>"
  1502. oDataFile.Write " <TD>" & escapeHTMLTag(document.all("Title").value) & "</TD>"
  1503. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1504. oDataFile.Write " <TR>"
  1505. oDataFile.Write " <TD valign=top><B>" & L_FormField_FIELDNAME_Severity_TEXT & "</B></TD>"
  1506. oDataFile.Write " <TD>" & escapeHTMLTag(document.all("Severity").options(document.all("Severity").selectedIndex).text) & "</TD>"
  1507. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1508. oDataFile.Write " <TR>"
  1509. oDataFile.Write " <TD valign=top><B>" & L_FormField_FIELDNAME_Area_TEXT & "</B></TD>"
  1510. oDataFile.Write " <TD>" & escapeHTMLTag(document.all("Area").options(document.all("Area").selectedIndex).text) & "</TD>"
  1511. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1512. oDataFile.Write " <TR>"
  1513. oDataFile.Write " <TD valign=top><B>" & L_FormField_FIELDNAME_Reproducibility_TEXT & "</B></TD>"
  1514. oDataFile.Write " <TD>" & document.all("Reproducibility").options(document.all("Reproducibility").selectedIndex).text & "</TD>"
  1515. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1516. misc_fields = "Description:ExpectedBehavior:StepsToRepro"
  1517. 'Use the Final_Description we built up above.
  1518. oDataFile.Write " <TR>"
  1519. oDataFile.Write " <TD valign=top><B>" & L_FormField_FIELDNAME_Description_TEXT & "</B></TD>"
  1520. oDataFile.Write " <TD>" & escapeHTMLTag(Final_Description) & "</TD>"
  1521. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1522. oDataFile.Write " <TR>"
  1523. oDataFile.Write " <TD valign=top><B>" & L_FormField_FIELDNAME_Expected_TEXT & "</B></TD>"
  1524. oDataFile.Write " <TD>" & escapeHTMLTag(document.all("ExpectedBehavior").value) & "</TD>"
  1525. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1526. oDataFile.Write " <TR>"
  1527. oDataFile.Write " <TD valign=top><B>" & L_FormField_FIELDNAME_Repro_TEXT & "</B></TD>"
  1528. oDataFile.Write " <TD>" & escapeHTMLTag(document.all("StepsToRepro").value) & "</TD>"
  1529. oDataFile.Write " </TR><TR><TD COLSPAN=2><HR></TD></TR>"
  1530. '
  1531. ' Find number of selected files and add them to the list
  1532. ' they exist at the time of selection so not re-checking them
  1533. '
  1534. nAddFiles = document.all.AdditionalFilesScroll_List_UL.childNodes.length
  1535. if nAddFiles > 0 then
  1536. szFileList = " "
  1537. for nCount = 0 to (nAddFiles - 1)
  1538. szFileList = szFileList & document.all.AdditionalFilesScroll_List_UL.childNodes.item(nCount).innerText & "<BR>"
  1539. next
  1540. oDataFile.Write " <TR>"
  1541. oDataFile.Write " <TD valign=top><B>" & L_AddFiles_Message & "</B></TD>"
  1542. oDataFile.Write " <TD>" & szFileList & "</TD>"
  1543. oDataFile.Write " </TR>"
  1544. end if
  1545. oDataFile.Write " </TBODY>"
  1546. oDataFile.Write" </TABLE>"
  1547. oDataFile.Write" </TD>"
  1548. oDataFile.Write" </TR>"
  1549. oDataFile.Write" </TBODY>"
  1550. oDataFile.Write"</TABLE>"
  1551. if ( oFS.FileExists( GetVendorPath & L_IncTail_FileName )) then
  1552. szHeadString = ReadAllTextFile( GetVendorPath & L_IncTail_FileName )
  1553. oDataFile.Write szHeadString
  1554. end if
  1555. oDataFile.Close
  1556. if Err.number <> 0 then
  1557. Call BRP_MessageBox(L_RecordIncident_ErrorMessage)
  1558. exit sub
  1559. end if
  1560. if bFileOK = True then
  1561. Err.number = 0
  1562. Err.Clear
  1563. Set oChannel = pchealth.CreateObject_Channel(L_VendorChannel_Address, L_ProductName_Version)
  1564. szIncidentPath = "hcp://" & L_VendorChannel_Address & L_IncidentDir_FileName & "\" & szFile
  1565. if err.number <> 0 then
  1566. Call BRP_MessageBox(L_RecordIncident_ErrorMessage)
  1567. else
  1568. if Len(szIncidentAction) = 0 then
  1569. szIName = L_BugReport_Message & ": " & document.all.Title.value
  1570. else
  1571. szIName = L_BugReport_Message & " (" & szIncidentAction & "): " & document.all.Title.value
  1572. end if
  1573. '
  1574. ' Number of parameters changed in new RecordIncident
  1575. '
  1576. if g_nCurrentBuild < 2399 then
  1577. oChannel.RecordIncident szIName, szIncidentPath
  1578. else
  1579. oChannel.RecordIncident szIName, szIncidentPath, "", ""
  1580. end if
  1581. end if
  1582. end if
  1583. end sub
  1584. const L_NeedFilename_ErrorMessage = "You must specify a filename."
  1585. const L_FileAlreadySelected_ErrorMessage = " has been added already."
  1586. '------------------------------------------------------------------------------
  1587. '
  1588. '
  1589. '
  1590. '------------------------------------------------------------------------------
  1591. sub StartProcessing()
  1592. const L_OverwriteFile_TEXT = "The file already exists. Do you want to replace the existing file?"
  1593. const L_InvalidFileName_ErrorMessage = "The file name is invalid. Make sure the path is valid and there are no special characters in the file name."
  1594. const L_SingleSubmit_ErrorMessage = "Only one bug may be submitted at a time."
  1595. const L_NeedAction_ErrorMessage = "Select the option to Submit and/or Save the bug report"
  1596. const L_NoFolder1_ErrorMessage = "The folder "
  1597. const L_NoFolder2_ErrorMessage = " does not exist. Do you want to create it?"
  1598. const L_NoCreateFolder_ErrorMessage = "Could not create the folder. Please select a different folder for the bug report."
  1599. Dim oFS ' File System Object
  1600. Dim szCabFileName, szTemp
  1601. Dim slash
  1602. Dim bExist
  1603. g_bSaveIncident = False
  1604. g_bSaveIncidentSucceeded = False
  1605. g_bSubmitIncident = False
  1606. g_bSubmitIncidentSucceeded = False
  1607. g_bFormValid = False
  1608. on error resume next
  1609. if document.all.SaveIncidentNow.checked = False AND document.all.SubmitIncidentNow.checked = False then
  1610. BRP_MessageBox L_NeedAction_ErrorMessage
  1611. exit sub
  1612. end if
  1613. Call ValidateForm()
  1614. '
  1615. ' Form invalid then exit
  1616. '
  1617. if g_bFormValid = False then
  1618. exit sub
  1619. end if
  1620. '
  1621. ' If we have to save the form do checking for valid file now
  1622. '
  1623. if document.all.SaveIncidentNow.checked then
  1624. if document.all.IncidentFilename.value = "" Then
  1625. BRP_MessageBox L_NeedFilename_ErrorMessage
  1626. document.all.IncidentFilename.focus
  1627. exit sub
  1628. end if
  1629. Set oFS = CreateObject("Scripting.FileSystemObject")
  1630. '
  1631. ' Check if the folder exists else create it
  1632. '
  1633. szTemp = document.all.IncidentFilename.value
  1634. slash = instrrev(szTemp,"\")
  1635. if slash <> 0 then
  1636. szTemp = left(szTemp,slash-1)
  1637. if NOT oFS.FolderExists( szTemp ) then
  1638. if BRP_Confirm(L_NoFolder1_ErrorMessage & szTemp & L_NoFolder2_ErrorMessage) = vbNo then
  1639. exit sub
  1640. end if
  1641. Err.Clear
  1642. oFS.CreateFolder( szTemp )
  1643. if Err.number <> 0 then
  1644. BRP_MessageBox L_NoCreateFolder_ErrorMessage
  1645. exit sub
  1646. end if
  1647. end if
  1648. end if
  1649. szCabFileName = document.all.IncidentFilename.value
  1650. Err.Clear
  1651. bExist = oFS.FileExists(szCabFileName)
  1652. if Err.Number <> 0 then
  1653. BRP_MessageBox L_InvalidFileName_ErrorMessage
  1654. exit sub
  1655. end if
  1656. if bExist then
  1657. if BRP_Confirm(L_OverwriteFile_TEXT) = vbNo then
  1658. exit sub
  1659. end if
  1660. end if
  1661. g_bSaveIncident = True
  1662. end if
  1663. if document.all.SubmitIncidentNow.checked then
  1664. g_bSubmitIncident = True
  1665. end if
  1666. '
  1667. ' Form is validated, so call UploadIncident
  1668. '
  1669. if g_nInProgress then
  1670. BRP_MessageBox L_SingleSubmit_ErrorMessage
  1671. exit sub
  1672. else
  1673. g_nInProgress = 1
  1674. document.all.Submit.disabled = 1
  1675. document.all.Cancel.disabled = 0
  1676. end if
  1677. '
  1678. ' Disable all fields so they cannot be changed
  1679. '
  1680. document.all.BugReportingInputFieldsTable.style.display = "none"
  1681. document.all.BugReportingHeadingTable.style.cursor = "wait"
  1682. document.all.BugReportingSubmittingTable.style.cursor = "wait"
  1683. document.all.IncidentFilename.disabled = True
  1684. document.all.SubmitIncidentNow.disabled = True
  1685. document.all.SaveIncidentNow.disabled = True
  1686. '
  1687. ' Start data collection
  1688. '
  1689. Call CollectData()
  1690. end sub
  1691. '------------------------------------------------------------------------------
  1692. '
  1693. '
  1694. '
  1695. '------------------------------------------------------------------------------
  1696. sub BRP_CleanupAfterCancelUpload()
  1697. g_nInProgress = 0
  1698. document.all.Submit.disabled = 0
  1699. document.all.Cancel.disabled = 1
  1700. '
  1701. ' Enable all fields so they cannot be changed
  1702. '
  1703. document.all.BugReportingInputFieldsTable.style.display = ""
  1704. document.all.BugReportingHeadingTable.style.cursor = "auto"
  1705. document.all.BugReportingSubmittingTable.style.cursor = "auto"
  1706. document.all.IncidentFilename.disabled = False
  1707. document.all.SubmitIncidentNow.disabled = False
  1708. document.all.SaveIncidentNow.disabled = False
  1709. document.all.Submit.focus
  1710. end sub
  1711. '------------------------------------------------------------------------------
  1712. '
  1713. '
  1714. '
  1715. '------------------------------------------------------------------------------
  1716. function BRP_Working()
  1717. if g_nInProgress then
  1718. BRP_Working = True
  1719. else
  1720. BRP_Working = False
  1721. end if
  1722. end function
  1723. '------------------------------------------------------------------------------
  1724. '
  1725. ' check if a file exists in the list
  1726. '
  1727. '------------------------------------------------------------------------------
  1728. function AlreadyExist(src, filename)
  1729. Dim AddFilesCount
  1730. Dim AddFilesIndex
  1731. AlreadyExist = FALSE
  1732. AddFilesCount = src.length
  1733. for AddFilesIndex = 0 to (AddFilesCount - 1)
  1734. if 0 = StrComp(src.Options(AddFilesIndex).text, filename) then
  1735. AlreadyExist = TRUE
  1736. exit for
  1737. end if
  1738. next
  1739. end function
  1740. '------------------------------------------------------------------------------
  1741. '
  1742. ' delete an item from the list
  1743. '
  1744. '------------------------------------------------------------------------------
  1745. function DelListElement2(origin, filename)
  1746. Dim FilesCount
  1747. Dim FilesIndex
  1748. DelListElement2 = FALSE
  1749. FilesCount = origin.Options.length
  1750. if ( 0 = FilesCount ) then
  1751. exit function
  1752. end if
  1753. for FilesIndex = 0 to (FilesCount - 1)
  1754. if 0 = StrComp(origin.Options(FilesIndex).value, filename) then
  1755. origin.Options.remove(FilesIndex)
  1756. DelListElement2 = TRUE
  1757. exit for
  1758. end if
  1759. next
  1760. end function
  1761. '------------------------------------------------------------------------------
  1762. '
  1763. ' add a unique item to the list
  1764. '
  1765. '------------------------------------------------------------------------------
  1766. function AddListElement2(origin,filename)
  1767. Dim iFound
  1768. Dim FilesCount
  1769. Dim FilesIndex
  1770. Dim NewOption
  1771. AddListElement2 = FALSE
  1772. FilesCount = origin.Options.length
  1773. iFound = FALSE
  1774. for FilesIndex = 0 to (FilesCount - 1)
  1775. if 0 = StrComp(origin.Options(FilesIndex).value, filename) then
  1776. iFound = TRUE
  1777. exit for
  1778. end if
  1779. next
  1780. if not iFound then
  1781. set NewOption = document.createElement("OPTION")
  1782. NewOption.text = filename
  1783. NewOption.value = filename
  1784. origin.options.add(NewOption)
  1785. end if
  1786. end function
  1787. '------------------------------------------------------------------------------
  1788. '
  1789. ' Add a file to the list
  1790. '
  1791. '------------------------------------------------------------------------------
  1792. sub BRP_ListAddFileForUpload()
  1793. Dim oFS ' File System Object
  1794. Dim szFileName
  1795. Dim AddFilesIndex
  1796. Dim fAlreadyExists
  1797. const L_FileDoesntExist_ErrorMessage = "That file does not exist."
  1798. '
  1799. ' If a file is selected add this to the list
  1800. '
  1801. if document.all.AdditionalFile.value = "" Then
  1802. BRP_MessageBox L_NeedFilename_ErrorMessage
  1803. document.all.AdditionalFile.focus
  1804. exit sub
  1805. end if
  1806. '
  1807. ' Remove leading/trailing spaces
  1808. '
  1809. szFileName = removeLeadingSpace(document.all.AdditionalFile.value)
  1810. fAlreadyExists = LIST_checkIfExists(szFileName)
  1811. if fAlreadyExists then
  1812. BRP_MessageBox document.all.AdditionalFile.value & L_FileAlreadySelected_ErrorMessage
  1813. document.all.AdditionalFile.focus
  1814. exit sub
  1815. end if
  1816. Set oFS = CreateObject("Scripting.FileSystemObject")
  1817. If NOT oFS.FileExists(szFileName) Then
  1818. BRP_MessageBox L_FileDoesntExist_ErrorMessage & _
  1819. "(" & szFileName & ")"
  1820. document.all.AdditionalFile.focus
  1821. exit sub
  1822. end if
  1823. Call LIST_addElement(szFileName)
  1824. document.all.AdditionalFile.focus
  1825. end sub
  1826. '------------------------------------------------------------------------------
  1827. '
  1828. '
  1829. '
  1830. '------------------------------------------------------------------------------
  1831. sub BRP_ListRemoveFileForUpload()
  1832. const L_RemoveSelectFile_ErrorMessage = "Please select a file to be removed."
  1833. const L_NoFilesToRemove_ErrorMessage = "There are no files that can be removed."
  1834. if document.all.AdditionalFilesScroll_List_UL.childNodes.length = 0 then
  1835. Call BRP_MessageBox(L_NoFilesToRemove_ErrorMessage)
  1836. exit sub
  1837. end if
  1838. Call LIST_deleteSelectedElement(L_RemoveSelectFile_ErrorMessage)
  1839. document.all.RemoveFile.focus
  1840. end sub
  1841. '------------------------------------------------------------------------------
  1842. '
  1843. '
  1844. '
  1845. '------------------------------------------------------------------------------
  1846. sub CorrectBetaID()
  1847. Dim szName, period
  1848. '
  1849. ' Remove anything after a .
  1850. '
  1851. period = instr(window.event.srcElement.value,".")
  1852. if period <> 0 then
  1853. szName = left(window.event.srcElement.value, period-1)
  1854. window.event.srcElement.value = left(window.event.srcElement.value, period-1)
  1855. end if
  1856. end sub
  1857. '------------------------------------------------------------------------------
  1858. '
  1859. '
  1860. '
  1861. '------------------------------------------------------------------------------
  1862. function CreateNameCABInternal(szName)
  1863. Dim szName1, szName2
  1864. '
  1865. ' Clean title
  1866. '
  1867. szName = removeLeadingSpace(szName)
  1868. szName = removeTrailingSpace(szName)
  1869. szName = validateFilename(szName,"_")
  1870. szName = g_SettingsLastPath & "\" & szName & ".cab"
  1871. document.all.IncidentFilename.value = szName
  1872. CreateNameCABInternal = TRUE
  1873. end function
  1874. '------------------------------------------------------------------------------
  1875. '
  1876. '
  1877. '
  1878. '------------------------------------------------------------------------------
  1879. sub CreateNameCAB(limit)
  1880. ValidateTextLength(limit)
  1881. CreateNameCABInternal(window.event.srcElement.value)
  1882. end sub
  1883. '------------------------------------------------------------------------------
  1884. '
  1885. '
  1886. '
  1887. '------------------------------------------------------------------------------
  1888. sub CorrectNameCAB()
  1889. Dim szName, szFileName, period, slash
  1890. '
  1891. ' Remove leading/trailing spaces
  1892. '
  1893. szFileName = window.event.srcElement.value
  1894. szFileName = removeLeadingSpace(window.event.srcElement.value)
  1895. szFileName = removeTrailingSpace(szFileName)
  1896. '
  1897. ' Add the .cab extension and only use the last period
  1898. '
  1899. period = instrrev(szFileName,".")
  1900. if period <> 0 then
  1901. szName = left(szFileName, period-1)
  1902. szNameR = right(szFileName, len(szFileName)-period)
  1903. if szName = "" then
  1904. window.event.srcElement.value = "bugdata.cab"
  1905. else
  1906. if szNameR = "cab" then
  1907. '
  1908. ' Its OK for now
  1909. '
  1910. else
  1911. szFileName = szFileName & ".cab"
  1912. end if
  1913. end if
  1914. else
  1915. if szFileName = "" then
  1916. szFileName = "bugdata" & ".cab"
  1917. else
  1918. slash = instrrev(szFileName,"\")
  1919. if slash <> 0 then
  1920. szNameR = right(szFileName, len(szFileName)-slash)
  1921. if szNameR = "" then
  1922. szFileName = szFileName & "bugdata.cab"
  1923. else
  1924. szFileName = szFileName & ".cab"
  1925. end if
  1926. else
  1927. szFileName = szFileName & ".cab"
  1928. end if
  1929. end if
  1930. end if
  1931. '
  1932. ' validate filename and append validated file name
  1933. '
  1934. slash = instrrev(szFileName,"\")
  1935. if slash <> 0 then
  1936. szNameR = right(szFileName, len(szFileName)-slash)
  1937. szNameR = validateFileName(szNameR,"_")
  1938. szFileName = left(szFileName,slash-1)
  1939. szFileName = szFileName & "\" & szNameR
  1940. else
  1941. szFileName = validateFileName(szFileName,"_")
  1942. end if
  1943. window.event.srcElement.value = szFileName
  1944. end sub
  1945. '------------------------------------------------------------------------------
  1946. '
  1947. '
  1948. '
  1949. '------------------------------------------------------------------------------
  1950. sub BRP_InitializeAll()
  1951. Const ForReading = 1, ForWriting = 2
  1952. const L_InitializeAll_ErrorMessage = "An error occurred when initializing bug reporting on your computer."
  1953. const L_InitFile_FileName = "brp_init.ini"
  1954. Dim oFS, oDataFile
  1955. Dim fInitialize
  1956. fInitialize = True
  1957. on error resume next
  1958. Err.Clear
  1959. Set oFS = CreateObject("Scripting.FileSystemObject")
  1960. if Err.number <> 0 then
  1961. Call BRP_MessageBox(L_InitializeAll_ErrorMessage)
  1962. exit sub
  1963. end if
  1964. if ( oFS.FileExists( GetVendorPath & "\" & L_InitFile_FileName )) then
  1965. '
  1966. ' Read current version from ini file and if older then do init
  1967. '
  1968. Set oDataFile = oFS.OpenTextFile((GetVendorPath & "\" & L_InitFile_FileName), ForReading)
  1969. szIniVersion = oDataFile.ReadLine
  1970. oDataFile.Close
  1971. nBrpVer = CInt(L_BRPBuild_Version)
  1972. nIniVer = CInt(szIniVersion)
  1973. '
  1974. ' If bug reporting and ini file have same version then its OK
  1975. ' else just initialize
  1976. '
  1977. if nBrpVer = nIniVer then
  1978. fInitialize = False
  1979. else
  1980. fInitialize = True
  1981. end if
  1982. end if
  1983. if fInitialize = True then
  1984. '
  1985. ' Write current version to bug reporting ini file
  1986. '
  1987. Set oDataFile = oFS.CreateTextFile((GetVendorPath & "\" & L_InitFile_FileName), True)
  1988. oDataFile.Write L_BRPBuild_Version
  1989. oDataFile.Close
  1990. end if
  1991. end sub
  1992. '------------------------------------------------------------------------------
  1993. '
  1994. '
  1995. '
  1996. '------------------------------------------------------------------------------
  1997. sub BRP_SetInterfaceBasedOnDefaults()
  1998. Dim oFS ' File System Object
  1999. const L_DataFile_FileName = "\bugdata.cab"
  2000. const L_Kernel_Message = "Kernel"
  2001. const L_SomeApp_Message = "Some Application"
  2002. const L_Crashed_Message = " Crashed"
  2003. const L_Description_Message = " crashed."
  2004. const L_Expected_Message = " should not crash."
  2005. const L_CrashDumpFileMissing_ErrorMessage = "CrashDumpFile is missing"
  2006. const L_CrashRepro_Message = "[Repro steps will help us diagnosing the problem]"
  2007. on error resume next
  2008. Err.Clear
  2009. '
  2010. ' Set defaults which are stored
  2011. '
  2012. document.all.BetaID.value = g_SettingsBetaId
  2013. document.all.Emailaddr_Input.value = g_SettingsEmail
  2014. if g_SettingsSKU <> "" Then
  2015. document.all.SKU.value = g_SettingsSKU
  2016. end if
  2017. if g_SettingsUpgrad <> "" Then
  2018. document.all.upgrade.value = g_SettingsUpgrade
  2019. end if
  2020. document.all.IncidentFilename.value = g_SettingsLastPath & L_DataFile_FileName
  2021. document.all.CollectOk.checked = g_SettingsShareInfo
  2022. document.all.SubmitIncidentNow.checked = g_SettingsSubmitNow
  2023. document.all.SaveIncidentNow.checked = g_SettingsSaveToDisk
  2024. if Len(g_CrashDumpFile) > 0 then
  2025. '
  2026. ' we are invoked by a fault handler
  2027. '
  2028. document.all.Severity.value = "1" 'we need to add one more type for BSOD
  2029. if Len(g_CrashApp) <= 0 then
  2030. '
  2031. ' in case g_CrashApp is blank
  2032. '
  2033. if g_KernelCrash then
  2034. g_CrashApp = L_Kernel_Message
  2035. else
  2036. g_CrashApp = L_SomeApp_Message
  2037. end if
  2038. end if
  2039. document.all.Title.value = g_CrashApp & L_Crashed_Message
  2040. Call CreateNameCABInternal(document.all.Title.value)
  2041. document.all.Description.value = g_CrashApp & L_Description_Message
  2042. document.all.ExpectedBehavior.value = g_CrashApp & L_Expected_Message
  2043. document.all.Area.value = "Other"
  2044. document.all.Reproducibility.value = "Sometimes"
  2045. document.all.StepsToRepro.value = L_CrashRepro_Message
  2046. '
  2047. ' add file to the attachment list
  2048. '
  2049. Set oFS = CreateObject("Scripting.FileSystemObject")
  2050. if Err.number <> 0 then
  2051. Call BRP_MessageBox(L_InitializeAll_ErrorMessage)
  2052. exit sub
  2053. end if
  2054. if oFS.FileExists( g_CrashDumpFile ) then
  2055. Call LIST_addElement(g_CrashDumpFile)
  2056. else
  2057. '
  2058. ' for debugging only. Will take it out once fault handler is code complete
  2059. '
  2060. Call BRP_MessageBox(L_CrashDumpFileMissing_ErrorMessage & ": " & g_CrashDumpFile)
  2061. end if
  2062. '
  2063. 'for debugging only
  2064. '
  2065. 'Call BRP_MessageBox("crashdump: " & g_CrashDumpFile & " crashapp: " & g_Crashapp & " bsod:" & cint(g_kernelcrash) & " deldump: " & cint(g_deletecrashdump))
  2066. '
  2067. end if
  2068. end sub
  2069. '------------------------------------------------------------------------------
  2070. '
  2071. '
  2072. '
  2073. '------------------------------------------------------------------------------
  2074. sub BRP_WriteIniFile()
  2075. Const ForReading = 1, ForWriting = 2
  2076. const L_InitializeIni_ErrorMessage = "An error occurred when initializing bug reporting on your computer."
  2077. const L_WIniFile_FileName = "brp_settings.ini"
  2078. Dim oFS, oDataFile
  2079. Dim szTemp, nTemp, slash
  2080. on error resume next
  2081. Err.Clear
  2082. Set oFS = CreateObject("Scripting.FileSystemObject")
  2083. if Err.number <> 0 then
  2084. exit sub
  2085. end if
  2086. '
  2087. ' Create ini file
  2088. '
  2089. Set oDataFile = oFS.CreateTextFile((GetVendorPath & "\" & L_WIniFile_FileName), True)
  2090. oDataFile.Write document.all.BetaID.value & vbCrLf
  2091. oDataFile.Write document.all.Emailaddr_Input.value & vbCrLf
  2092. oDataFile.Write document.all.SKU.value & vbCrLf
  2093. oDataFile.Write document.all.upgrade.value & vbCrLf
  2094. szTemp = document.all.IncidentFilename.value
  2095. slash = instrrev(szTemp,"\")
  2096. if slash <> 0 then
  2097. szTemp = left(szTemp,slash-1)
  2098. oDataFile.Write szTemp & vbCrLf
  2099. else
  2100. oDataFile.Write GetSystemDrivePath() & vbCrLf
  2101. end if
  2102. nTemp = 0
  2103. if document.all.CollectOk.checked then
  2104. nTemp = 1
  2105. end if
  2106. oDataFile.Write nTemp & vbCrLf
  2107. nTemp = 0
  2108. if document.all.SubmitIncidentNow.checked then
  2109. nTemp = 1
  2110. end if
  2111. oDataFile.Write nTemp & vbCrLf
  2112. nTemp = 0
  2113. if document.all.SaveIncidentNow.checked then
  2114. nTemp = 1
  2115. end if
  2116. oDataFile.Write nTemp & vbCrLf
  2117. '
  2118. ' Close file
  2119. '
  2120. oDataFile.Close
  2121. end sub
  2122. '------------------------------------------------------------------------------
  2123. '
  2124. '
  2125. '
  2126. '------------------------------------------------------------------------------
  2127. sub BRP_CleanCrashDump()
  2128. Dim oFS
  2129. On Error Resume Next
  2130. Err.Clear
  2131. if Len(g_CrashDumpFile) > 0 AND g_DeleteCrashDump then
  2132. Set oFS = CreateObject("Scripting.FileSystemObject")
  2133. if Err.number <> 0 then
  2134. Call BRP_MessageBox(L_InitializeAll_ErrorMessage)
  2135. exit sub
  2136. end if
  2137. call oFS.DeleteFile(g_CrashDumpFile, TRUE)
  2138. '
  2139. ' end of bug filing, reset the global variable
  2140. '
  2141. end if
  2142. g_DeleteCrashDump = FALSE
  2143. g_CrashDumpFile = ""
  2144. g_CrashApp = ""
  2145. g_KernelCrash = FALSE
  2146. end sub
  2147. '------------------------------------------------------------------------------
  2148. '
  2149. '
  2150. '
  2151. '------------------------------------------------------------------------------
  2152. sub BRP_ReadIniFile()
  2153. Const ForReading = 1, ForWriting = 2
  2154. const L_IniFile_FileName = "brp_settings.ini"
  2155. const L_BugReport_FileName = "whistler_bugs"
  2156. Dim oFS, oDataFile
  2157. Dim szTemp, nTemp
  2158. Dim szHRef
  2159. Dim nQueryStr, nQueryStart
  2160. Dim QueryStrings
  2161. on error resume next
  2162. Err.Clear
  2163. Set oFS = CreateObject("Scripting.FileSystemObject")
  2164. if Err.number <> 0 then
  2165. exit sub
  2166. end if
  2167. g_SettingsBetaId = ""
  2168. g_SettingsLastPath = GetSystemDrivePath() & "\" & L_BugReport_FileName
  2169. g_SettingsShareInfo = True
  2170. g_SettingsSubmitNow = True
  2171. g_SettingsSaveToDisk = True
  2172. Call BRP_SetInterfaceBasedOnDefaults()
  2173. if ( oFS.FileExists( GetVendorPath & "\" & L_IniFile_FileName )) then
  2174. '
  2175. ' Read current version from ini file and if older then do init
  2176. '
  2177. Set oDataFile = oFS.OpenTextFile((GetVendorPath & "\" & L_IniFile_FileName), ForReading)
  2178. if Err.number <> 0 then
  2179. exit sub
  2180. end if
  2181. '
  2182. ' Read beta id
  2183. '
  2184. szTemp = oDataFile.ReadLine
  2185. if Err.number <> 0 then
  2186. oDataFile.close
  2187. Call BRP_SetInterfaceBasedOnDefaults()
  2188. exit sub
  2189. end if
  2190. g_SettingsBetaId = CDbl(szTemp)
  2191. if g_SettingsBetaId < 0 OR g_SettingsBetaId > 2147483647 then
  2192. g_SettingsBetaId = ""
  2193. end if
  2194. '
  2195. ' Read Email Addr.
  2196. '
  2197. Err.Clear
  2198. szTemp = oDataFile.ReadLine
  2199. if Err.number <> 0 then
  2200. oDataFile.close
  2201. Call BRP_SetInterfaceBasedOnDefaults()
  2202. exit sub
  2203. end if
  2204. g_SettingsEmail = szTemp
  2205. if g_SettingsEmail = "" or len(g_SettingsEmail) < 6 OR (instr(g_SettingsEmail,"@") = 0) or (instr(g_SettingsEmail,".") = 0) then
  2206. g_SettingsEmail = ""
  2207. end if
  2208. '
  2209. ' Read SKU.
  2210. '
  2211. Err.Clear
  2212. szTemp = oDataFile.ReadLine
  2213. if Err.number <> 0 then
  2214. oDataFile.close
  2215. Call BRP_SetInterfaceBasedOnDefaults()
  2216. exit sub
  2217. end if
  2218. g_SettingsSKU = szTemp
  2219. '
  2220. ' Read upgrade.
  2221. '
  2222. Err.Clear
  2223. szTemp = oDataFile.ReadLine
  2224. if Err.number <> 0 then
  2225. oDataFile.close
  2226. Call BRP_SetInterfaceBasedOnDefaults()
  2227. exit sub
  2228. end if
  2229. g_SettingsUpgrade = szTemp
  2230. '
  2231. ' Read last path
  2232. '
  2233. szTemp = oDataFile.ReadLine
  2234. if Err.number <> 0 then
  2235. oDataFile.close
  2236. Call BRP_SetInterfaceBasedOnDefaults()
  2237. exit sub
  2238. end if
  2239. if oFS.FolderExists( szTemp ) then
  2240. g_SettingsLastPath = szTemp
  2241. end if
  2242. '
  2243. ' Read share info
  2244. '
  2245. szTemp = oDataFile.ReadLine
  2246. if Err.number <> 0 then
  2247. oDataFile.close
  2248. Call BRP_SetInterfaceBasedOnDefaults()
  2249. exit sub
  2250. end if
  2251. g_SettingsShareInfo = CBool(szTemp)
  2252. '
  2253. ' Read submit now
  2254. '
  2255. szTemp = oDataFile.ReadLine
  2256. if Err.number <> 0 then
  2257. oDataFile.close
  2258. Call BRP_SetInterfaceBasedOnDefaults()
  2259. exit sub
  2260. end if
  2261. g_SettingsSubmitNow = CBool(szTemp)
  2262. '
  2263. ' Read save to disk
  2264. '
  2265. szTemp = oDataFile.ReadLine
  2266. if Err.number <> 0 then
  2267. oDataFile.close
  2268. Call BRP_SetInterfaceBasedOnDefaults()
  2269. exit sub
  2270. end if
  2271. g_SettingsSaveToDisk = CBool(szTemp)
  2272. '
  2273. ' Close file
  2274. '
  2275. oDataFile.Close
  2276. end if
  2277. g_CrashApp = ""
  2278. g_KernelCrash = FALSE
  2279. g_CrashDumpFile = ""
  2280. g_DeleteCrashDump = FALSE
  2281. '
  2282. ' when the bug reporting page is invoked as:
  2283. ' hcp://CN=Microsoft Corporation,L=Redmond,S=Washington,C=US/bugrep.htm?_
  2284. ' CrashApp=Microsoft Word&DumpFile=d:\temp\common files\t.dmp&bsod=1&deldump=1
  2285. ' href contains:
  2286. ' hcp://CN=Microsoft%20Corporation,L=Redmond,S=Washington,C=US/bugrep.htm?_
  2287. ' CrashApp=Microsoft%20Word&DumpFile=d:\temp\common%20files\t.dmp&bsod=1&deldump=1
  2288. '
  2289. szHRef = LCase(window.location.href)
  2290. nQueryStart = InStr(1, szHRef, "?", 1)
  2291. if (nQueryStart > 1) then
  2292. szHRef = Mid(szHRef, nQueryStart + 1)
  2293. QueryStrings = Split(szHRef, "&", -1, 1)
  2294. '
  2295. ' check the query strings
  2296. '
  2297. for each QueryStr in QueryStrings
  2298. nQueryStr = InStr(1, QueryStr, "dumpfile=", 1)
  2299. if (nQueryStr >= 1) then
  2300. '
  2301. ' found DumpFile
  2302. '
  2303. nQueryStr = nQueryStr + len("dumpfile=")
  2304. g_CrashDumpFile = createUnEscapedString(Mid(QueryStr, nQueryStr))
  2305. else
  2306. nQueryStr = InStr(1, QueryStr, "crashapp=", 1)
  2307. if (nQueryStr >= 1) then
  2308. '
  2309. ' found CrashApp
  2310. '
  2311. nQueryStr = nQueryStr + len("crashapp=")
  2312. g_CrashApp = createUnEscapedString(Mid(QueryStr, nQueryStr))
  2313. else
  2314. nQueryStr = InStr(1, QueryStr, "bsod=", 1)
  2315. if (nQueryStr >= 1) then
  2316. '
  2317. ' found BSOD
  2318. '
  2319. nQueryStr = nQueryStr + len("bsod=")
  2320. if ("1" = Mid(QueryStr, nQueryStr)) then
  2321. g_KernelCrash = TRUE
  2322. else
  2323. g_kernelCrash = FALSE
  2324. end if
  2325. else
  2326. nQueryStr = InStr(1, QueryStr, "deldump=", 1)
  2327. if (nQueryStr >= 1) then
  2328. '
  2329. ' found deldump
  2330. '
  2331. nQueryStr = nQueryStr + len("deldump=")
  2332. if ("1" = Mid(QueryStr, nQueryStr)) then
  2333. g_DeleteCrashDump = TRUE
  2334. else
  2335. g_DeleteCrashDump = FALSE
  2336. end if
  2337. end if
  2338. end if
  2339. end if
  2340. end if
  2341. next
  2342. end if
  2343. Call BRP_SetInterfaceBasedOnDefaults()
  2344. end sub
  2345. '------------------------------------------------------------------------------
  2346. '
  2347. '
  2348. '
  2349. '------------------------------------------------------------------------------
  2350. sub BRP_OnProblemTypeChange()
  2351. end sub
  2352. '------------------------------------------------------------------------------
  2353. '
  2354. '
  2355. '
  2356. '------------------------------------------------------------------------------
  2357. sub BRP_OnAreaChange()
  2358. Dim szArea
  2359. on error resume next
  2360. szArea = document.all.Area.value
  2361. Select Case szArea
  2362. case "Application Game Compatiblity", "Display Video Multimonitor", "Hardware Drivers PlugAndPlay USB", "Multimedia DirectX DVD Cameras"
  2363. document.all.DirectXInfo.style.display = ""
  2364. call DelListElement2(document.all.ActualFiles_List,"%windir%\system.dat")
  2365. call DelListElement2(document.all.ActualFiles_List,"%windir%\user.dat")
  2366. call DelListElement2(document.all.ActualFiles_List,"%windir%\classes.dat")
  2367. case "Setup"
  2368. document.all.DirectXInfo.style.display = "none"
  2369. call AddListElement2(document.all.ActualFiles_List.options,"%windir%\system.dat")
  2370. call AddListElement2(document.all.ActualFiles_List.options,"%windir%\user.dat")
  2371. call AddListElement2(document.all.ActualFiles_List.options,"%windir%\classes.dat")
  2372. case Else
  2373. document.all.DirectXInfo.style.display = "none"
  2374. call DelListElement2(document.all.ActualFiles_List,"%windir%\system.dat")
  2375. call DelListElement2(document.all.ActualFiles_List,"%windir%\user.dat")
  2376. call DelListElement2(document.all.ActualFiles_List,"%windir%\classes.dat")
  2377. end select
  2378. end sub
  2379. </script>
  2380. <SCRIPT LANGUAGE="VBScript" FOR=window EVENT=onload>
  2381. const L_BugReportVerStr_Message = "Bug Reporting Page Version &nbsp;"
  2382. on error resume next
  2383. '
  2384. ' Set page version
  2385. '
  2386. document.all.BRP_VersionText.innerHTML = L_BugReportVerStr_Message & L_BRP_Version & L_BRPBuild_Version
  2387. '
  2388. ' Initialize all
  2389. '
  2390. Call BRP_InitializeAll()
  2391. Err.Clear
  2392. Set oSysInfo = CreateObject("PCHealth.BugRepSysInfo")
  2393. if Err.number = 0 then
  2394. document.all.OS_Name.innerHTML = "Windows Whistler"
  2395. document.all.OS_Version.innerHTML = oSysInfo.GetOSVersionString
  2396. document.all.OS_Language.innerHTML = oSysInfo.GetLanguageID
  2397. document.all.OS_UserLCID.innerHTML = oSysInfo.GetUserDefaultLCID
  2398. document.all.OS_SysACP.innerHTML = oSysInfo.GetActiveCP
  2399. Call BRP_SetOSBuild(oSysInfo.GetOSVersionString)
  2400. end if
  2401. Err.Clear
  2402. '
  2403. ' Read initialization file
  2404. '
  2405. Call BRP_ReadIniFile()
  2406. '
  2407. ' Set focus to betaid after page load
  2408. '
  2409. if Len(g_CrashDumpFile) > 0 then
  2410. '
  2411. ' we are invoked by a crash handler
  2412. '
  2413. document.all.Submit.focus
  2414. else
  2415. document.all.BetaID.focus
  2416. end if
  2417. '
  2418. ' CODEWORK:
  2419. ' bug#102991: pchealth.DestinationReachable always reports FALSE, even though IE
  2420. ' connects to www.microsoft.com without any problem. Once bug#102991 is fixed, the following
  2421. ' three lines need to be uncommented.
  2422. '
  2423. 'if NOT pchealth.DestinationReachable(g_TestingURL) then
  2424. ' Call BRP_MessageBox(L_NoConnection1_ErrorMessage & vbNewLine & vbNewLine & L_NoConnection2_ErrorMessage)
  2425. 'end if
  2426. </SCRIPT>
  2427. <SCRIPT LANGUAGE="JavaScript">
  2428. function Beta_GetPaste()
  2429. {
  2430. var sPasteContents = window.clipboardData.getData("Text");
  2431. var bResult;
  2432. var L_BetaIDPasteError_Message = "Beta ID must be a number.";
  2433. bResult = Beta_CheckNumeric(sPasteContents);
  2434. if(bResult == false)
  2435. {
  2436. BRP_MessageBox(L_BetaIDPasteError_Message);
  2437. return false;
  2438. }
  2439. }
  2440. function Beta_CheckNumeric(strContents)
  2441. {
  2442. var NumStr = "0123456789";
  2443. var i;
  2444. var length = strContents.length;
  2445. for(i = 0 ; i < length;i++)
  2446. {
  2447. if(-1 == NumStr.indexOf(strContents.charAt(i)))
  2448. {
  2449. return false;
  2450. }
  2451. }
  2452. }
  2453. </script>
  2454. <script language=JavaScript>
  2455. //
  2456. // UPL - Upload handler
  2457. // DC - Data collection handler
  2458. // CAB - Cab file creation handler
  2459. //
  2460. var DCHandlerEnabled = 0;
  2461. var UPLHandlerEnabled = 0;
  2462. var CabHandlerEnabled = 0;
  2463. //
  2464. // Check if machine data stream is not NULL given a data collection object
  2465. //
  2466. function IsMachineDataValid(ptrDc)
  2467. {
  2468. var stream = ptrDc.MachineData_GetStream() ;
  2469. if ( stream != null ) {
  2470. return true ;
  2471. }
  2472. else
  2473. return false ;
  2474. }
  2475. //
  2476. // Check if machine history data stream is not NULL given a data collection object
  2477. //
  2478. function IsHistoryDataValid(ptrDc)
  2479. {
  2480. var stream = ptrDc.History_GetStream() ;
  2481. if ( stream != null ) {
  2482. return true ;
  2483. }
  2484. else
  2485. return false ;
  2486. }
  2487. //
  2488. // Create escaped string
  2489. //
  2490. function createEscapedString(str)
  2491. {
  2492. return escape(str);
  2493. }
  2494. //
  2495. // Create unescaped string
  2496. //
  2497. function createUnEscapedString(str)
  2498. {
  2499. return unescape(str);
  2500. }
  2501. function dc_onStatusChangeJS(DataCollectionPtr, status)
  2502. {
  2503. if (DCHandlerEnabled == 1) {
  2504. dc_onStatusChange(DataCollectionPtr, status);
  2505. }
  2506. }
  2507. function dc_onProgressJS(DataCollectionPtr, done, total)
  2508. {
  2509. if (DCHandlerEnabled == 1) {
  2510. dc_onProgress(DataCollectionPtr, done, total);
  2511. }
  2512. }
  2513. function dc_onCompleteJS(DataCollectionPtr, hresult)
  2514. {
  2515. if (DCHandlerEnabled == 1) {
  2516. dc_onComplete(DataCollectionPtr, hresult);
  2517. }
  2518. }
  2519. function RegisterDCHandlers()
  2520. {
  2521. DCHandlerEnabled = 1;
  2522. g_oDc.onStatusChange = dc_onStatusChangeJS;
  2523. g_oDc.onProgress = dc_onProgressJS;
  2524. g_oDc.onComplete = dc_onCompleteJS;
  2525. }
  2526. function UnregisterDCHandlers()
  2527. {
  2528. DCHandlerEnabled = 0;
  2529. }
  2530. function upl_onStatusChangeJS(UploadJobPtr, status)
  2531. {
  2532. if (UPLHandlerEnabled == 1) {
  2533. upl_onStatusChange(UploadJobPtr, status);
  2534. }
  2535. }
  2536. function upl_onProgressChangeJS(UploadJobPtr, currentSize, totalSize)
  2537. {
  2538. if (UPLHandlerEnabled == 1) {
  2539. upl_onProgressChange(UploadJobPtr, currentSize, totalSize);
  2540. }
  2541. }
  2542. function RegisterUPLHandlers()
  2543. {
  2544. UPLHandlerEnabled = 1;
  2545. g_oUpl.onStatusChange = upl_onStatusChangeJS;
  2546. g_oUpl.onProgressChange = upl_onProgressChangeJS;
  2547. }
  2548. function UnregisterUPLHandlers()
  2549. {
  2550. UPLHandlerEnabled = 0;
  2551. }
  2552. function cab_onCompleteJS(CabPtr, hresult)
  2553. {
  2554. if (CabHandlerEnabled == 1) {
  2555. cab_onComplete(CabPtr, hresult)
  2556. }
  2557. }
  2558. function RegisterCabHandler()
  2559. {
  2560. CabHandlerEnabled = 1;
  2561. g_oCab.onComplete = cab_onCompleteJS;
  2562. }
  2563. function UnregisterCabHandler()
  2564. {
  2565. CabHandlerEnabled = 0;
  2566. }
  2567. function UnloadHandler()
  2568. {
  2569. CancelUpload();
  2570. }
  2571. function UnloadHandlerMsg()
  2572. {
  2573. var L_CancelUpload1_Message = "Currently collecting and uploading bug report information.\n";
  2574. var L_CancelUpload2_Message = "Navigating away will cancel the current collection/upload.";
  2575. if ( BRP_Working() ) {
  2576. return ( L_CancelUpload1_Message + L_CancelUpload2_Message) ;
  2577. }
  2578. else
  2579. return ;
  2580. }
  2581. </script>
  2582. <!--
  2583. New stuff in bug reporting page
  2584. -->
  2585. <STYLE TYPE="text/css">
  2586. .styleExpandable
  2587. {
  2588. COLOR: blue;
  2589. CURSOR: hand ;
  2590. FONT: bold 10pt Trebuchet MS, Tahoma, arial
  2591. }
  2592. .styleExpanded
  2593. {
  2594. COLOR:black;
  2595. FONT: bold 8pt Trebuchet MS, Tahoma, arial
  2596. }
  2597. .styleCollapsed
  2598. {
  2599. DISPLAY: none
  2600. }
  2601. </STYLE>
  2602. <SCRIPT LANGUAGE="JavaScript">
  2603. function LIST_addElement(src)
  2604. {
  2605. var oEntry = document.createElement("LI");
  2606. var oList = document.all.AdditionalFilesScroll_List_UL ;
  2607. oEntry.innerHTML = "\<DIV DIR=LTR NOWRAP TABINDEX=0\>" + src + "\<\/DIV\>";
  2608. //
  2609. // Append element to list
  2610. //
  2611. oList.appendChild(oEntry);
  2612. }
  2613. function LIST_deleteSelectedElement(errmsg)
  2614. {
  2615. var oList = document.all.AdditionalFilesScroll_List_UL ;
  2616. var oNodes = oList.childNodes ;
  2617. var bElemDel= false ;
  2618. if ( oNodes.length > 0 ) {
  2619. for ( i = 0 ; i < oNodes.length ; i++ ) {
  2620. if ( oNodes.item(i) == oList.selected ) {
  2621. oNodes.item(i).removeNode(true);
  2622. bElemDel=true ;
  2623. break ;
  2624. };
  2625. }
  2626. if (bElemDel == false)
  2627. {
  2628. BRP_MessageBox(errmsg);
  2629. }
  2630. };
  2631. }
  2632. function LIST_checkIfExists(src)
  2633. {
  2634. var oList = document.all.AdditionalFilesScroll_List_UL ;
  2635. var oNodes = oList.childNodes ;
  2636. var fExists = false ;
  2637. if ( oNodes.length > 0 ) {
  2638. for ( i = 0 ; i < oNodes.length ; i++ ) {
  2639. if ( oNodes.item(i).innerText == src )
  2640. {
  2641. fExists = true ;
  2642. break ;
  2643. };
  2644. }
  2645. };
  2646. return fExists ;
  2647. }
  2648. function LIST_fnOnSelectStart()
  2649. {
  2650. window.event.returnValue = false
  2651. window.event.cancelBubble = true
  2652. return false ;
  2653. }
  2654. function LIST_checkParent(src, tag) {
  2655. while ("HTML" != src.tagName) {
  2656. if (tag == src.tagName)
  2657. return src;
  2658. src = src.parentElement;
  2659. }
  2660. return null;
  2661. }
  2662. function LIST_selectItem(list) {
  2663. var el = LIST_checkParent(event.srcElement, "LI");
  2664. if ( !el )
  2665. return ;
  2666. if ("LI" == el.tagName) {
  2667. if (null != list.selected)
  2668. list.selected.className = "";
  2669. if (list.selected != el) {
  2670. el.className = "selected";
  2671. list.selected = el;
  2672. }
  2673. else
  2674. list.selected = null;
  2675. }
  2676. }
  2677. function LIST_selectItemKey(list)
  2678. {
  2679. if ( event.keyCode == 13 || event.keyCode == 32 ) {
  2680. window.event.returnValue=true;
  2681. window.event.cancelBubble=true;
  2682. LIST_selectItem(list);
  2683. }
  2684. else {
  2685. event.returnValue=false;
  2686. };
  2687. }
  2688. </Script>
  2689. <SCRIPT LANGUAGE="JavaScript">
  2690. //
  2691. // Generic display code for collapsing outlines
  2692. //
  2693. function outliner() {
  2694. // Get Child element.
  2695. var child =
  2696. document.all[event.srcElement.getAttribute("child",
  2697. false)];
  2698. // If the child element exists, expand or collapse it.
  2699. if (null != child)
  2700. child.className = child.className == "styleCollapsed" ?
  2701. "styleExpanded" : "styleCollapsed";
  2702. }
  2703. //
  2704. // Add an element to the list box with origin being the
  2705. // starting select element in the DOM
  2706. //
  2707. function addListElement(origin,text,value)
  2708. {
  2709. var el = document.createElement("OPTION");
  2710. el.text = text;
  2711. el.value = value;
  2712. origin.options.add(el);
  2713. }
  2714. //
  2715. // Delete an element from a single select list and if no
  2716. // element found then show the error message, if multiple
  2717. // items are selected the code exists after the first instance
  2718. //
  2719. function delListElement(origin,errmsg)
  2720. {
  2721. var iRemove = 0 ;
  2722. var iFound = false ;
  2723. if ( origin.length == 0 ) {
  2724. return ;
  2725. }
  2726. for ( var iLoop = 0 ; iLoop < origin.length ; iLoop++ ) {
  2727. if ( origin[iLoop].selected ) {
  2728. iRemove = iLoop ;
  2729. iFound = true ;
  2730. break ;
  2731. }
  2732. }
  2733. if ( iFound ) {
  2734. origin.remove(iRemove);
  2735. }
  2736. else {
  2737. BRP_MessageBox(errmsg);
  2738. }
  2739. }
  2740. //
  2741. // Generic display code for expanding text area sizes
  2742. //
  2743. function increaseRows() {
  2744. // Get Child element.
  2745. var expand_child =
  2746. document.all[event.srcElement.getAttribute("expand_child",
  2747. false)];
  2748. // If the expand_child element exists, expand or collapse it.
  2749. if (null != expand_child) {
  2750. expand_child.rows = Math.min(expand_child.rows_max,
  2751. (expand_child.rows + 3 ));
  2752. }
  2753. }
  2754. //
  2755. // Generic display code for expanding text area sizes
  2756. //
  2757. function decreaseRows() {
  2758. // Get Child element.
  2759. var expand_child =
  2760. document.all[event.srcElement.getAttribute("expand_child",
  2761. false)];
  2762. // If the expand_child element exists, expand or collapse it.
  2763. if (null != expand_child) {
  2764. expand_child.rows = Math.max(expand_child.rows_min,
  2765. (expand_child.rows - 3 ));
  2766. }
  2767. }
  2768. //
  2769. // strip leading spaces
  2770. //
  2771. function removeLeadingSpace(str)
  2772. {
  2773. var text = str.replace(/^\s*/,"");
  2774. return text;
  2775. }
  2776. //
  2777. // strip leading spaces
  2778. //
  2779. function removeTrailingSpace(str)
  2780. {
  2781. var text = str.replace(/\s*$/,"");
  2782. return text;
  2783. }
  2784. //
  2785. // change quotations to single quotes (LocStudio has problems with this)
  2786. //
  2787. function replaceQuotes(str)
  2788. {
  2789. var text = str.replace(/\"/gi,"'"); // "
  2790. return text;
  2791. }
  2792. //
  2793. // return valid filename
  2794. //
  2795. function validateFilename(str,rep)
  2796. {
  2797. var st1 = str.replace(/:|>|<|\||\?|\*|\\|\/|\"/g,rep); // : < > | ? * \ / "
  2798. return st1;
  2799. }
  2800. function escapeHTMLTag(str)
  2801. {
  2802. var st11, stl2
  2803. stl1 = str.replace(/</g,"&lt;");
  2804. st12 = stl1.replace(/>/g,"&gt;");
  2805. return st12;
  2806. }
  2807. </SCRIPT>
  2808. </HEAD>
  2809. <!--
  2810. Body of the document for bug reporting page
  2811. -->
  2812. <BODY aLink=#000080 bgColor=#ffffff language=JavaScript leftMargin=0
  2813. link=#000080 onbeforeunload="return UnloadHandlerMsg();" onclick=outliner();
  2814. onunload=UnloadHandler(); topMargin=0 vLink=#000080
  2815. MARGINHEIGHT="0" MARGINWIDTH="0"><!--
  2816. Bug reporting span of the page
  2817. -->
  2818. <DIV id=spanEnterBug>
  2819. <FORM action=probrep.asp id=form1 method=post name=form1>
  2820. <TABLE border=0 borderColor=#ff0000 cellPadding=0 cellSpacing=0 width=600>
  2821. <TBODY>
  2822. <TR>
  2823. <TD align=left id=Heading_Data_Cell vAlign=top>
  2824. <TABLE border=0 id=BugReportingHeadingTable>
  2825. <TBODY>
  2826. <TR>
  2827. <TD>
  2828. <P align=left id=Page_Heading_Paragraph1>
  2829. <DIV class=PageHeading id=Page_Heading_Text
  2830. >Report a bug to the Windows Whistler Beta team.
  2831. </DIV><BR>
  2832. <DIV class=Instructions id=Welcome_Instructions_Text
  2833. >Welcome to the Whistler Bug Reporting page.
  2834. Submitting good bug reports is a vital part of testing Windows
  2835. Whistler. Good bug reports are clear, concise, and descriptive.
  2836. Before&nbsp;you file a bug we ask that you visit our web site at <A
  2837. href="http://windowsbeta.microsoft.com"
  2838. >http://windowsbeta.microsoft.com</A> to register at
  2839. the site and learn about the resources available to you during the
  2840. beta. <br><br></DIV>
  2841. <DIV id="Comments_info_Div">
  2842. <strong>If your feedback is a suggestion or comment about the UI or an error message,
  2843. consider using the "Comments?" link at the top of each window instead of filing a problem
  2844. report.</strong><BR><BR>
  2845. </div>
  2846. <!--
  2847. <DIV id="Welcome_BRP_Updates">
  2848. To download updates for the bug reporting application visit
  2849. <a href="http://winbeta.microsoft.com/bugrep">winbeta.microsoft.com/bugrep</a>.
  2850. <br>
  2851. <br>
  2852. </DIV>
  2853. -->
  2854. <P></P>
  2855. <P align=left id=Page_Heading_Paragraph2>
  2856. <div class=Instructions id=Welcome_ThankYou_Text
  2857. >Thanks for your feedback! </DIV>
  2858. <P></P>
  2859. <p>
  2860. <div class=Instructions id=Welcome_Closing_Text
  2861. >&nbsp;- The Windows Whistler Beta Team </DIV>
  2862. <P></P>
  2863. <p align=right id=BetaID_Paragraph
  2864. valign="center"></P></TD></TR></TBODY></TABLE>
  2865. <TABLE border=0 id=BugReportingInputFieldsTable>
  2866. <TBODY><!--
  2867. Section I
  2868. -->
  2869. <TR>
  2870. <TD align=left id=Space_Cell vAlign=center><IMG alt=Space border=0 id=SpaceImage src="space.gif" width=150 > </TD>
  2871. <TD>&nbsp;</TD></TR>
  2872. <TR>
  2873. <TD colSpan=2>
  2874. <HR>
  2875. <TABLE border=0>
  2876. <TBODY>
  2877. <TR>
  2878. <TD><IMG alt="Star graphic" border=0 id=IMG_Star_Bullet1 src="star.gif" ></TD>
  2879. <TD class=StepHeading id=Section1_Heading
  2880. >Section I: Contact
  2881. Information</TD></TR></TBODY></TABLE><BR></TD>
  2882. <TR>
  2883. <td align=right id=BetaID_Cell vAlign=center>
  2884. <div class=ItemHeadingSmall id=BetaID_Label
  2885. >Beta ID :</DIV></TD>
  2886. <TD><INPUT class=PlainTextSmall id=BetaID_Input
  2887. language=JavaScript maxLength=250 name=BetaID onblur=CorrectBetaID()
  2888. onkeypress="if ((event.keyCode < 48 || event.keyCode > 57)) event.returnValue=false;"
  2889. onpaste="return Beta_GetPaste();" size=40>
  2890. </TD></TR>
  2891. <TR>
  2892. <td align=right id=BetaID_Cell vAlign=center>
  2893. <div class=ItemHeadingSmall id=BetaID_Label
  2894. >Email Address :</DIV></TD>
  2895. <TD><INPUT class=PlainTextSmall
  2896. id=Emailaddr_Input maxLength=250 name=Emailaddr size=40
  2897. > </TD></TR><!--
  2898. Section II
  2899. -->
  2900. <TR>
  2901. <TD colSpan=2>
  2902. <HR>
  2903. <TABLE border=0>
  2904. <TBODY>
  2905. <TR>
  2906. <TD><IMG alt="Star graphic" border=0 id=IMG_Star_Bullet2 src="star.gif" ></TD>
  2907. <TD class=StepHeading id=Section2_Heading
  2908. >Section II: Issue
  2909. Information</TD></TR></TBODY></TABLE><BR></TD>
  2910. <TR>
  2911. <TD align=right id=Title_Paragraph>
  2912. <div class=ItemHeadingSmall id=Title_Label
  2913. >Problem Title:</DIV></TD>
  2914. <TD><INPUT class=PlainTextSmall id=Title_Input
  2915. maxLength=500 name=Title onblur=CreateNameCAB(200) size=60
  2916. ></TD></TR>
  2917. <TR>
  2918. <TD align=right id=Title_Example_Spacer></TD>
  2919. <TD bgColor=#ffffd0>
  2920. <div class=PlainTextSmall id=Title_Example><ID
  2921. id=fooExample1><B
  2922. >Example:</B></ID> <ID id=fooExampleString1
  2923. >"Script error instead of printer
  2924. properties"</ID></DIV></TD></TR>
  2925. <TR>
  2926. <TD align=right id=Severity_Cell>
  2927. <div class=ItemHeadingSmall id=Severity_Label >
  2928. Problem Type:
  2929. </DIV>
  2930. </TD>
  2931. <TD>
  2932. <SELECT class=PlainTextSmall name=Severity onchange=BRP_OnProblemTypeChange()>
  2933. <OPTION id=Severity_SelectOne selected value=NA>=== Select One ===</OPTION>
  2934. <OPTION id=Severity_CrashHang value=1 >Crash or Hang</OPTION>
  2935. <OPTION id=Severity_FuncImpaired value=2>Functionality Impaired</OPTION>
  2936. <OPTION id=Severity_Cosmetic value=3>Minor / Cosmetic</OPTION>
  2937. <OPTION id=Severity_Trivial value=4>Trivial</OPTION>
  2938. </SELECT>
  2939. </TD>
  2940. </TR>
  2941. <TR>
  2942. <TD align=right id=Area_Cell>
  2943. <div class=ItemHeadingSmall id=Area_Label
  2944. >Area:</DIV>
  2945. </TD>
  2946. <TD><SELECT class=PlainTextSmall name=Area onchange=BRP_OnAreaChange() type="ListBox">
  2947. <OPTION id=Area_SelectOne selected value=NA>=== Select One ===</OPTION>
  2948. <option ID=Admin_tools value="Admin Tools">Administration Tools / Computer Management</OPTION>
  2949. <option ID=Any_Suggestion value="Any Suggestion">Any Suggestion or Wish</OPTION>
  2950. <option ID=App_Game_Compat value="Application Game Compatiblity">Application & Game Compatibility</OPTION>
  2951. <option ID=Bug_REporting value="Bug Reporting Tools Website">Bug Reporting Tools / Web site</OPTION>
  2952. <option ID=Clustering value="Clustering">Clustering</OPTION>
  2953. <option ID=Dial_up_ISDN value="Dial-up ISDN Infrared">Dial-up / ISDN / Infrared</OPTION>
  2954. <option ID=Display value="Display Video Multimonitor">Display / Video / Multi monitor</OPTION>
  2955. <option ID=Help_Docs value="Help Documentation">Help / Documentation</OPTION>
  2956. <option ID=Fast value="Fast User Switching">Fast User Switching</OPTION>
  2957. <option ID=Fax value="Fax">Fax</OPTION>
  2958. <option ID=Hardware value="Hardware Drivers PlugAndPlay USB">Hardware / Drivers / Plug & Play / USB</OPTION>
  2959. <option ID=HCT value="WHQL Test">HCT</OPTION>
  2960. <option ID=IE value="IE OE Netmeeting">Internet Explorer / Outlook Express / Netmeeting</OPTION>
  2961. <option ID=Inet_connection_sharing value="Internet Connection Sharing">Internet Connection Sharing</OPTION>
  2962. <option ID=IIS value="Internet Information Server">Internet Information Server</OPTION>
  2963. <option ID=Multimedia value="Multimedia DirectX DVD Cameras">Multimedia / DirectX / DVD / Cameras</OPTION>
  2964. <option ID=Networking_Admin value="Networking - Administration Tool">Networking - Administration Tools</OPTION>
  2965. <option ID=Networking_AD value="Networking - Active DirectoryDNS">Networking - Active Directory / DNS</OPTION>
  2966. <option ID=Networking_FS value="Networking - File Sharing">Networking - File Sharing</OPTION>
  2967. <option ID=Networking_R value="Networking - Routing">Networking - Routing</OPTION>
  2968. <option ID=Networking_H value="Networking - Hardware">Networking - Hardware</OPTION>
  2969. <option ID=Networking_O value="Networking - Other">Networking - Other</OPTION>
  2970. <option ID=Other value="Other">Other</OPTION>
  2971. <option ID=PowerMgmt value="Power Management ACPI">Power Management / ACPI</OPTION>
  2972. <option ID=Printing value="Printing">Printing</OPTION>
  2973. <option ID=Reginal value="Regional Settings">Regional Settings</OPTION>
  2974. <option ID=SDK_DDK value="SDK DDK API">SDK / DDK / API</OPTION>
  2975. <option ID=Security value="Security">Security</OPTION>
  2976. <option ID=Setup value="Setup Upgrade">Setup / Upgrade</OPTION>
  2977. <option ID=Shell value="Shell User Interface">Shell / User Interface</OPTION>
  2978. <option ID=Support_tools value="Support Tools Registry">Support Tools / Registry</OPTION>
  2979. <option ID=Remote_Desktop value="Terminal Services Remote Desktop">Terminal Services / Remote Desktop</OPTION>
  2980. </SELECT>
  2981. </TD>
  2982. </TR>
  2983. <TR>
  2984. <TD align=right id=Reproducibility_Cell>
  2985. <div class=ItemHeadingSmall id=Reproducibility_Label
  2986. >This Problem: </DIV></TD>
  2987. <TD>
  2988. <SELECT class=PlainTextSmall name=Reproducibility type="ListBox">
  2989. <OPTION id=Reproducibility_Always selected value=Always>Always Happens</OPTION>
  2990. <OPTION id=Reproducibility_Sometimes value=Sometimes >Sometimes Happens</OPTION>
  2991. <OPTION id=Reproducibility_Once value=Once>Happened Once</OPTION>
  2992. </SELECT>
  2993. <id id="and">and</id>
  2994. <SELECT class=PlainTextSmall name=regression type="ListBox">
  2995. <OPTION id=regression_SelectOne selected value=NA>=== Select One ===</OPTION>
  2996. <OPTION id=regression_None value=NoRegression >is new to this build of Windows.</OPTION>
  2997. <OPTION id=regression_PrevBeta value=PreviousBetaBuild >exists in previous builds of this beta.</OPTION>
  2998. <OPTION id=regression_Win2000 value=FromWin2000 >exists in Windows 2000.</OPTION>
  2999. <OPTION id=regression_WinNT value=FromWinNT >exists in Windows NT.</OPTION>
  3000. <OPTION id=regression_Win9xMe value=FromWin9xMe >exists in Windows 9x or Me.</OPTION>
  3001. <OPTION id=regression_Win9xMe value=unknown >Don't know.</OPTION>
  3002. </TD>
  3003. </TR>
  3004. <TR>
  3005. <TD align=right id=sku_Cell>
  3006. <div class=ItemHeadingSmall id=sku_Label
  3007. >This Windows install is the </DIV></TD>
  3008. <TD>
  3009. <SELECT class=PlainTextSmall name=SKU type="ListBox">
  3010. <OPTION id=SKU_SelectOne selected value=NA>=== Select One ===</OPTION>
  3011. <OPTION id=SKU_Personal value=Personal >Home (Personal) edition</OPTION>
  3012. <OPTION id=SKU_Professional value=Professional >Professional edition</OPTION>
  3013. <OPTION id=SKU_Server value=Server >Server edition</OPTION>
  3014. <OPTION id=SKU_ADSServer value=ADSServer >Advanced Server edition</OPTION>
  3015. <OPTION id=SKU_64Professional value=64Professional >Windows 2000 64 Professional edition</OPTION>
  3016. <OPTION id=SKU_64Server value=64Server >Windows 2000 64 Server edition</OPTION>
  3017. <OPTION id=SKU_DTCServer value=DTCServer >Windows 2000 Datacenter Server edition</OPTION>
  3018. </SELECT>
  3019. </TD>
  3020. </TR>
  3021. <TR>
  3022. <TD align=right id=upgrade_Cell>
  3023. <div class=ItemHeadingSmall id=upgrade_Label
  3024. >This install is </DIV></TD>
  3025. <TD>
  3026. <SELECT class=PlainTextSmall name=upgrade type="ListBox">
  3027. <OPTION id=upgrade_SelectOne selected value=NA>=== Select One ===</OPTION>
  3028. <OPTION id=upgrade_not value=NotAnUpgrade >not an upgrade (clean install).</OPTION>
  3029. <OPTION id=upgrade_Previous value=PreviousBuild >an upgrade from a previous build of this beta.</OPTION>
  3030. <OPTION id=upgrade_Win2000 value=Win2000 >an upgrade from Windows 2000.</OPTION>
  3031. <OPTION id=upgrade_WinNT value=WinNT >an upgrade from Windows NT.</OPTION>
  3032. <OPTION id=upgrade_Win9x value=Win9x >an upgrade from Windows 9x.</OPTION>
  3033. <OPTION id=upgrade_WinMe value=WinMe >an upgrade from Windows Me.</OPTION>
  3034. </SELECT>
  3035. </TD>
  3036. </TR>
  3037. <TR>
  3038. <TD align=right id=Description_Cell vAlign=top>
  3039. <div class=ItemHeadingSmall id=Description_Label
  3040. >Describe the problem:</DIV></TD>
  3041. <TD vAlign=top>
  3042. <TABLE>
  3043. <TBODY>
  3044. <TR>
  3045. <TD vAlign=top><TEXTAREA class=PlainTextSmall cols=60 id=Description_TextArea name=Description onblur=ValidateTextLength(1250) rows=6 wrap=virtual rows_min="6" rows_max="500"></TEXTAREA>
  3046. </TD>
  3047. <TD vAlign=top>
  3048. <TABLE>
  3049. <TBODY>
  3050. <TR>
  3051. <TD><IMG alt="Size down" border=0 id=Description_ContractButton onclick=decreaseRows() src="size_down.gif" expand_child="Description_TextArea"> </TD></TR>
  3052. <TR>
  3053. <TD><IMG alt="Size up" border=0 id=Description_ExpandButton onclick=increaseRows() src="size_up.gif" expand_child="Description_TextArea">
  3054. </TD></TR></TBODY></TABLE></TD></TD></TR></TBODY></TABLE></TD></TR>
  3055. <TR>
  3056. <TD id=Filler_Cell1>&nbsp;</TD>
  3057. <TD bgColor=#ffffd0>
  3058. <div class=PlainTextSmall id=Description_Example
  3059. ><ID id=fooExample2><B
  3060. >Example:</B></ID> <ID id=fooExampleString2
  3061. >"I tried to right-click a printer in the
  3062. Printers folder and got a script error."</ID> </DIV></TD></TR>
  3063. <tr>
  3064. <TD align=right id=ExpectedBehavior_Cell vAlign=top
  3065. >
  3066. <div class=ItemHeadingSmall id=ExpectedBehavior_Label
  3067. >What did you expect to happen:</DIV></TD>
  3068. <TD vAlign=top>
  3069. <TABLE>
  3070. <TBODY>
  3071. <TR>
  3072. <TD vAlign=top><TEXTAREA class=PlainTextSmall cols=60 id=ExpectedBehavior_TextArea name=ExpectedBehavior onblur=ValidateTextLength(500) rows=6 wrap=virtual rows_min="6" rows_max="500"></TEXTAREA>
  3073. </TD>
  3074. <TD vAlign=top>
  3075. <TABLE>
  3076. <TBODY>
  3077. <TR>
  3078. <TD><IMG alt="Size down" border=0 id=ExpectedBehavior_ContractButton onclick=decreaseRows() src="size_down.gif" expand_child="ExpectedBehavior_TextArea"> </TD></TR>
  3079. <TR>
  3080. <TD><IMG alt="Size up" border=0 id=ExpectedBehavior_ExpandButton onclick=increaseRows() src="size_up.gif" expand_child="ExpectedBehavior_TextArea">
  3081. </TD></TR></TBODY></TABLE></TD></TD></TR></TBODY></TABLE></TD></TR>
  3082. <tr>
  3083. <TD id=Filler_Cell2>&nbsp;</TD>
  3084. <TD bgColor=#ffffd0>
  3085. <div class=PlainTextSmall id=ExpectedBehavior_Example
  3086. ><ID id=fooExample3><B
  3087. >Example:</B></ID> <ID id=fooExampleString3
  3088. >"The context menu should have been
  3089. displayed."</ID></DIV></TD></TR>
  3090. <TR>
  3091. <TD align=right id=StepsToRepro_Cell vAlign=top
  3092. ><div class=ItemHeadingSmall
  3093. id=StepsToRepro_Label>Enter the steps required
  3094. to reproduce the problem: </DIV></TD>
  3095. <TD vAlign=top>
  3096. <TABLE>
  3097. <TBODY>
  3098. <TR>
  3099. <TD vAlign=top><TEXTAREA class=PlainTextSmall cols=60 id=StepsToRepro_TextArea name=StepsToRepro onblur=ValidateTextLength(1250) rows=6 wrap=virtual rows_min="6" rows_max="500"></TEXTAREA>
  3100. </TD>
  3101. <TD vAlign=top>
  3102. <TABLE>
  3103. <TBODY>
  3104. <TR>
  3105. <TD><IMG alt="Size down" border=0 id=StepsToRepro_ContractButton onclick=decreaseRows() src="size_down.gif" expand_child="StepsToRepro_TextArea"> </TD></TR>
  3106. <TR>
  3107. <TD><IMG alt="Size up" border=0 id=StepsToRepro_ExpandButton onclick=increaseRows() src="size_up.gif" expand_child="StepsToRepro_TextArea">
  3108. </TD></TR></TBODY></TABLE></TD></TD></TR></TBODY></TABLE></TD></TR>
  3109. <TR>
  3110. <TD id=Filler_Cell3>&nbsp;</TD>
  3111. <TD bgColor=#ffffd0>
  3112. <div class=PlainTextSmall id=StepsToRepro_Example
  3113. ><ID id=fooExample4><B
  3114. >Example:</B></ID> <ID id=fooExampleString4
  3115. >"1: From Start menu, choose Settings 2: Choose
  3116. Printers folder, 3: Right-click on a printer"</ID>
  3117. </DIV>
  3118. </TD>
  3119. </TR>
  3120. <!--
  3121. Section III
  3122. -->
  3123. <TR>
  3124. <TD colSpan=2>
  3125. <HR>
  3126. <TABLE border=0>
  3127. <TBODY>
  3128. <TR>
  3129. <TD><IMG alt="Star graphic" border=0 id=IMG_Star_Bullet3 src="star.gif" ></TD>
  3130. <TD class=StepHeading id=Section3_Heading
  3131. >Section III: System
  3132. Information</TD></TR></TBODY></TABLE><BR>
  3133. <TABLE border=0>
  3134. <TBODY>
  3135. <TR>
  3136. <TD class=PlainTextSmall id=OS_NameText
  3137. >OS Name</TD>
  3138. <TD class=PlainTextSmall id=OS_Name
  3139. >&nbsp;</TD></TR>
  3140. <TR>
  3141. <TD class=PlainTextSmall dir=ltr id=OS_VersionText
  3142. >OS Version</TD>
  3143. <TD class=PlainTextSmall id=OS_Version
  3144. >&nbsp;</TD></TR>
  3145. <TR>
  3146. <TD class=PlainTextSmall id=OS_LanguageText
  3147. >OS Language Codes</TD>
  3148. <TD class=PlainTextSmall id=OS_Parm>
  3149. <TABLE border=0>
  3150. <TBODY>
  3151. <TR>
  3152. <TD class=PlainTextSmall id=OS_Language
  3153. >&nbsp;</TD>
  3154. <TD>-</TD>
  3155. <TD class=PlainTextSmall id=OS_UserLCID
  3156. >&nbsp;</TD>
  3157. <TD>-</TD>
  3158. <TD class=PlainTextSmall id=OS_SysACP
  3159. >&nbsp;</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR
  3160. >
  3161. <div class=Instructions id=CollectOk_Text>When
  3162. you click <b>Submit</B>, detailed information
  3163. about your system will be collected to help us reproduce your
  3164. problem.</DIV><br><!--
  3165. Data for list of files shown as an expandable link
  3166. -->
  3167. <div class=styleExpandable id=CollectedFiles_ExpandLink
  3168. child="CollectedFiles_List">Display list of files
  3169. collected</DIV>
  3170. <div class=styleCollapsed id=CollectedFiles_List
  3171. style="MARGIN-LEFT: 30pt"><SELECT class=PlainTextSmall dir=ltr id=ActualFiles_List size=22
  3172. style="WIDTH: 300pt">
  3173. <OPTION id=File1 value=%systemroot%\ntbtlog.txt >%systemroot%\ntbtlog.txt
  3174. <OPTION id=File2 value=%systemroot%\setupact.log>%systemroot%\setupact.log
  3175. <OPTION id=File3 value=%systemroot%\setupapi.log>%systemroot%\setupapi.log
  3176. <OPTION id=File4 value=%systemroot%\setuperr.log>%systemroot%\setuperr.log
  3177. <OPTION id=File5 value=%systemroot%\setuplog.txt>%systemroot%\setuplog.txt
  3178. <OPTION id=File6 value=%systemroot%\PCHealth\HelpCtr\Config\DataSpec.XML>%systemroot%\PCHealth\HelpCtr\Config\DataSpec.XML
  3179. <OPTION id=File7 value=%systemroot%\repair\setup.log>%systemroot%\repair\setup.log
  3180. <OPTION id=File8 value=%systemroot%\system\sfp\sfplog.txt>%systemroot%\system\sfp\sfplog.txt
  3181. <OPTION id=File9 value=%systemroot%\system32\autoexec.nt>%systemroot%\system32\autoexec.nt
  3182. <OPTION id=File10 value=%systemroot%\system32\config\appevent.evt>%systemroot%\system32\config\appevent.evt
  3183. <OPTION id=File11 value=%systemroot%\system32\config\secevent.evt>%systemroot%\system32\config\secevent.evt
  3184. <OPTION id=File12 value=%systemroot%\system32\config\sysevent.evt>%systemroot%\system32\config\sysevent.evt
  3185. <OPTION id=File13 value=%systemroot%\debug\usermode\userenv.log>%systemroot%\debug\usermode\userenv.log
  3186. <OPTION id=File14 value=%systemroot%\debug\netsteup.log>%systemroot%\debug\netsteup.log
  3187. <OPTION id=File15 value=%systemroot%\debug\dcpromo.log>%systemroot%\debug\dcpromo.log
  3188. <OPTION id=File16 value=%systemdrive%\boot.ini>%systemdrive%\boot.ini
  3189. <OPTION id=File17 value=%systemdrive%\bootex.log >%systemdrive%\bootex.log
  3190. <OPTION id=File18 value=%systemdrive%\sysparse.log >%systemdrive%\sysparse.log
  3191. <OPTION id=File18 value=%systemdrive%\$winnt$.inf >%systemdrive%\$winnt$.inf
  3192. <OPTION id=File19 value=bug_upload_collect.XML>bug_upload_collect.XML<OPTION id=File22 value=bug_upload_nocollect.XML>bug_upload_nocollect.XML
  3193. <OPTION id=File20 value=%temp%\hcupdate.log>%temp%\hcupdate.log
  3194. <OPTION id=File21 value="WMI Logs">WMI Logs</OPTION>
  3195. </SELECT>
  3196. </DIV><br>
  3197. <div class=Instructions id=CollectOk_Input>
  3198. <TABLE>
  3199. <TBODY>
  3200. <TR>
  3201. <TD vAlign=top><input CHECKED
  3202. id=CollectOk name=CollectOk type=checkbox
  3203. ></TD>
  3204. <TD><LABEL for=CollectOk
  3205. id=CollectOk_Label style="CURSOR: hand"
  3206. >Share this information with
  3207. Microsoft.</LABEL>
  3208. <DIV id=MS_Privacy>(See Microsoft's <a
  3209. href="http://www.microsoft.com/info/privacy.htm"
  3210. >privacy policy</A>.)
  3211. </DIV></TD></TR></TBODY></TABLE></DIV><br>
  3212. <div id=NoCollect_FileList>If the above box is
  3213. unchecked system information is not collected but files listed above
  3214. are uploaded with the bug incident. </DIV><br>
  3215. <TABLE align=center border=0 cellPadding=10 id=ExtraFiles_Cell
  3216. width=600>
  3217. <TBODY>
  3218. <TR>
  3219. <TD bgColor=#d0d0d0><!--
  3220. DirectX team section
  3221. -->
  3222. <div class=Instructions id=DirectXInfo
  3223. style="DISPLAY: none; MARGIN-LEFT: 15px">
  3224. <div id=dxTitle><b
  3225. ><id id=dxfoo>DirectX
  3226. Diagnostics</ID></B></DIV><br>
  3227. <div class=Instructions id=DirectXInfoP1
  3228. style="MARGIN-LEFT: 30px">In order to
  3229. help identify and resolve the problem we need to collect some
  3230. additional information using the DirectX Diagnostics tool.
  3231. </DIV><br>
  3232. <div class=Instructions id=DirectXInfoP2
  3233. style="MARGIN-LEFT: 30px">To execute this
  3234. tool please choose "Run" from the start menu and type
  3235. "DXDiag". Once the DirectX Diagnostic Tool is running, choose
  3236. "Save All Information". Save the file to a filename <b
  3237. >dxdiag.txt</B> in a location that you can
  3238. find. </DIV><br>
  3239. <div class=Instructions id=DirectXInfoP3
  3240. style="MARGIN-LEFT: 30px">Then in the <b
  3241. >Additional files to collect</B> area of
  3242. the bug report, please browse to that directory and select
  3243. this file to add. This file will now be uploaded along with
  3244. the bug report. </DIV><br>
  3245. <div class=Instructions id=DirectXInfoP4
  3246. style="MARGIN-LEFT: 30px">Thanks - The
  3247. DirectX Team </DIV><br></DIV>
  3248. <DIV></DIV><!--
  3249. System Restore team section
  3250. -->
  3251. <div class=Instructions id=SystemRestoreInfo
  3252. style="DISPLAY: none; MARGIN-LEFT: 15px">
  3253. <div id=srTitle><b
  3254. ><id id=srfoo>System
  3255. Restore Diagnostics</ID></B></DIV><br>
  3256. <div class=Instructions id=srInfoP1 style="MARGIN-LEFT: 30px"
  3257. >In order to get more information to help
  3258. identify and resolve the problem please go to the
  3259. %windir%/system/restore directory (%windir% is your windows
  3260. directory) and execute the Cabbit tool with the following
  3261. syntax: </DIV><pre id=cabbitCommand style="MARGIN-LEFT: 30px">cabbit srdata.cab</PRE>
  3262. <div class=Instructions id=srInfoP2 style="MARGIN-LEFT: 30px"
  3263. >cabbit.exe will generate a cabfile
  3264. containing system restore log files and name it srdata.cab
  3265. </DIV><br>
  3266. <div class=Instructions id=srInfoP3 style="MARGIN-LEFT: 30px"
  3267. >Then in the <b
  3268. >Additional files to collect</B> area of
  3269. the bug report, please browse to the %windir%/system/restore
  3270. directory and select this file to add. This file will now be
  3271. uploaded along with the bug report. </DIV><br
  3272. >
  3273. <div class=Instructions id=srInfoP4 style="MARGIN-LEFT: 30px"
  3274. >Thanks - The PC Health Team
  3275. </DIV></DIV></TD></TR></TBODY></TABLE><br>
  3276. <div class=Instructions id=AdditionalFilesInfo
  3277. >Additional files to be submitted with the bug
  3278. report can be selected using the <B>Browse</B>
  3279. button and added to the list of files submitted using the <B
  3280. >Add File</B> button. </DIV><br
  3281. ></TD></TR><!--
  3282. Additional files to collect
  3283. -->
  3284. <TR>
  3285. <TD align=right id=AdditionalFiles_Cell3 vAlign=top
  3286. >
  3287. <div class=ItemHeadingSmall id=AdditionalFiles_Text
  3288. >Additional files to collect:</DIV></TD>
  3289. <TD><INPUT class=PlainTextSmall
  3290. id=AdditionalFile name=AdditionalFile size=50 style="WIDTH: 300pt"
  3291. type=file> <br>
  3292. <DIV align=left class=stlList id=AdditionalFilesScroll_List
  3293. >
  3294. <UL id=AdditionalFilesScroll_List_UL
  3295. onclick=javascript:LIST_selectItem(this);
  3296. onkeypress=javascript:LIST_selectItemKey(this);
  3297. onselectstart=javascript:LIST_fnOnSelectStart(); tabIndex=-1
  3298. ></UL></DIV><BR><BUTTON
  3299. accessKey=A id=AddFile name=AddFile
  3300. onclick=BRP_ListAddFileForUpload()><U
  3301. >A</U>dd File</BUTTON><BUTTON accessKey=R
  3302. id=RemoveFile name=RemoveFile onclick=BRP_ListRemoveFileForUpload()
  3303. ><U>R</U>emove
  3304. File</BUTTON><br></TD></TR></TBODY></TABLE><!--
  3305. Section IV
  3306. -->
  3307. <TABLE border=0 id=BugReportingSubmittingTable>
  3308. <TBODY>
  3309. <TR>
  3310. <TD colSpan=2>
  3311. <HR>
  3312. <BR>
  3313. <TABLE border=0>
  3314. <TBODY>
  3315. <TR>
  3316. <TD><IMG alt="Star graphic" border=0 id=IMG_Star_Bullet5 src="star.gif" ></TD>
  3317. <TD class=StepHeading id=Section5_Heading
  3318. >Section IV: Submitting Bug
  3319. Report</TD></TR></TBODY></TABLE><BR>
  3320. <div class=Instructions id=SubmitInstructions_Text
  3321. >When you click <b
  3322. >Submit</B> and <B>Submit
  3323. to Microsoft now</B> is checked, the bug information will be
  3324. uploaded to Microsoft's servers. To cancel the bug report click <b
  3325. >Cancel</B> anytime during the submission
  3326. process. To keep a local copy of the files on your disk select the
  3327. option to <B>Save copy to disk</B> and specify
  3328. a filename.<br><br>Please
  3329. make sure you are connected to the Internet before submitting a bug
  3330. report to Microsoft.<br><br
  3331. ></DIV>
  3332. <TABLE border=0>
  3333. <TBODY>
  3334. <TR>
  3335. <TD><IMG alt="Star graphic" border=0 id=IMG_Star_Bullet4 src="star.gif" ></TD>
  3336. <TD class=ItemHeadingSmall id=Section4_Heading
  3337. >Current Status:</TD></TR>
  3338. <TR>
  3339. <TD>&nbsp;</TD>
  3340. <TD>
  3341. <DIV class=ItemHeadingSmall id=Status
  3342. name="Status">&nbsp;</DIV></TD></TR></TBODY></TABLE>
  3343. <TABLE border=0 width="100%">
  3344. <TBODY>
  3345. <TR>
  3346. <TD class=ItemHeadingSmall id=Progress width="20%"
  3347. name="Progress">&nbsp; </TD>
  3348. <TD class=ItemHeadingSmall id=ProgressText
  3349. name="ProgressText">&nbsp; </TD></TR></TBODY></TABLE>
  3350. <TABLE border=0 cellPadding=10>
  3351. <TBODY>
  3352. <TR>
  3353. <TD id=SubmitButton_Cell vAlign=top
  3354. ><BUTTON accessKey=S class=stlButtonBig
  3355. id=Submit name=Submit onclick=StartProcessing()
  3356. ><U
  3357. >S</U>ubmit</BUTTON><BUTTON accessKey=C
  3358. class=stlButtonBig disabled id=Cancel name=Cancel
  3359. onclick=CancelUpload()><U
  3360. >C</U>ancel</BUTTON> </TD>
  3361. <TD vAlign=top><input CHECKED
  3362. id=SubmitIncidentNow name=SubmitIncidentNow type=checkbox
  3363. > <LABEL for=SubmitIncidentNow
  3364. id=SubmitNow_Label style="CURSOR: hand"
  3365. >Submit to Microsoft now</LABEL> <BR
  3366. ><input id=SaveIncidentNow
  3367. name=SaveIncidentNow type=checkbox>
  3368. <LABEL for=SaveIncidentNow id=SaveNow_Label
  3369. style="CURSOR: hand">Save copy to
  3370. disk</LABEL> <BR><BR>
  3371. <TABLE id=SaveToDiskTable>
  3372. <TBODY>
  3373. <TR>
  3374. <TD align=right id=FileNameLocal_Cell vAlign=top
  3375. >
  3376. <DIV class=ItemHeadingSmall id=Section5_SaveInfoText
  3377. >Filename : </DIV></TD>
  3378. <TD id=FileNameLocalName_Cell vAlign=top
  3379. >
  3380. <DIV class=ItemHeadingSmall id=Section5_SaveInfoFile
  3381. ><INPUT class=PlainTextSmall dir=ltr
  3382. id=IncidentFilename name=IncidentFilename
  3383. onblur=CorrectNameCAB() size=50>
  3384. </DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></FORM></DIV><!--
  3385. The thank you part of the bug reporting page after a bug has been reported
  3386. -->
  3387. <DIV id=spanThankYou style="DISPLAY: none">
  3388. <TABLE border=0 borderColor=#ff0000 cellPadding=0 cellSpacing=0 width=600>
  3389. <TBODY>
  3390. <TR>
  3391. <TD align=left id=ThankYou_Heading_Data_Cell vAlign=center
  3392. >
  3393. <div class=PageHeading id=ThankYou_Page_Heading_Text
  3394. >Windows Whistler Beta team.</DIV><br
  3395. ><br></TD></TR>
  3396. <TR>
  3397. <TD><BR>
  3398. <p class=PlainText id=ThankYou_Paragraph>Thank you
  3399. for submitting a bug report.&nbsp;</P><BR>
  3400. <TABLE border=0>
  3401. <TBODY>
  3402. <TR>
  3403. <TD class=PlainTextSmall id=BRP_IncidentTimeText
  3404. >Submit Time</TD>
  3405. <TD class=PlainTextSmall id=BRP_IncidentTime
  3406. >&nbsp;</TD></TR>
  3407. <TR>
  3408. <TD class=PlainTextSmall id=BRP_TrackingNoText
  3409. >Upload Identifier</TD>
  3410. <TD class=PlainTextSmall dir=ltr id=BRP_TrackingNo
  3411. ></TD></TR></TBODY></TABLE>&nbsp;<id id="ThisNumberOnly">(This number is only for troubleshooting purposes and does not need to be retained.)</id>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR><!--
  3412. <p id="Helpcenter_Return_Link"><a href="hcp://system/Mars_Contents.htm"><id id="ReturnToMain">Return to the main helpcenter page</id></a></p>
  3413. -->
  3414. <p><a href="hcp://CN=Microsoft%20Corporation,L=Redmond,S=Washington,C=US/bugrep.htm"><id id="FileAnother">File Another Bug</id></A></p>
  3415. </TD></TR></TBODY></TABLE></DIV><!--
  3416. Footer
  3417. --><BR><BR>
  3418. <TABLE>
  3419. <TBODY>
  3420. <TR>
  3421. <TD>
  3422. <div class=PlainTextSmall id=BRP_VersionText
  3423. ></DIV></TD></TR>
  3424. <TR>
  3425. <TD><BR>
  3426. <div class=PlainTextSmall>(c) <a
  3427. href="http://www.microsoft.com/misc/cpyright.htm"
  3428. ><id id="Copyright">2000 Microsoft Corporation. All rights reserved. Terms of use.</id></A></DIV></TD></TR></TBODY></TABLE><BR><BR><BR>
  3429. <!--
  3430. End of document
  3431. -->
  3432. </BODY>
  3433. </HTML>