Source code of Windows XP (NT5)
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.

3679 lines
121 KiB

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