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

329 lines
18 KiB

  1. //=============================================================================
  2. // DataSet.cpp contains a declaration of the tree of default data which is
  3. // displayed for the current system information.
  4. //=============================================================================
  5. #include "stdafx.h"
  6. #include "category.h"
  7. #include "dataset.h"
  8. //=============================================================================
  9. // Column Arrays
  10. //=============================================================================
  11. CMSInfoColumn colResource[] =
  12. {
  13. CMSInfoColumn(IDS_RESOURCE, 150, TRUE, FALSE),
  14. CMSInfoColumn(IDS_DEVICE, 300, TRUE, TRUE),
  15. CMSInfoColumn(IDS_STATUS, 100, TRUE, TRUE),
  16. CMSInfoColumn()
  17. };
  18. CMSInfoColumn colConflictsSharing[] =
  19. {
  20. CMSInfoColumn(IDS_RESOURCE, 250, FALSE, FALSE),
  21. CMSInfoColumn(IDS_DEVICE, 400, FALSE, FALSE),
  22. CMSInfoColumn()
  23. };
  24. CMSInfoColumn colRunningTasks[] =
  25. {
  26. CMSInfoColumn(IDS_NAME, 120),
  27. CMSInfoColumn(IDS_PATH, 200),
  28. CMSInfoColumn(IDS_PROCESSID, 80, TRUE, FALSE, TRUE),
  29. CMSInfoColumn(IDS_PRIORITY, 60, TRUE, FALSE, TRUE),
  30. CMSInfoColumn(IDS_MINWORKINGSET, 80, TRUE, FALSE, TRUE),
  31. CMSInfoColumn(IDS_MAXWORKINGSET, 80, TRUE, FALSE, TRUE),
  32. CMSInfoColumn(IDS_STARTTIME, 120, TRUE, FALSE, TRUE),
  33. CMSInfoColumn(IDS_VERSION, 100),
  34. CMSInfoColumn(IDS_SIZE, 85, TRUE, FALSE),
  35. CMSInfoColumn(IDS_FILEDATE, 120, TRUE, FALSE),
  36. CMSInfoColumn()
  37. };
  38. CMSInfoColumn colLoadedModules[] =
  39. {
  40. CMSInfoColumn(IDS_NAME, 120),
  41. CMSInfoColumn(IDS_VERSION, 100),
  42. CMSInfoColumn(IDS_SIZE, 85, TRUE, FALSE),
  43. CMSInfoColumn(IDS_FILEDATE, 120, TRUE, FALSE),
  44. CMSInfoColumn(IDS_MANUFACTURER, 100),
  45. CMSInfoColumn(IDS_PATH, 200),
  46. CMSInfoColumn()
  47. };
  48. CMSInfoColumn colItemValue[] =
  49. {
  50. CMSInfoColumn(IDS_ITEM, 150, FALSE, FALSE),
  51. CMSInfoColumn(IDS_VALUE, 450, FALSE, FALSE),
  52. CMSInfoColumn()
  53. };
  54. CMSInfoColumn colCODEC[] =
  55. {
  56. CMSInfoColumn(IDS_CODEC, 200),
  57. CMSInfoColumn(IDS_MANUFACTURER, 50),
  58. CMSInfoColumn(IDS_DESCRIPTION, 50),
  59. CMSInfoColumn(IDS_STATUS, 50),
  60. CMSInfoColumn(IDS_FILE, 50),
  61. CMSInfoColumn(IDS_VERSION, 50),
  62. CMSInfoColumn(IDS_SIZE, 50, TRUE, FALSE),
  63. CMSInfoColumn(IDS_CREATIONDATE, 50, TRUE, FALSE),
  64. CMSInfoColumn()
  65. };
  66. CMSInfoColumn colServices[] =
  67. {
  68. CMSInfoColumn(IDS_DISPLAYNAME, 150),
  69. CMSInfoColumn(IDS_NAME, 100, TRUE, TRUE, TRUE),
  70. CMSInfoColumn(IDS_STATE, 50),
  71. CMSInfoColumn(IDS_STARTMODE, 80),
  72. CMSInfoColumn(IDS_SERVICETYPE, 80),
  73. CMSInfoColumn(IDS_PATH, 150, TRUE, TRUE, TRUE),
  74. CMSInfoColumn(IDS_ERRORCONTROL, 80, TRUE, TRUE, TRUE),
  75. CMSInfoColumn(IDS_STARTNAME, 80, TRUE, TRUE, TRUE),
  76. CMSInfoColumn(IDS_TAGID, 50, TRUE, TRUE, TRUE),
  77. CMSInfoColumn()
  78. };
  79. CMSInfoColumn colProgramGroups[] =
  80. {
  81. CMSInfoColumn(IDS_GROUPNAME, 200),
  82. CMSInfoColumn(IDS_NAME, 200),
  83. CMSInfoColumn(IDS_USERNAME, 150),
  84. CMSInfoColumn()
  85. };
  86. CMSInfoColumn colStartupPrograms[] =
  87. {
  88. CMSInfoColumn(IDS_PROGRAM, 150),
  89. CMSInfoColumn(IDS_COMMAND, 200),
  90. CMSInfoColumn(IDS_USERNAME, 100),
  91. CMSInfoColumn(IDS_LOCATION, 100, TRUE, TRUE, TRUE),
  92. CMSInfoColumn()
  93. };
  94. CMSInfoColumn colForcedHardware[] =
  95. {
  96. CMSInfoColumn(IDS_DEVICE, 200, FALSE),
  97. CMSInfoColumn(IDS_PNPDEVICEID, 300, FALSE),
  98. CMSInfoColumn()
  99. };
  100. CMSInfoColumn colEnvVar[] =
  101. {
  102. CMSInfoColumn(IDS_VARIABLE, 150),
  103. CMSInfoColumn(IDS_VALUE, 300),
  104. CMSInfoColumn(IDS_USERNAME, 100),
  105. CMSInfoColumn()
  106. };
  107. CMSInfoColumn colPrinting[] =
  108. {
  109. CMSInfoColumn(IDS_NAME, 150),
  110. CMSInfoColumn(IDS_DRIVER, 150),
  111. CMSInfoColumn(IDS_PORTNAME, 100),
  112. CMSInfoColumn(IDS_SERVERNAME, 150),
  113. CMSInfoColumn()
  114. };
  115. CMSInfoColumn colNetConnections[] =
  116. {
  117. CMSInfoColumn(IDS_LOCALNAME, 150),
  118. CMSInfoColumn(IDS_REMOTENAME, 200),
  119. CMSInfoColumn(IDS_TYPE, 100),
  120. CMSInfoColumn(IDS_STATUS, 100),
  121. CMSInfoColumn(IDS_USERNAME, 100),
  122. CMSInfoColumn()
  123. };
  124. CMSInfoColumn colDrivers[] =
  125. {
  126. CMSInfoColumn(IDS_NAME, 150),
  127. CMSInfoColumn(IDS_DESCRIPTION, 200),
  128. CMSInfoColumn(IDS_FILE, 100, TRUE, TRUE, TRUE),
  129. CMSInfoColumn(IDS_TYPE, 100),
  130. CMSInfoColumn(IDS_STARTED, 100, TRUE, TRUE, TRUE),
  131. CMSInfoColumn(IDS_STARTMODE, 100, TRUE, TRUE, TRUE),
  132. CMSInfoColumn(IDS_STATE, 100),
  133. CMSInfoColumn(IDS_STATUS, 100),
  134. CMSInfoColumn(IDS_ERRORCONTROL, 100, TRUE, TRUE, TRUE),
  135. CMSInfoColumn(IDS_ACCEPTPAUSE, 100, TRUE, TRUE, TRUE),
  136. CMSInfoColumn(IDS_ACCEPTSTOP, 100, TRUE, TRUE, TRUE),
  137. CMSInfoColumn()
  138. };
  139. CMSInfoColumn colSignedDrivers[] =
  140. {
  141. CMSInfoColumn(IDS_DEVICENAME, 150),
  142. CMSInfoColumn(IDS_SIGNED, 50),
  143. CMSInfoColumn(IDS_DEVICECLASS, 75),
  144. CMSInfoColumn(IDS_DRIVERVERSION, 80),
  145. CMSInfoColumn(IDS_DRIVERDATE, 80),
  146. CMSInfoColumn(IDS_MANUFACTURER, 150),
  147. CMSInfoColumn(IDS_INFNAME, 75),
  148. CMSInfoColumn(IDS_DRIVERNAME, 80),
  149. CMSInfoColumn(IDS_DEVICEID, 150),
  150. CMSInfoColumn()
  151. };
  152. CMSInfoColumn colProblemDevices[] =
  153. {
  154. CMSInfoColumn(IDS_DEVICE, 150),
  155. CMSInfoColumn(IDS_PNPDEVICEID, 200),
  156. CMSInfoColumn(IDS_ERRORCODE, 100),
  157. CMSInfoColumn()
  158. };
  159. CMSInfoColumn colPrintJobs[] =
  160. {
  161. CMSInfoColumn(IDS_DOCUMENT, 120),
  162. CMSInfoColumn(IDS_SIZE, 60),
  163. CMSInfoColumn(IDS_OWNER, 60),
  164. CMSInfoColumn(IDS_NOTIFY, 60, TRUE, TRUE, TRUE),
  165. CMSInfoColumn(IDS_STATUS, 60),
  166. CMSInfoColumn(IDS_TIMESUBMITTED, 60),
  167. CMSInfoColumn(IDS_STARTTIME, 60, TRUE, TRUE, TRUE),
  168. CMSInfoColumn(IDS_UNTILTIME, 60, TRUE, TRUE, TRUE),
  169. CMSInfoColumn(IDS_ELAPSEDTIME, 60, TRUE, TRUE, TRUE),
  170. CMSInfoColumn(IDS_PAGESPRINTED, 60),
  171. CMSInfoColumn(IDS_JOBID, 40, TRUE, TRUE, TRUE),
  172. CMSInfoColumn(IDS_PRIORITY, 40, TRUE, TRUE, TRUE),
  173. CMSInfoColumn(IDS_PARAMETERS, 100, TRUE, TRUE, TRUE),
  174. CMSInfoColumn(IDS_DRIVER, 100, TRUE, TRUE, TRUE),
  175. CMSInfoColumn(IDS_PRINTPROCESSOR, 100, TRUE, TRUE, TRUE),
  176. CMSInfoColumn(IDS_HOSTPRINTQUEUE, 100, TRUE, TRUE, TRUE),
  177. CMSInfoColumn(IDS_DATATYPE, 80, TRUE, TRUE, TRUE),
  178. CMSInfoColumn(IDS_NAME, 100, TRUE, TRUE, TRUE),
  179. CMSInfoColumn()
  180. };
  181. CMSInfoColumn colComponentsUSB[] =
  182. {
  183. CMSInfoColumn(IDS_DEVICE, 200),
  184. CMSInfoColumn(IDS_PNPDEVICEID, 300),
  185. CMSInfoColumn()
  186. };
  187. CMSInfoColumn colOLE[] =
  188. {
  189. CMSInfoColumn(IDS_OBJECT, 200),
  190. CMSInfoColumn(IDS_LOCALSERVER, 300),
  191. CMSInfoColumn()
  192. };
  193. CMSInfoColumn colWinErr[] =
  194. {
  195. CMSInfoColumn(IDS_TIME, 130),
  196. CMSInfoColumn(IDS_TYPE, 100),
  197. CMSInfoColumn(IDS_DETAILS, 350),
  198. CMSInfoColumn()
  199. };
  200. //=============================================================================
  201. // Categories
  202. //=============================================================================
  203. #define REFRESHFUNC NULL
  204. #define EMPTYCATEGORY 0
  205. #define DOESNTMATTER 0
  206. #define REFRESHINDEX 0
  207. #define COLUMNPTR NULL
  208. CMSInfoLiveCategory catSystemSummary(IDS_SYSTEMSUMMARY0, _T("SystemSummary"), &SystemSummary, DOESNTMATTER, NULL, NULL, _T("msinfo_system_summary.htm"), colItemValue, FALSE);
  209. CMSInfoLiveCategory catResources(IDS_RESOURCES0, _T("Resources"), EMPTYCATEGORY, EMPTYCATEGORY, &catSystemSummary, NULL, _T("msinfo_hardware_resources.htm"), COLUMNPTR, FALSE);
  210. CMSInfoLiveCategory catResourcesConflicts(IDS_RESOURCESCONFLICTS0, _T("ResourcesConflicts"), &ResourceCategories, RESOURCE_CONFLICTS, &catResources, NULL, _T("msinfo_conflicts_sharing.htm"), colConflictsSharing, FALSE);
  211. CMSInfoLiveCategory catResourcesDMA(IDS_RESOURCESDMA0, _T("ResourcesDMA"), &ResourceCategories, RESOURCE_DMA, &catResources, &catResourcesConflicts, _T("msinfo_DMA.htm"), colResource, FALSE);
  212. CMSInfoLiveCategory catResourcesForcedHardware(IDS_RESOURCESFORCEDHARDWARE0, _T("ResourcesForcedHardware"), &ResourceCategories, RESOURCE_FORCED, &catResources, &catResourcesDMA, _T("msinfo_forced_hardware.htm"), colForcedHardware, FALSE);
  213. CMSInfoLiveCategory catResourcesIO(IDS_RESOURCESIO0, _T("ResourcesIO"), &ResourceCategories, RESOURCE_IO, &catResources, &catResourcesForcedHardware, _T("msinfo_IO.htm"), colResource, FALSE);
  214. CMSInfoLiveCategory catResourcesIRQs(IDS_RESOURCESIRQS0, _T("ResourcesIRQs"), &ResourceCategories, RESOURCE_IRQ, &catResources, &catResourcesIO, _T("msinfo_irqs.htm"), colResource, FALSE);
  215. CMSInfoLiveCategory catResourcesMemory(IDS_RESOURCESMEMORY0, _T("ResourcesMemory"), &ResourceCategories, RESOURCE_MEM, &catResources, &catResourcesIRQs, _T("msinfo_memory.htm"), colResource, FALSE);
  216. CMSInfoLiveCategory catComponents(IDS_COMPONENTS0, _T("Components"), EMPTYCATEGORY, EMPTYCATEGORY, &catSystemSummary, &catResources, _T("msinfo_components.htm"), COLUMNPTR, FALSE);
  217. CMSInfoLiveCategory catComponentsMultimedia(IDS_COMPONENTSMULTIMEDIA0, _T("ComponentsMultimedia"), EMPTYCATEGORY, EMPTYCATEGORY, &catComponents, NULL, _T("msinfo_multimedia.htm"), COLUMNPTR, FALSE);
  218. CMSInfoLiveCategory catComponentsMultimediaAudio(IDS_COMPONENTSMULTIMEDIAAUDIO0, _T("ComponentsMultimediaAudio"), &CODECs, CODEC_AUDIO, &catComponentsMultimedia, NULL, _T(""), colCODEC, FALSE);
  219. CMSInfoLiveCategory catComponentsMultimediaVideo(IDS_COMPONENTSMULTIMEDIAVIDEO0, _T("ComponentsMultimediaVideo"), &CODECs, CODEC_VIDEO, &catComponentsMultimedia, &catComponentsMultimediaAudio, _T(""), colCODEC, FALSE);
  220. CMSInfoLiveCategory catComponentsMultimediaCDROM(IDS_COMPONENTSMULTIMEDIACDROM0, _T("ComponentsMultimediaCDROM"), &SimpleQuery, QUERY_CDROM, &catComponents, &catComponentsMultimedia, _T("msinfo_cdrom.htm"), colItemValue, FALSE);
  221. CMSInfoLiveCategory catComponentsMultimediaSound(IDS_COMPONENTSMULTIMEDIASOUND0, _T("ComponentsMultimediaSound"), &SimpleQuery, QUERY_SOUNDDEV, &catComponents, &catComponentsMultimediaCDROM, _T("msinfo_sound_device.htm"), colItemValue, FALSE);
  222. CMSInfoLiveCategory catComponentsDisplay(IDS_COMPONENTSDISPLAY0, _T("ComponentsDisplay"), &SimpleQuery, QUERY_DISPLAY, &catComponents, &catComponentsMultimediaSound, _T("msinfo_display.htm"), colItemValue, FALSE);
  223. CMSInfoLiveCategory catComponentsInfrared(IDS_COMPONENTSINFRARED0, _T("ComponentsInfrared"), &SimpleQuery, QUERY_INFRARED, &catComponents, &catComponentsDisplay, _T("msinfo_infrared.htm"), colItemValue, FALSE);
  224. CMSInfoLiveCategory catComponentsInput(IDS_COMPONENTSINPUT0, _T("ComponentsInput"), EMPTYCATEGORY, EMPTYCATEGORY, &catComponents, &catComponentsInfrared, _T("msinfo_input.htm"), COLUMNPTR, FALSE);
  225. CMSInfoLiveCategory catComponentsKeyboard(IDS_COMPONENTSKEYBOARD0, _T("ComponentsKeyboard"), &SimpleQuery, QUERY_KEYBOARD, &catComponentsInput, NULL, _T(""), colItemValue, FALSE);
  226. CMSInfoLiveCategory catComponentsPointDev(IDS_COMPONENTSPOINTDEV0, _T("ComponentsPointDev"), &SimpleQuery, QUERY_POINTDEV, &catComponentsInput, &catComponentsKeyboard, _T(""), colItemValue, FALSE);
  227. CMSInfoLiveCategory catComponentsModem(IDS_COMPONENTSMODEM0, _T("ComponentsModem"), &SimpleQuery, QUERY_MODEM, &catComponents, &catComponentsInput, _T("msinfo_modem.htm"), colItemValue, FALSE);
  228. CMSInfoLiveCategory catComponentsNetwork(IDS_COMPONENTSNETWORK0, _T("ComponentsNetwork"), EMPTYCATEGORY, EMPTYCATEGORY, &catComponents, &catComponentsModem, _T("msinfo_network.htm"), COLUMNPTR, FALSE);
  229. CMSInfoLiveCategory catComponentsNetAdapter(IDS_COMPONENTSNETADAPTER0, _T("ComponentsNetAdapter"), &SimpleQuery, QUERY_NETADAPTER, &catComponentsNetwork, NULL, _T(""), colItemValue, FALSE);
  230. CMSInfoLiveCategory catComponentsNetworkProtocol(IDS_COMPONENTSNETWORKPROTOCOL0, _T("ComponentsNetworkProtocol"), &SimpleQuery, QUERY_NETPROT, &catComponentsNetwork, &catComponentsNetAdapter, _T(""), colItemValue, FALSE);
  231. CMSInfoLiveCategory catComponentsNetworkWinSock(IDS_COMPONENTSNETWORKWINSOCK0, _T("ComponentsNetworkWinSock"), &Winsock, DOESNTMATTER, &catComponentsNetwork, &catComponentsNetworkProtocol, _T(""), colItemValue, FALSE);
  232. CMSInfoLiveCategory catComponentsPorts(IDS_COMPONENTSPORTS0, _T("ComponentsPorts"), EMPTYCATEGORY, EMPTYCATEGORY, &catComponents, &catComponentsNetwork, _T("msinfo_ports.htm"), COLUMNPTR, FALSE);
  233. CMSInfoLiveCategory catComponentsSerialPorts(IDS_COMPONENTSSERIALPORTS0, _T("ComponentsSerialPorts"), &SimpleQuery, QUERY_SERIALPORT, &catComponentsPorts, NULL, _T(""), colItemValue, FALSE);
  234. CMSInfoLiveCategory catComponentsParallelPorts(IDS_COMPONENTSPARALLELPORTS0, _T("ComponentsParallelPorts"), &SimpleQuery, QUERY_PARALLEL, &catComponentsPorts, &catComponentsSerialPorts, _T(""), colItemValue, FALSE);
  235. CMSInfoLiveCategory catComponentsStorage(IDS_COMPONENTSSTORAGE0, _T("ComponentsStorage"), EMPTYCATEGORY, EMPTYCATEGORY, &catComponents, &catComponentsPorts, _T("msinfo_storage.htm"), COLUMNPTR, FALSE);
  236. CMSInfoLiveCategory catComponentsStorageDrives(IDS_COMPONENTSSTORAGEDRIVES0, _T("ComponentsStorageDrives"), &ComponentDrives, DOESNTMATTER, &catComponentsStorage, NULL, _T(""), colItemValue, FALSE);
  237. CMSInfoLiveCategory catComponentsStorageDisks(IDS_COMPONENTSSTORAGEDISKS0, _T("ComponentsStorageDisks"), &Disks, DOESNTMATTER, &catComponentsStorage, &catComponentsStorageDrives, _T(""), colItemValue, FALSE);
  238. CMSInfoLiveCategory catComponentsStorageSCSI(IDS_COMPONENTSSTORAGESCSI0, _T("ComponentsStorageSCSI"), &SimpleQuery, QUERY_SCSI, &catComponentsStorage, &catComponentsStorageDisks, _T(""), colItemValue, FALSE);
  239. CMSInfoLiveCategory catComponentsStorageIDE(IDS_COMPONENTSSTORAGEIDE0, _T("ComponentsStorageIDE"), &SimpleQuery, QUERY_IDE, &catComponentsStorage, &catComponentsStorageSCSI, _T(""), colItemValue, FALSE);
  240. CMSInfoLiveCategory catComponentsPrinting(IDS_COMPONENTSPRINTING0, _T("ComponentsPrinting"), &SimpleQuery, QUERY_PRINTER, &catComponents, &catComponentsStorage, _T("msinfo_printing.htm"), colPrinting, FALSE);
  241. CMSInfoLiveCategory catComponentsProblemDevices(IDS_COMPONENTSPROBLEMDEVICES0, _T("ComponentsProblemDevices"), &ProblemDevices, DOESNTMATTER, &catComponents, &catComponentsPrinting, _T("msinfo_problem_devices.htm"), colProblemDevices, FALSE);
  242. CMSInfoLiveCategory catComponentsUSB(IDS_COMPONENTSUSB0, _T("ComponentsUSB"), &ComponentsUSB, DOESNTMATTER, &catComponents, &catComponentsProblemDevices, _T("msinfo_usb.htm"), colComponentsUSB, FALSE);
  243. CMSInfoLiveCategory catSWEnv(IDS_SWENV0, _T("SWEnv"), EMPTYCATEGORY, EMPTYCATEGORY, &catSystemSummary, &catComponents, _T("msinfo_software_environment.htm"), COLUMNPTR, FALSE);
  244. CMSInfoLiveCategory catSWEnvDrivers(IDS_SWENVDRIVERS0, _T("SWEnvDrivers"), &SimpleQuery, QUERY_DRIVER, &catSWEnv, NULL, _T("msinfo_drivers.htm"), colDrivers, FALSE);
  245. CMSInfoLiveCategory catSWEnvSignedDrivers(IDS_SWENVSIGNEDDRIVERS0, _T("SWEnvSignedDrivers"), &SimpleQuery, QUERY_SIGNEDDRIVER, &catSWEnv, &catSWEnvDrivers, _T("msinfo_cert_drivers.htm"), colSignedDrivers, FALSE);
  246. CMSInfoLiveCategory catSWEnvEnvVars(IDS_SWENVENVVARS0, _T("SWEnvEnvVars"), &SimpleQuery, QUERY_ENVVAR, &catSWEnv, &catSWEnvSignedDrivers, _T("msinfo_environment_variables.htm"), colEnvVar, FALSE);
  247. CMSInfoLiveCategory catSWEnvPrint(IDS_SWENVPRINT0, _T("SWEnvPrint"), &SimpleQuery, QUERY_PRINTJOBS, &catSWEnv, &catSWEnvEnvVars, _T("msinfo_print_jobs.htm"), colPrintJobs, FALSE);
  248. CMSInfoLiveCategory catSWEnvNetConn(IDS_SWENVNETCONN0, _T("SWEnvNetConn"), &SimpleQuery, QUERY_NETCONNECTION, &catSWEnv, &catSWEnvPrint, _T("msinfo_network_connections.htm"), colNetConnections, FALSE);
  249. CMSInfoLiveCategory catSWEnvRunningTasks(IDS_SWENVRUNNINGTASKS0, _T("SWEnvRunningTasks"), &RunningTasks, DOESNTMATTER, &catSWEnv, &catSWEnvNetConn, _T("msinfo_running_tasks.htm"), colRunningTasks, FALSE);
  250. CMSInfoLiveCategory catSWEnvLoadedModules(IDS_SWENVLOADEDMODULES0, _T("SWEnvLoadedModules"), &LoadedModules, DOESNTMATTER, &catSWEnv, &catSWEnvRunningTasks, _T("msinfo_loaded_modules.htm"), colLoadedModules, FALSE);
  251. CMSInfoLiveCategory catSWEnvServices(IDS_SWENVSERVICES0, _T("SWEnvServices"), &SimpleQuery, QUERY_SERVICES, &catSWEnv, &catSWEnvLoadedModules, _T("msinfo_services.htm"), colServices, FALSE, NT_ONLY);
  252. CMSInfoLiveCategory catSWEnvProgramGroup(IDS_SWENVPROGRAMGROUP0, _T("SWEnvProgramGroup"), &SimpleQuery, QUERY_PROGRAMGROUP, &catSWEnv, &catSWEnvServices, _T("msinfo_program_groups.htm"), colProgramGroups, FALSE);
  253. CMSInfoLiveCategory catSWEnvStartupPrograms(IDS_SWENVSTARTUPPROGRAMS0, _T("SWEnvStartupPrograms"), &SimpleQuery, QUERY_STARTUP, &catSWEnv, &catSWEnvProgramGroup, _T("msinfo_startup_programs.htm"), colStartupPrograms, FALSE);
  254. CMSInfoLiveCategory catSWEnvOLEReg(IDS_SWENVOLEREG0, _T("SWEnvOLEReg"), &OLERegistration, DOESNTMATTER, &catSWEnv, &catSWEnvStartupPrograms, _T("msinfo_ole_registration.htm"), colOLE, FALSE);
  255. CMSInfoLiveCategory catSWEnvWinErr(IDS_SWWINERR0, _T("SWEnvWindowsError"), &WindowsErrorReporting, DOESNTMATTER, &catSWEnv, &catSWEnvOLEReg, _T("msinfo_error_reporting.htm"), colWinErr, FALSE);
  256. //=============================================================================
  257. // History Categories and Columns
  258. //=============================================================================
  259. CMSInfoColumn colHistorySystemSummary[] =
  260. {
  261. CMSInfoColumn(IDS_TIME, 75, TRUE, FALSE),
  262. CMSInfoColumn(IDS_CHANGE, 75, TRUE, TRUE),
  263. CMSInfoColumn(IDS_NAME, 100, TRUE, TRUE),
  264. CMSInfoColumn(IDS_DETAILS, 300, TRUE, TRUE),
  265. CMSInfoColumn()
  266. };
  267. CMSInfoColumn colHistoryResources[] =
  268. {
  269. CMSInfoColumn(IDS_TIME, 75, TRUE, FALSE),
  270. CMSInfoColumn(IDS_CHANGE, 75, TRUE, TRUE),
  271. CMSInfoColumn(IDS_NAME, 100, TRUE, TRUE),
  272. CMSInfoColumn(IDS_DETAILS, 300, TRUE, TRUE),
  273. CMSInfoColumn(IDS_RESOURCETYPE, 100, TRUE, TRUE),
  274. CMSInfoColumn()
  275. };
  276. CMSInfoColumn colHistoryComponents[] =
  277. {
  278. CMSInfoColumn(IDS_TIME, 75, TRUE, FALSE),
  279. CMSInfoColumn(IDS_CHANGE, 75, TRUE, TRUE),
  280. CMSInfoColumn(IDS_NAME, 100, TRUE, TRUE),
  281. CMSInfoColumn(IDS_DETAILS, 300, TRUE, TRUE),
  282. CMSInfoColumn(IDS_DEVICETYPE, 100, TRUE, TRUE),
  283. CMSInfoColumn()
  284. };
  285. CMSInfoColumn colHistorySWEnv[] =
  286. {
  287. CMSInfoColumn(IDS_TIME, 75, TRUE, FALSE),
  288. CMSInfoColumn(IDS_CHANGE, 75, TRUE, TRUE),
  289. CMSInfoColumn(IDS_NAME, 100, TRUE, TRUE),
  290. CMSInfoColumn(IDS_DETAILS, 300, TRUE, TRUE),
  291. CMSInfoColumn(IDS_TYPE, 100, TRUE, TRUE),
  292. CMSInfoColumn()
  293. };
  294. CMSInfoHistoryCategory catHistorySystemSummary(IDS_SYSTEMSUMMARY0, _T("SystemSummary"), NULL, NULL, colHistorySystemSummary, FALSE);
  295. CMSInfoHistoryCategory catHistoryResources(IDS_RESOURCES0, _T("Resources"), &catHistorySystemSummary, NULL, colHistoryResources, FALSE);
  296. CMSInfoHistoryCategory catHistoryComponents(IDS_COMPONENTS0, _T("Components"), &catHistorySystemSummary, &catHistoryResources, colHistoryComponents, FALSE);
  297. CMSInfoHistoryCategory catHistorySWEnv(IDS_SWENV0, _T("SWEnv"), &catHistorySystemSummary, &catHistoryComponents, colHistorySWEnv, FALSE);