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.
116 lines
4.1 KiB
116 lines
4.1 KiB
//***************************************************************************
|
|
//This script tests the manipulation of property values, in the case that the
|
|
//property is an embedded type
|
|
//***************************************************************************
|
|
var Service = GetObject("winmgmts:root/default");
|
|
|
|
//*******************************
|
|
//Create an embedded object class
|
|
//*******************************
|
|
|
|
/*
|
|
[woobit(24.5)]
|
|
class EmObjInner {
|
|
[key] uint32 pInner = 10;
|
|
};
|
|
*/
|
|
|
|
var EmbObjInner = Service.Get();
|
|
EmbObjInner.Path_.Class = "EmbObjInner";
|
|
EmbObjInner.Qualifiers_.Add ("woobit", 24.5);
|
|
var Property = EmbObjInner.Properties_.Add ("pInner", 19);
|
|
Property.Qualifiers_.Add ("key", true);
|
|
Property.Value = 10;
|
|
EmbObjInner.Put_();
|
|
EmbObjInner = Service.Get("EmbObjInner");
|
|
|
|
//************************************
|
|
//Create another embedded object class
|
|
//************************************
|
|
|
|
/*
|
|
[wazzuck("oxter")]
|
|
class EmbObjOuter {
|
|
uint32 p0 = 25;
|
|
EmbObjInner pOuter = instance of EmbObjInner { pInner = 564; };
|
|
EmbObjInner pOuterArray[] = {
|
|
instance of EmbObjInner { pInner = 0; },
|
|
instance of EmbObjInner { pInner = 1; },
|
|
instance of EmbObjInner { pInner = 2; }
|
|
};
|
|
};
|
|
*/
|
|
|
|
var EmbObjOuter = Service.Get();
|
|
EmbObjOuter.Path_.Class = "EmbObjOuter";
|
|
EmbObjOuter.Qualifiers_.Add ("wazzuck", "oxter");
|
|
EmbObjOuter.Properties_.Add ("p0", 19).Value = 25;
|
|
var Property = EmbObjOuter.Properties_.Add ("pOuter", 13);
|
|
var Instance = EmbObjInner.SpawnInstance_();
|
|
Instance.pInner = 564;
|
|
Property.Value = Instance;
|
|
|
|
// Add an array of embedded objects property
|
|
var Property = EmbObjOuter.Properties_.Add ("pOuterArray", 13, true);
|
|
Property.Qualifiers_.Add ("cimtype","object:EmbObjInner");
|
|
|
|
var Instance0 = EmbObjInner.SpawnInstance_();
|
|
Instance0.pInner = 0;
|
|
var Instance1 = EmbObjInner.SpawnInstance_();
|
|
Instance1.pInner = 1;
|
|
var Instance2 = EmbObjInner.SpawnInstance_();
|
|
Instance2.pInner = 2;
|
|
Property.Value = new Array (Instance0, Instance1, Instance2);
|
|
|
|
var Instance3 = EmbObjInner.SpawnInstance_();
|
|
Instance3.pInner = 42;
|
|
Property.Value(3) = Instance3
|
|
|
|
EmbObjOuter.Put_();
|
|
var EmbObjOuter = Service.Get("EmbObjOuter");
|
|
|
|
//Create a final class which wraps both embedded objects
|
|
|
|
var Class = Service.Get();
|
|
Class.Path_.Class = "EMBPROPTEST01";
|
|
var Property = Class.Properties_.Add ("p1", 13);
|
|
var Instance = EmbObjOuter.SpawnInstance_();
|
|
Instance.p0 = 2546;
|
|
Property.Value = Instance;
|
|
Class.Put_();
|
|
|
|
WScript.Echo ("The initial value of p0 is [2546]", Property.Value.p0);
|
|
WScript.Echo ("The initial value of p0 is [2546]", Class.Properties_("p1").Value.Properties_("p0"));
|
|
WScript.Echo ("The initial value of pInner is [564]", Property.Value.pOuter.pInner);
|
|
WScript.Echo ("The initial value of pInner is [564]",
|
|
Class.Properties_("p1").Value.Properties_("pOuter").Value.Properties_("pInner"));
|
|
|
|
WScript.Echo ("The initial value of EMBPROPTEST01.p1.pOuterArray[0].pInner is", Class.p1.pOuterArray(0).pInner);
|
|
WScript.Echo ("The initial value of EMBPROPTEST01.p1.pOuterArray[1].pInner is", Class.p1.pOuterArray(1).pInner);
|
|
WScript.Echo ("The initial value of EMBPROPTEST01.p1.pOuterArray[2].pInner is", Class.p1.pOuterArray(2).pInner);
|
|
WScript.Echo ("The initial value of EMBPROPTEST01.p1.pOuterArray[3].pInner is", Class.p1.pOuterArray(3).pInner);
|
|
var Class = Service.Get("EMBPROPTEST01");
|
|
|
|
//Now try direct assignment to the outer emb obj
|
|
Class.p1.p0 = 23;
|
|
WScript.Echo ("The new value of p0 is [23]", Class.p1.p0);
|
|
|
|
var Property = Class.p1;
|
|
Property.p0 = 787;
|
|
WScript.Echo ("The new value of p0 is [787]", Class.p1.p0);
|
|
|
|
Class.Properties_("p1").Value.p0 = 56;
|
|
WScript.Echo ("The new value of p0 is [56]", Class.p1.p0);
|
|
|
|
//Now try direct assignment to the inner emb obj
|
|
Class.p1.pOuter.pInner = 4;
|
|
WScript.Echo ("The new value of pInner is [4]", Class.p1.pOuter.pInner);
|
|
|
|
var Property = Class.p1.pOuter;
|
|
Property.pInner = 12;
|
|
WScript.Echo ("The new value of pInner is [12]", Class.p1.pOuter.pInner);
|
|
|
|
//Now try assignment to the inner emb obj array
|
|
Class.p1.pOuterArray(1).pInner = 5675;
|
|
WScript.Echo ("The new value of Class.p1.pOuterArray[1].pInner is [5675]", Class.p1.pOuterArray(1).pInner);
|
|
|