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.

1110 lines
32 KiB

  1. VERSION 5.00
  2. Begin VB.Form Form1
  3. Caption = "Form1"
  4. ClientHeight = 12675
  5. ClientLeft = 60
  6. ClientTop = 345
  7. ClientWidth = 13095
  8. LinkTopic = "Form1"
  9. ScaleHeight = 12675
  10. ScaleWidth = 13095
  11. StartUpPosition = 3 'Windows Default
  12. Begin VB.CommandButton Cancelc
  13. BackColor = &H000000FF&
  14. Caption = "Cancel (c)"
  15. Height = 855
  16. Left = 10320
  17. Style = 1 'Graphical
  18. TabIndex = 39
  19. Top = 4560
  20. Width = 1455
  21. End
  22. Begin VB.CommandButton CancelButton
  23. BackColor = &H000000FF&
  24. Caption = "Cancel (s)"
  25. Height = 855
  26. Left = 8160
  27. MaskColor = &H8000000A&
  28. Style = 1 'Graphical
  29. TabIndex = 38
  30. Top = 4560
  31. Width = 1335
  32. End
  33. Begin VB.ListBox ContextResults
  34. Height = 2985
  35. ItemData = "Form1.frx":0000
  36. Left = 120
  37. List = "Form1.frx":0002
  38. TabIndex = 37
  39. Top = 6840
  40. Width = 3135
  41. End
  42. Begin VB.ListBox ContextList
  43. Height = 1815
  44. ItemData = "Form1.frx":0004
  45. Left = 8520
  46. List = "Form1.frx":0006
  47. TabIndex = 35
  48. Top = 2040
  49. Width = 3135
  50. End
  51. Begin VB.CommandButton DeleteContext
  52. Caption = "Delete All"
  53. Height = 495
  54. Left = 10200
  55. TabIndex = 34
  56. Top = 1320
  57. Width = 1335
  58. End
  59. Begin VB.CommandButton AddContext
  60. Caption = "Add"
  61. Height = 495
  62. Left = 8760
  63. TabIndex = 33
  64. Top = 1320
  65. Width = 855
  66. End
  67. Begin VB.TextBox ContextValue
  68. Height = 375
  69. Left = 10200
  70. TabIndex = 32
  71. Top = 600
  72. Width = 1335
  73. End
  74. Begin VB.TextBox ContextName
  75. Height = 375
  76. Left = 8520
  77. TabIndex = 31
  78. Top = 600
  79. Width = 1335
  80. End
  81. Begin VB.CommandButton Command20
  82. Caption = "Async Put Class (s)"
  83. Height = 615
  84. Left = 5520
  85. TabIndex = 29
  86. Top = 4920
  87. Width = 1455
  88. End
  89. Begin VB.CommandButton Command19
  90. Caption = "Sync Put Class"
  91. Height = 615
  92. Left = 3840
  93. TabIndex = 28
  94. Top = 4920
  95. Width = 1335
  96. End
  97. Begin VB.TextBox QueryBox
  98. Height = 375
  99. Left = 360
  100. TabIndex = 25
  101. Text = "select * from Win32_LogicalDisk"
  102. Top = 1320
  103. Width = 3135
  104. End
  105. Begin VB.CommandButton Command18
  106. Caption = "Async Put Obj (s)"
  107. Height = 615
  108. Left = 2160
  109. TabIndex = 19
  110. Top = 4920
  111. Width = 1335
  112. End
  113. Begin VB.CommandButton Command17
  114. Caption = "Sync Put Obj"
  115. Height = 615
  116. Left = 720
  117. TabIndex = 18
  118. Top = 4920
  119. Width = 1215
  120. End
  121. Begin VB.CheckBox Check1
  122. Caption = "Use Object Methods"
  123. Height = 375
  124. Left = 720
  125. TabIndex = 17
  126. TabStop = 0 'False
  127. Top = 5880
  128. Width = 2175
  129. End
  130. Begin VB.CommandButton Command16
  131. Caption = "Sync NotificationQuery (c)"
  132. Height = 615
  133. Left = 5520
  134. TabIndex = 16
  135. Top = 3960
  136. Width = 1455
  137. End
  138. Begin VB.CommandButton Command15
  139. Caption = "Sync NotificationQuery"
  140. Height = 615
  141. Left = 3840
  142. TabIndex = 15
  143. Top = 3960
  144. Width = 1335
  145. End
  146. Begin VB.CommandButton Command14
  147. Caption = "Async ReferencesTo (c)"
  148. Height = 615
  149. Left = 2160
  150. TabIndex = 14
  151. Top = 3960
  152. Width = 1335
  153. End
  154. Begin VB.CommandButton Command13
  155. Caption = "Sync ReferencesTo"
  156. Height = 615
  157. Left = 720
  158. TabIndex = 13
  159. Top = 3960
  160. Width = 1215
  161. End
  162. Begin VB.CommandButton Command12
  163. Caption = "Async AssociatorsOf (c)"
  164. Height = 615
  165. Left = 2160
  166. TabIndex = 12
  167. Top = 3000
  168. Width = 1335
  169. End
  170. Begin VB.CommandButton Command11
  171. Caption = "Sync AssociatorsOf"
  172. Height = 615
  173. Left = 720
  174. TabIndex = 11
  175. Top = 3000
  176. Width = 1215
  177. End
  178. Begin VB.CommandButton Command10
  179. Caption = "Async SubclassesOf (c)"
  180. Height = 615
  181. Left = 5520
  182. TabIndex = 10
  183. Top = 3000
  184. Width = 1455
  185. End
  186. Begin VB.CommandButton Command9
  187. Caption = "Sync SubclassesOf"
  188. Height = 615
  189. Left = 3840
  190. TabIndex = 9
  191. Top = 3000
  192. Width = 1335
  193. End
  194. Begin VB.CommandButton Command8
  195. Caption = "Async InstancesOf (s)"
  196. Height = 615
  197. Left = 5520
  198. TabIndex = 8
  199. Top = 2040
  200. Width = 1455
  201. End
  202. Begin VB.CommandButton Command7
  203. Caption = "Sync InstncesOf"
  204. Height = 615
  205. Left = 3840
  206. TabIndex = 7
  207. Top = 2040
  208. Width = 1335
  209. End
  210. Begin VB.CommandButton Command6
  211. Caption = "Async Delete (s)"
  212. Height = 615
  213. Left = 2160
  214. TabIndex = 6
  215. Top = 2040
  216. Width = 1335
  217. End
  218. Begin VB.CommandButton Command5
  219. Caption = "Sync Delete"
  220. Height = 615
  221. Left = 720
  222. TabIndex = 5
  223. Top = 2040
  224. Width = 1215
  225. End
  226. Begin VB.CommandButton Command4
  227. Caption = "Async Get (s)"
  228. Height = 615
  229. Left = 5520
  230. TabIndex = 4
  231. Top = 600
  232. Width = 1455
  233. End
  234. Begin VB.CommandButton Command3
  235. Caption = "Sync Get"
  236. Height = 615
  237. Left = 3840
  238. TabIndex = 3
  239. Top = 600
  240. Width = 1335
  241. End
  242. Begin VB.Timer Timer1
  243. Interval = 100
  244. Left = 2400
  245. Top = 12480
  246. End
  247. Begin VB.ListBox List1
  248. Height = 2985
  249. ItemData = "Form1.frx":0008
  250. Left = 3600
  251. List = "Form1.frx":000A
  252. TabIndex = 2
  253. Top = 6840
  254. Width = 3735
  255. End
  256. Begin VB.CommandButton Command2
  257. Caption = "Query Async (s)"
  258. Height = 615
  259. Left = 2160
  260. TabIndex = 1
  261. Top = 600
  262. Width = 1335
  263. End
  264. Begin VB.CommandButton Command1
  265. Caption = "Query Sync"
  266. Height = 615
  267. Left = 720
  268. TabIndex = 0
  269. Top = 600
  270. Width = 1215
  271. End
  272. Begin VB.Frame Frame1
  273. Caption = "Operations"
  274. Height = 6375
  275. Left = 0
  276. TabIndex = 30
  277. Top = 240
  278. Width = 7455
  279. Begin VB.Line Line5
  280. BorderColor = &H000000FF&
  281. X1 = 600
  282. X2 = 7080
  283. Y1 = 4560
  284. Y2 = 4560
  285. End
  286. Begin VB.Line Line4
  287. X1 = 600
  288. X2 = 7080
  289. Y1 = 3600
  290. Y2 = 3600
  291. End
  292. Begin VB.Line Line3
  293. X1 = 600
  294. X2 = 7200
  295. Y1 = 2640
  296. Y2 = 2640
  297. End
  298. Begin VB.Line Line2
  299. X1 = 600
  300. X2 = 7200
  301. Y1 = 1680
  302. Y2 = 1680
  303. End
  304. Begin VB.Line Line1
  305. X1 = 3720
  306. X2 = 3720
  307. Y1 = 240
  308. Y2 = 5520
  309. End
  310. End
  311. Begin VB.Frame Frame2
  312. Caption = "Context"
  313. Height = 3855
  314. Left = 8160
  315. TabIndex = 36
  316. Top = 360
  317. Width = 3975
  318. End
  319. Begin VB.Label ObjectPathLabel
  320. Caption = "Null"
  321. Height = 375
  322. Left = 1560
  323. TabIndex = 27
  324. Top = 11160
  325. Width = 4575
  326. End
  327. Begin VB.Label Label4
  328. Caption = "Put Obj Path:"
  329. Height = 375
  330. Left = 240
  331. TabIndex = 26
  332. Top = 11160
  333. Width = 1215
  334. End
  335. Begin VB.Label LastErrorString
  336. Height = 375
  337. Left = 2280
  338. TabIndex = 24
  339. Top = 10560
  340. Width = 2415
  341. End
  342. Begin VB.Label Label1
  343. Caption = "Status:"
  344. Height = 255
  345. Left = 480
  346. TabIndex = 23
  347. Top = 9960
  348. Width = 615
  349. End
  350. Begin VB.Label Label3
  351. Caption = "Last Error:"
  352. Height = 375
  353. Left = 240
  354. TabIndex = 22
  355. Top = 10560
  356. Width = 735
  357. End
  358. Begin VB.Label LastError
  359. Height = 375
  360. Left = 1200
  361. TabIndex = 21
  362. Top = 10560
  363. Width = 975
  364. End
  365. Begin VB.Label Status
  366. Height = 255
  367. Left = 1200
  368. TabIndex = 20
  369. Top = 9960
  370. Width = 2055
  371. End
  372. Begin VB.Image Image3
  373. Height = 480
  374. Left = 240
  375. Picture = "Form1.frx":000C
  376. Top = 12600
  377. Visible = 0 'False
  378. Width = 480
  379. End
  380. Begin VB.Image Image2
  381. Height = 480
  382. Left = 1680
  383. Picture = "Form1.frx":07FE
  384. Top = 12480
  385. Visible = 0 'False
  386. Width = 480
  387. End
  388. Begin VB.Image Image1
  389. Height = 480
  390. Left = 7800
  391. Picture = "Form1.frx":0B08
  392. Top = 7320
  393. Width = 480
  394. End
  395. End
  396. Attribute VB_Name = "Form1"
  397. Attribute VB_GlobalNameSpace = False
  398. Attribute VB_Creatable = False
  399. Attribute VB_PredeclaredId = True
  400. Attribute VB_Exposed = False
  401. Dim WithEvents someSink As SWbemSink
  402. Attribute someSink.VB_VarHelpID = -1
  403. Dim WithEvents classSink As SWbemSink
  404. Attribute classSink.VB_VarHelpID = -1
  405. Dim WithEvents tmpSink1 As SWbemSink
  406. Attribute tmpSink1.VB_VarHelpID = -1
  407. Dim WithEvents tmpSink2 As SWbemSink
  408. Attribute tmpSink2.VB_VarHelpID = -1
  409. Dim WithEvents tmpSink3 As SWbemSink
  410. Attribute tmpSink3.VB_VarHelpID = -1
  411. Dim WithEvents tmpSink4 As SWbemSink
  412. Attribute tmpSink4.VB_VarHelpID = -1
  413. Dim WithEvents tmpSink5 As SWbemSink
  414. Attribute tmpSink5.VB_VarHelpID = -1
  415. Dim WithEvents tmpSink6 As SWbemSink
  416. Attribute tmpSink6.VB_VarHelpID = -1
  417. Dim WithEvents tmpSink7 As SWbemSink
  418. Attribute tmpSink7.VB_VarHelpID = -1
  419. Dim WithEvents tmpSink8 As SWbemSink
  420. Attribute tmpSink8.VB_VarHelpID = -1
  421. Dim WithEvents tmpSink9 As SWbemSink
  422. Attribute tmpSink9.VB_VarHelpID = -1
  423. Dim WithEvents tmpSink10 As SWbemSink
  424. Attribute tmpSink10.VB_VarHelpID = -1
  425. Dim WithEvents tmpSink11 As SWbemSink
  426. Attribute tmpSink11.VB_VarHelpID = -1
  427. Dim WithEvents tmpSink12 As SWbemSink
  428. Attribute tmpSink12.VB_VarHelpID = -1
  429. Dim WithEvents tmpSink13 As SWbemSink
  430. Attribute tmpSink13.VB_VarHelpID = -1
  431. Dim WithEvents tmpSink14 As SWbemSink
  432. Attribute tmpSink14.VB_VarHelpID = -1
  433. Dim WithEvents tmpSink15 As SWbemSink
  434. Attribute tmpSink15.VB_VarHelpID = -1
  435. Dim WithEvents tmpSink16 As SWbemSink
  436. Attribute tmpSink16.VB_VarHelpID = -1
  437. Dim WithEvents tmpSink17 As SWbemSink
  438. Attribute tmpSink17.VB_VarHelpID = -1
  439. Dim obj As SWbemObject
  440. Dim context As SWbemNamedValueSet
  441. Dim tmpContext As SWbemNamedValueSet
  442. Dim services As SWbemServices
  443. Dim locator As SWbemLocator
  444. Dim myimage As Boolean
  445. Private Sub AddContext_Click()
  446. Dim res As SWbemNamedValue
  447. Set res = context.Add(ContextName.Text, ContextValue.Text)
  448. ContextList.AddItem (ContextName.Text & "=" & ContextValue.Text)
  449. End Sub
  450. Private Sub CancelButton_Click()
  451. someSink.Cancel
  452. End Sub
  453. Private Sub Cancelc_Click()
  454. classSink.Cancel
  455. End Sub
  456. Private Sub classSink_OnCompleted(ByVal hResult As WbemScripting.WbemErrorEnum, ByVal pErrorObject As WbemScripting.ISWbemObject, ByVal pAsyncContext As WbemScripting.ISWbemNamedValueSet)
  457. Dim str As String
  458. GetErrorString hResult, str
  459. Call DisplayContext("OnCompleted(" & str & ") ", pAsyncContext)
  460. Call HandleErrors(hResult, "", pErrorObject)
  461. End Sub
  462. Private Sub classSink_OnObjectPut(ByVal pObjectPath As WbemScripting.ISWbemObjectPath, ByVal pAsyncContext As WbemScripting.ISWbemNamedValueSet)
  463. Call DisplayContext("OnObjectPut", pAsyncContext)
  464. ObjectPathLabel.Caption = pObjectPath.path
  465. End Sub
  466. Private Sub classSink_OnObjectReady(ByVal pObject As WbemScripting.ISWbemObject, ByVal pAsyncContext As WbemScripting.ISWbemNamedValueSet)
  467. Call DisplayContext("OnObjectReady", pAsyncContext)
  468. List1.AddItem (pObject.Path_.Class)
  469. End Sub
  470. Private Sub classSink_OnProgress(ByVal upperBound As Long, ByVal current As Long, ByVal message As String, ByVal pAsyncContext As WbemScripting.ISWbemNamedValueSet)
  471. Call DisplayContext("OnProgress", pAsyncContext)
  472. MsgBox ("OnProgress called - upper: " & upperBound & " current: " & current & " str: " & message)
  473. End Sub
  474. Private Sub Command1_Click()
  475. Dim myenum As Object
  476. Dim obj As SWbemObject
  477. Begin
  478. On Error GoTo ErrorHandler
  479. Set myenum = services.ExecQuery(QueryBox.Text)
  480. For Each obj In myenum
  481. List1.AddItem (obj.Path_.RelPath)
  482. Next
  483. Status.Caption = "Completed"
  484. Exit Sub
  485. ErrorHandler:
  486. Call HandleErrors(Err.Number, Err.Description, Nothing)
  487. End Sub
  488. Private Sub Command10_Click()
  489. Dim result As Object
  490. Begin
  491. On Error GoTo ErrorHandler
  492. If Check1 = 0 Then
  493. services.SubclassesOfAsync classSink, "Cim_LogicalDevice", , , tmpContext
  494. Else
  495. List1.AddItem ("Object Operation")
  496. Set obj = services.Get("Cim_LogicalDevice")
  497. obj.SubclassesAsync_ classSink, , , tmpContext
  498. End If
  499. Exit Sub
  500. ErrorHandler:
  501. Call HandleErrors(Err.Number, Err.Description, Nothing)
  502. End Sub
  503. Private Sub Command11_Click()
  504. Dim myenum As Object
  505. Dim computer As SWbemObject
  506. Begin
  507. On Error GoTo ErrorHandler
  508. If Check1 = 0 Then
  509. Set myenum = services.AssociatorsOf("Win32_LogicalDisk.DeviceID=""C:""", "Win32_SystemDevices")
  510. Else
  511. List1.AddItem ("Object Operation")
  512. Set obj = services.Get("Win32_LogicalDisk.DeviceID=""C:""")
  513. Set myenum = obj.Associators_("Win32_SystemDevices")
  514. End If
  515. For Each computer In myenum
  516. List1.AddItem (computer.Path_.Class)
  517. Next
  518. Status.Caption = "Completed"
  519. Exit Sub
  520. ErrorHandler:
  521. Call HandleErrors(Err.Number, Err.Description, Nothing)
  522. End Sub
  523. Private Sub Command12_Click()
  524. Dim result As Object
  525. Begin
  526. On Error GoTo ErrorHandler
  527. If Check1 = 0 Then
  528. services.AssociatorsOfAsync classSink, "Win32_LogicalDisk.DeviceID=""C:""", "Win32_SystemDevices", , , , , , , , , , tmpContext
  529. Else
  530. List1.AddItem ("Object Operation")
  531. Set obj = services.Get("Win32_LogicalDisk.DeviceID=""C:""")
  532. obj.AssociatorsAsync_ classSink, "Win32_SystemDevices", , , , , , , , , , tmpContext
  533. End If
  534. Exit Sub
  535. ErrorHandler:
  536. Call HandleErrors(Err.Number, Err.Description, Nothing)
  537. End Sub
  538. Private Sub Command13_Click()
  539. Dim myenum As Object
  540. Dim computer As SWbemObject
  541. Begin
  542. On Error GoTo ErrorHandler
  543. If Check1 = 0 Then
  544. Set myenum = services.ReferencesTo("Win32_LogicalDisk.DeviceID=""C:""", "Win32_SystemDevices")
  545. Else
  546. List1.AddItem ("Object Operation")
  547. Set obj = services.Get("Win32_LogicalDisk.DeviceID=""C:""")
  548. Set myenum = obj.References_("Win32_SystemDevices")
  549. End If
  550. For Each computer In myenum
  551. List1.AddItem (computer.Path_.Class)
  552. Next
  553. Status.Caption = "Completed"
  554. Exit Sub
  555. ErrorHandler:
  556. Call HandleErrors(Err.Number, Err.Description, Nothing)
  557. End Sub
  558. Private Sub Command14_Click()
  559. Dim result As Object
  560. Begin
  561. On Error GoTo ErrorHandler
  562. If Check1 = 0 Then
  563. services.ReferencesToAsync classSink, "Win32_LogicalDisk.DeviceID=""C:""", "Win32_SystemDevices", , , , , , , tmpContext
  564. Else
  565. List1.AddItem ("Object Operation")
  566. Set obj = services.Get("Win32_LogicalDisk.DeviceID=""C:""")
  567. obj.ReferencesAsync_ classSink, "Win32_SystemDevices", , , , , , , tmpContext
  568. End If
  569. Exit Sub
  570. ErrorHandler:
  571. Call HandleErrors(Err.Number, Err.Description, Nothing)
  572. End Sub
  573. Private Sub Command15_Click()
  574. Dim myenum As Object
  575. Dim ev As SWbemObject
  576. Begin
  577. On Error GoTo ErrorHandler
  578. Set myenum = services.ExecNotificationQuery("select * from __InstanceCreationEvent where TargetInstance isa ""Rogers""")
  579. For Each ev In myenum
  580. List1.AddItem (ev.Path_.Class)
  581. Exit For
  582. Next
  583. Status.Caption = "Completed"
  584. Exit Sub
  585. ErrorHandler:
  586. Call HandleErrors(Err.Number, Err.Description, Nothing)
  587. End Sub
  588. Private Sub Command16_Click()
  589. Begin
  590. On Error GoTo ErrorHandler
  591. services.ExecNotificationQueryAsync classSink, "select * from __InstanceCreationEvent where TargetInstance isa ""Rogers""", , , , tmpContext
  592. Exit Sub
  593. ErrorHandler:
  594. Call HandleErrors(Err.Number, Err.Description, Nothing)
  595. End Sub
  596. Private Sub Command17_Click()
  597. Dim rogers As SWbemObject
  598. Dim path As SWbemObjectPath
  599. Begin
  600. On Error GoTo ErrorHandler
  601. Set rogers = services.Get("Rogers.num=1")
  602. rogers.Dummy = rogers.Dummy + 1
  603. Set path = rogers.Put_
  604. Status.Caption = "Completed"
  605. ObjectPathLabel.Caption = path.path
  606. Exit Sub
  607. ErrorHandler:
  608. Call HandleErrors(Err.Number, Err.Description, Nothing)
  609. End Sub
  610. Private Sub Command18_Click()
  611. Dim rogers As SWbemObject
  612. Dim result As Object
  613. Begin
  614. On Error GoTo ErrorHandler
  615. Set rogers = services.Get("Rogers.num=1")
  616. rogers.Dummy = rogers.Dummy + 1
  617. rogers.PutAsync_ someSink, , , tmpContext
  618. Exit Sub
  619. ErrorHandler:
  620. Call HandleErrors(Err.Number, Err.Description, Nothing)
  621. End Sub
  622. Private Sub Command19_Click()
  623. Dim rogers As SWbemObject
  624. Dim path As SWbemObjectPath
  625. Begin
  626. On Error GoTo ErrorHandler
  627. Set rogers = services.Get("Rogers")
  628. Set path = rogers.Put_
  629. Status.Caption = "Completed"
  630. ObjectPathLabel.Caption = path.path
  631. Exit Sub
  632. ErrorHandler:
  633. Call HandleErrors(Err.Number, Err.Description, Nothing)
  634. End Sub
  635. Private Sub Command2_Click()
  636. Begin
  637. On Error GoTo ErrorHandler
  638. services.ExecQueryAsync someSink, QueryBox.Text, , , , tmpContext
  639. Exit Sub
  640. ErrorHandler:
  641. Call HandleErrors(Err.Number, Err.Description, Nothing)
  642. End Sub
  643. Private Sub Command20_Click()
  644. Dim rogers As SWbemObject
  645. Dim result As Object
  646. Begin
  647. On Error GoTo ErrorHandler
  648. Set rogers = services.Get("Rogers")
  649. rogers.Dummy = rogers.Dummy + 1
  650. rogers.PutAsync_ someSink, , , tmpContext
  651. Exit Sub
  652. ErrorHandler:
  653. Call HandleErrors(Err.Number, Err.Description, Nothing)
  654. End Sub
  655. Private Sub Command3_Click()
  656. Dim disk As SWbemObject
  657. Begin
  658. On Error GoTo ErrorHandler
  659. Set disk = services.Get("Win32_LogicalDisk.DeviceID=""C:""")
  660. List1.AddItem (disk.DeviceID)
  661. Status.Caption = "Completed"
  662. Exit Sub
  663. ErrorHandler:
  664. Call HandleErrors(Err.Number, Err.Description, Nothing)
  665. End Sub
  666. Private Sub Command4_Click()
  667. Dim result As Object
  668. Begin
  669. On Error GoTo ErrorHandler
  670. services.GetAsync someSink, "Win32_LogicalDisk.DeviceID=""C:""", , , tmpContext
  671. Exit Sub
  672. ErrorHandler:
  673. Call HandleErrors(Err.Number, Err.Description, Nothing)
  674. End Sub
  675. Private Sub Command5_Click()
  676. Begin
  677. On Error GoTo ErrorHandler
  678. If Check1 = 0 Then
  679. services.Delete ("Rogers.num=1")
  680. Else
  681. List1.AddItem ("Object Operation")
  682. Set obj = services.Get("Rogers.num=1")
  683. obj.Delete_
  684. End If
  685. Status.Caption = "Completed"
  686. Exit Sub
  687. ErrorHandler:
  688. Call HandleErrors(Err.Number, Err.Description, Nothing)
  689. End Sub
  690. Private Sub Command6_Click()
  691. Dim result As Object
  692. Begin
  693. On Error GoTo ErrorHandler
  694. If Check1 = 0 Then
  695. services.DeleteAsync someSink, "Rogers.num=1", , , tmpContext
  696. Else
  697. List1.AddItem ("Object Operation")
  698. Set obj = services.Get("Rogers.num=1")
  699. obj.DeleteAsync_ someSink, , , tmpContext
  700. End If
  701. Exit Sub
  702. ErrorHandler:
  703. Call HandleErrors(Err.Number, Err.Description, Nothing)
  704. End Sub
  705. Private Sub Command7_Click()
  706. Begin
  707. On Error GoTo ErrorHandler
  708. If Check1 = 0 Then
  709. Set myenum = services.InstancesOf("Win32_LogicalDisk")
  710. Else
  711. List1.AddItem ("Object Operation")
  712. Set obj = services.Get("Win32_LogicalDisk")
  713. Set myenum = obj.Instances_
  714. End If
  715. For Each disk In myenum
  716. List1.AddItem (disk.DeviceID)
  717. Next
  718. Status.Caption = "Completed"
  719. Exit Sub
  720. ErrorHandler:
  721. Call HandleErrors(Err.Number, Err.Description, Nothing)
  722. End Sub
  723. Private Sub Command8_Click()
  724. Dim result As Object
  725. Begin
  726. On Error GoTo ErrorHandler
  727. If Check1 = 0 Then
  728. services.InstancesOfAsync someSink, "Win32_LogicalDisk", , , tmpContext
  729. Else
  730. List1.AddItem ("Object Operation")
  731. Set obj = services.Get("Win32_LogicalDisk")
  732. obj.InstancesAsync_ someSink, , , tmpContext
  733. End If
  734. Exit Sub
  735. ErrorHandler:
  736. Call HandleErrors(Err.Number, Err.Description, Nothing)
  737. End Sub
  738. Private Sub Command9_Click()
  739. Begin
  740. Dim myClass As SWbemObject
  741. On Error GoTo ErrorHandler
  742. If Check1 = 0 Then
  743. Set myenum = services.SubclassesOf("Cim_LogicalDevice")
  744. Else
  745. List1.AddItem ("Object Operation")
  746. Set obj = services.Get("Cim_LogicalDevice")
  747. Set myenum = obj.Subclasses_
  748. End If
  749. For Each myClass In myenum
  750. List1.AddItem (myClass.Path_.Class)
  751. Next
  752. Status.Caption = "Completed"
  753. Exit Sub
  754. ErrorHandler:
  755. Call HandleErrors(Err.Number, Err.Description, Nothing)
  756. End Sub
  757. Private Sub DeleteContext_Click()
  758. context.DeleteAll
  759. ContextList.Clear
  760. End Sub
  761. Private Sub Form_Load()
  762. 'Set services = GetObject("WinMgmts:")
  763. Set locator = CreateObject("WbemScripting.SWbemLocator")
  764. Set services = locator.ConnectServer()
  765. services.Security_.ImpersonationLevel = wbemImpersonationLevelImpersonate
  766. Set someSink = New SWbemSink
  767. Set classSink = New SWbemSink
  768. Set context = New SWbemNamedValueSet
  769. On Error GoTo ErrorHandler
  770. Set tmpSink1 = someSink
  771. Set tmpSink2 = someSink
  772. Set tmpSink3 = someSink
  773. Set tmpSink4 = someSink
  774. Set tmpSink5 = someSink
  775. Set tmpSink6 = someSink
  776. Set tmpSink7 = someSink
  777. Set tmpSink8 = someSink
  778. Set tmpSink9 = someSink
  779. Set tmpSink10 = someSink
  780. Set tmpSink11 = someSink
  781. Set tmpSink12 = someSink
  782. Set tmpSink13 = someSink
  783. Set tmpSink14 = someSink
  784. Set tmpSink15 = someSink
  785. Set tmpSink16 = someSink
  786. Set tmpSink17 = someSink
  787. ErrorHandler:
  788. Call HandleErrors(Err.Number, Err.Description, Nothing)
  789. myimage = True
  790. End Sub
  791. Private Sub someSink_OnCompleted(ByVal hResult As WbemScripting.WbemErrorEnum, ByVal pErrorObject As WbemScripting.ISWbemObject, ByVal pAsyncContext As WbemScripting.ISWbemNamedValueSet)
  792. Dim str As String
  793. GetErrorString hResult, str
  794. Call DisplayContext("OnCompleted(" & str & ") ", pAsyncContext)
  795. Call HandleErrors(hResult, "", pErrorObject)
  796. End Sub
  797. Private Sub someSink_OnObjectPut(ByVal pObjectPath As WbemScripting.ISWbemObjectPath, ByVal pAsyncContext As WbemScripting.ISWbemNamedValueSet)
  798. DisplayContext "OnObjectPut", pAsyncContext
  799. ObjectPathLabel.Caption = pObjectPath.path
  800. End Sub
  801. Private Sub someSink_OnObjectReady(ByVal pObject As WbemScripting.ISWbemObject, ByVal pAsyncContext As WbemScripting.ISWbemNamedValueSet)
  802. DisplayContext "OnObjectReady", pAsyncContext
  803. List1.AddItem (pObject.Path_.RelPath)
  804. End Sub
  805. Private Sub someSink_OnProgress(ByVal upperBound As Long, ByVal current As Long, ByVal message As String, ByVal pAsyncContext As WbemScripting.ISWbemNamedValueSet)
  806. DisplayContext "OnProgress", pAsyncContext
  807. MsgBox ("OnProgress called - upper: " & upperBound & " current: " & current & " str: " & message)
  808. End Sub
  809. Private Sub Timer1_Timer()
  810. If myimage = True Then
  811. Image1.Picture = Image2.Picture
  812. myimage = False
  813. Else
  814. Image1.Picture = Image3.Picture
  815. myimage = True
  816. End If
  817. End Sub
  818. Private Sub HandleErrors(ByVal hResult As Long, ByVal str As String, ByVal pErrorObject As WbemScripting.ISWbemObject)
  819. Dim tmpStr As String
  820. Status.Caption = "Completed"
  821. LastError.Caption = hResult
  822. GetErrorString hResult, tmpStr
  823. LastErrorString.Caption = tmpStr
  824. End Sub
  825. Private Sub GetErrorString(ByVal hResult As Long, ByRef str As String)
  826. If (hResult = 0) Then
  827. str = "Success"
  828. ElseIf (str = "") Then
  829. Select Case hResult
  830. Case WbemErrorEnum.wbemErrFailed
  831. str = "wbemErrFailed"
  832. Case WbemErrorEnum.wbemErrNotFound
  833. str = "wbemErrNotFound"
  834. Case WbemErrorEnum.wbemErrAccessDenied
  835. str = "wbemErrAccessDenied"
  836. Case WbemErrorEnum.wbemErrProviderFailure
  837. str = "wbemErrProviderFailure"
  838. Case WbemErrorEnum.wbemErrTypeMismatch
  839. str = "wbemErrTypeMismatch"
  840. Case WbemErrorEnum.wbemErrOutOfMemory
  841. str = "wbemErrOutOfMemory"
  842. Case WbemErrorEnum.wbemErrInvalidContext
  843. str = "wbemErrInvalidContext"
  844. Case WbemErrorEnum.wbemErrInvalidParameter
  845. str = "wbemErrInvalidParameter"
  846. Case WbemErrorEnum.wbemErrNotAvailable
  847. str = "wbemErrNotAvailable"
  848. Case WbemErrorEnum.wbemErrCriticalError
  849. str = "wbemErrCriticalError"
  850. Case WbemErrorEnum.wbemErrInvalidStream
  851. str = "wbemErrInvalidStream"
  852. Case WbemErrorEnum.wbemErrNotSupported
  853. str = "wbemErrNotSupported"
  854. Case WbemErrorEnum.wbemErrInvalidSuperclass
  855. str = "wbemErrInvalidSuperclass"
  856. Case WbemErrorEnum.wbemErrInvalidNamespace
  857. str = "wbemErrInvalidNamespace"
  858. Case WbemErrorEnum.wbemErrInvalidObject
  859. str = "wbemErrInvalidObject"
  860. Case WbemErrorEnum.wbemErrInvalidClass
  861. str = "wbemErrInvalidClass"
  862. Case WbemErrorEnum.wbemErrProviderNotFound
  863. str = "wbemErrProviderNotFound"
  864. Case WbemErrorEnum.wbemErrInvalidProviderRegistration
  865. str = "wbemErrInvalidProviderRegistration"
  866. Case WbemErrorEnum.wbemErrProviderLoadFailure
  867. str = "wbemErrProviderLoadFailure"
  868. Case WbemErrorEnum.wbemErrInitializationFailure
  869. str = "wbemErrInitializationFailure"
  870. Case WbemErrorEnum.wbemErrTransportFailure
  871. str = "wbemErrTransportFailure"
  872. Case WbemErrorEnum.wbemErrInvalidOperation
  873. str = "wbemErrInvalidOperation"
  874. Case WbemErrorEnum.wbemErrInvalidQuery
  875. str = "wbemErrInvalidQuery"
  876. Case WbemErrorEnum.wbemErrInvalidQueryType
  877. str = "wbemErrInvalidQueryType"
  878. Case WbemErrorEnum.wbemErrAlreadyExists
  879. str = "wbemErrAlreadyExists"
  880. Case WbemErrorEnum.wbemErrOverrideNotAllowed
  881. str = "wbemErrOverrideNotAllowed"
  882. Case WbemErrorEnum.wbemErrPropagatedQualifier
  883. str = "wbemErrPropagatedQualifier"
  884. Case WbemErrorEnum.wbemErrPropagatedProperty
  885. str = "wbemErrPropagatedProperty"
  886. Case WbemErrorEnum.wbemErrUnexpected
  887. str = "wbemErrUnexpected"
  888. Case WbemErrorEnum.wbemErrIllegalOperation
  889. str = "wbemErrIllegalOperation"
  890. Case WbemErrorEnum.wbemErrCannotBeKey
  891. str = "wbemErrCannotBeKey"
  892. Case WbemErrorEnum.wbemErrIncompleteClass
  893. str = "wbemErrIncompleteClass"
  894. Case WbemErrorEnum.wbemErrInvalidSyntax
  895. str = "wbemErrInvalidSyntax"
  896. Case WbemErrorEnum.wbemErrNondecoratedObject
  897. str = "wbemErrNondecoratedObject"
  898. Case WbemErrorEnum.wbemErrReadOnly
  899. str = "wbemErrReadOnly"
  900. Case WbemErrorEnum.wbemErrProviderNotCapable
  901. str = "wbemErrProviderNotCapable"
  902. Case WbemErrorEnum.wbemErrClassHasChildren
  903. str = "wbemErrClassHasChildren"
  904. Case WbemErrorEnum.wbemErrClassHasInstances
  905. str = "wbemErrClassHasInstances"
  906. Case WbemErrorEnum.wbemErrQueryNotImplemented
  907. str = "wbemErrQueryNotImplemented"
  908. Case WbemErrorEnum.wbemErrIllegalNull
  909. str = "wbemErrIllegalNull"
  910. Case WbemErrorEnum.wbemErrInvalidQualifierType
  911. str = "wbemErrInvalidQualifierType"
  912. Case WbemErrorEnum.wbemErrInvalidPropertyType
  913. str = "wbemErrInvalidPropertyType"
  914. Case WbemErrorEnum.wbemErrValueOutOfRange
  915. str = "wbemErrValueOutOfRange"
  916. Case WbemErrorEnum.wbemErrCannotBeSingleton
  917. str = "wbemErrCannotBeSingleton"
  918. Case WbemErrorEnum.wbemErrInvalidCimType
  919. str = "wbemErrInvalidCimType"
  920. Case WbemErrorEnum.wbemErrInvalidMethod
  921. str = "wbemErrInvalidMethod"
  922. Case WbemErrorEnum.wbemErrInvalidMethodParameters
  923. str = "wbemErrInvalidMethodParameters"
  924. Case WbemErrorEnum.wbemErrSystemProperty
  925. str = "wbemErrSystemProperty"
  926. Case WbemErrorEnum.wbemErrInvalidProperty
  927. str = "wbemErrInvalidProperty"
  928. Case WbemErrorEnum.wbemErrCallCancelled
  929. str = "wbemErrCallCancelled"
  930. Case WbemErrorEnum.wbemErrShuttingDown
  931. str = "wbemErrShuttingDown"
  932. Case WbemErrorEnum.wbemErrPropagatedMethod
  933. str = "wbemErrPropagatedMethod"
  934. Case WbemErrorEnum.wbemErrUnsupportedParameter
  935. str = "wbemErrUnsupportedParameter"
  936. Case WbemErrorEnum.wbemErrMissingParameter
  937. str = "wbemErrMissingParameter"
  938. Case WbemErrorEnum.wbemErrInvalidParameterId
  939. str = "wbemErrInvalidParameterId"
  940. Case WbemErrorEnum.wbemErrNonConsecutiveParameterIds
  941. str = "wbemErrNonConsecutiveParameterIds"
  942. Case WbemErrorEnum.wbemErrParameterIdOnRetval
  943. str = "wbemErrParameterIdOnRetval"
  944. Case WbemErrorEnum.wbemErrInvalidObjectPath
  945. str = "wbemErrInvalidObjectPath"
  946. Case WbemErrorEnum.wbemErrOutOfDiskSpace
  947. str = "wbemErrOutOfDiskSpace"
  948. Case WbemErrorEnum.wbemErrRegistrationTooBroad
  949. str = "wbemErrRegistrationTooBroad"
  950. Case WbemErrorEnum.wbemErrRegistrationTooPrecise
  951. str = "wbemErrRegistrationTooPrecise"
  952. Case WbemErrorEnum.wbemErrTimedout
  953. str = "wbemErrTimedout"
  954. Case Else
  955. str = hResult
  956. End Select
  957. End If
  958. End Sub
  959. Private Sub Begin()
  960. List1.Clear
  961. ContextResults.Clear
  962. Status.Caption = "In Progress"
  963. ObjectPathLabel.Caption = "Null"
  964. If (context.Count = 0) Then
  965. Set tmpContext = Nothing
  966. Else
  967. Set tmpContext = context
  968. End If
  969. End Sub
  970. Private Sub DisplayContext(ByVal str As String, Optional ByVal asyncContext As WbemScripting.ISWbemNamedValueSet)
  971. Dim i As SWbemNamedValue
  972. ContextResults.AddItem (str)
  973. If asyncContext Is Nothing Then
  974. ContextResults.AddItem ("Empty")
  975. Else
  976. For Each i In asyncContext
  977. ContextResults.AddItem (i.Name & "=" & i.Value)
  978. Next
  979. End If
  980. End Sub