on error resume next

Set Service = GetObject("winmgmts:root/default")

'Create a simple embeddable object
Set aClass = Service.Get
aClass.Path_.Class = "INNEROBJ01"
Set Property = aClass.Properties_.Add ("p", 19)
aClass.Properties_.Add ("q", 8).Value = "resnais"
Property.Qualifiers_.Add "fred", "wibbley"
Property.Qualifiers_.Add "dibnah", "wobbley"
aClass.Qualifiers_.Add "stavisky", "providence"
aClass.Qualifiers_.Add "muriel", "brouillard"
aClass.Put_
Set aClass = Service.Get ("INNEROBJ01")
aClass.p = 8778

'Create a class that uses that object
Set Class2 = Service.Get
Class2.Path_.Class = "EMBOBJTEST01"
Class2.Properties_.Add ("p1", 13).Value = aClass


'Now modify the path
aClass.Path_.Class = "LAGUERRE"
WScript.Echo "The current value of EMBOBJTEST01.p1.Path_.Class is [LAGUERRE]:", Class2.p1.Path_.Class
WScript.Echo

'Modify the qualifier set of the class
aClass.Qualifiers_.Remove "muriel"
aClass.Qualifiers_.Add "fumer", "pasdefumer"
Set Qualifier = aClass.Qualifiers_("stavisky")
Qualifier.Value = "melo"

Wscript.Echo "Qualifiers of EMBOBJTEST01.p1 are [(fumer,pasdefumer),(stavisky,melo)]:"
for each Qualifier in Class2.p1.Qualifiers_
	WScript.Echo Qualifier.Name, Qualifier.Value
next

Wscript.Echo "Qualifier [stavisky] has flavor [-1,-1,-1]:", Class2.p1.Qualifiers_("stavisky").IsOverridable, _
							Class2.p1.Qualifiers_("stavisky").PropagatesToInstance, _
							Class2.p1.Qualifiers_("stavisky").PropagatesToSubclass

Set Qualifier = aClass.Qualifiers_("stavisky")
Qualifier.IsOverridable = false
Qualifier.PropagatesToInstance = false
Qualifier.PropagatesToSubclass = false

Wscript.Echo "Qualifier [stavisky] has flavor [0,0,0]:", Class2.p1.Qualifiers_("stavisky").IsOverridable, _
							Class2.p1.Qualifiers_("stavisky").PropagatesToInstance, _
							Class2.p1.Qualifiers_("stavisky").PropagatesToSubclass

'Modify the qualifier set of the property
aClass.Properties_("p").Qualifiers_.Remove "fred"
aClass.Properties_("p").Qualifiers_.Add "steeple", "jack"
aClass.Properties_("p").Qualifiers_("dibnah").Value = "demolition"

WScript.Echo
Wscript.Echo "Qualifiers of EMBOBJTEST01.p1.p are [(steeple,jack),(dibnah,demolition)]:"
for each Qualifier in Class2.p1.Properties_("p").Qualifiers_
	WScript.Echo Qualifier.Name, Qualifier.Value
next

'Modify the property set of the property
aClass.Properties_.Remove "q"
aClass.Properties_.Add ("r", 19).Value = 27
aClass.Properties_("p").Value = 99

WScript.Echo
Wscript.Echo "Properties of EMBOBJTEST01.p1 are [(p,99),(r,27)]:"
for each Property in Class2.p1.Properties_
	WScript.Echo Property.Name, Property.Value
next

Class2.Put_

if Err <> 0 Then
	WScript.Echo Err.Description, Err.Source
	Err.Clear
End if