Figure 1   WSC-compliant XML


 <?xml version="1.0"?>
 <component>
 <?component error="true" debug="true"?>
 
 <registration
     description="BareBones"
     progid="BareBones.WSC"
     version="1.00"
     classid="{eeb9e710-9c22-11d3-8069-367a6d000000}"
 >
 </registration>
 
 <public>
 </public>
 
 <script language="VBScript">
 <![CDATA[
 
 ]]>
 </script>
 
 </component>

Figure 2   Distance Converter in VBScript


 <?xml version="1.0"?>
 <component>
 <?component error="true" debug="true"?>
 
 <registration
     description="DistanceConverterVBScript"
     progid="DistanceConverterVBScript.WSC"
     version="1.00"
     classid="{5650a8f0-9c27-11d3-8069-367a6d000000}"
 >
 </registration>
 
 <public>
     <property name="CumeMiles" dispid = "6">
         <get/>
         <put/>
     </property>
     <property name="CumeKilometers" dispid = "5">
         <get/>
         <put/>
     </property>
     <method name="MilesToKilometers" dispid = "3">
         <PARAMETER name="Miles"/>
     </method>
     <method name="KilometersToMiles">
         <PARAMETER name="Kilometers" dispid = "4"/>
     </method>
 </public>
 
 <script language="VBScript">
 <![CDATA[
 
 dim CumeMiles
 CumeMiles = 0
 dim CumeKilometers
 CumeKilometers = 0
 
 function get_CumeMiles()
     get_CumeMiles = CumeMiles
 end function
 
 function put_CumeMiles(newValue)
     CumeMiles = newValue
 end function
 
 function get_CumeKilometers()
     get_CumeKilometers = CumeKilometers
 end function
 
 function put_CumeKilometers(newValue)
     CumeKilometers = newValue
 end function
 
 function MilesToKilometers(Miles)
         CumeMiles = CumeMiles + Miles
     CumeKilometers = CumeKilometers + Miles * 5 / 2
     MilesToKilometers = Miles * 5 / 2
 end function
 
 function KilometersToMiles(Kilometers)
     CumeKilometers = CumeKilometers + Kilometers
     CumeMiles = CumeMiles + Kilometers * 2 / 5
     KilometersToMiles = Kilometers * 2 / 5
 end function
 
 ]]>
 </script>
 
 </component>

Figure 3   Distance Converter in JScript


 <?xml version="1.0"?>
 <component>
 <?component error="true" debug="true"?>
 
 <registration
     description="DistanceConverterJScript"
     progid="DistanceConverterJScript.WSC"
     version="1.00"
     classid="{f7b9ed70-9dd4-11d3-806a-a6b1d8000000}"
 >
 </registration>
 
 <public>
     <property name="CumeMiles">
         <get/>
         <put/>
     </property>
     <property name="CumeKilometers">
         <get/>
         <put/>
     </property>
     <method name="MilesToKilometers">
         <PARAMETER name="Miles"/>
     </method>
     <method name="KilometersToMiles">
         <PARAMETER name="Kilometers"/>
     </method>
 </public>
 
 <script language="JScript">
 <![CDATA[
 
 var description = new DistanceConverterJScript;
 
 function DistanceConverterJScript()
 {
     this.get_CumeMiles = get_CumeMiles;
     this.put_CumeMiles = put_CumeMiles;
     this.get_CumeKilometers = get_CumeKilometers;
     this.put_CumeKilometers = put_CumeKilometers;
 
     this.MilesToKilometers = MilesToKilometers;
     this.KilometersToMiles = KilometersToMiles;
 }
 
 var CumeMiles = 0;
 var CumeKilometers = 0;
 
 function get_CumeMiles()
 {
     return CumeMiles;
 }
 
 function put_CumeMiles(newValue)
 {
     CumeMiles = newValue;
 }
 
 function get_CumeKilometers()
 {
     return CumeKilometers;
 }
 
 function put_CumeKilometers(newValue)
 {
     CumeKilometers = newValue;
 }
 
 function MilesToKilometers(Miles)
 {
     CumeMiles += Miles;
     CumeKilometers += Miles * 5 / 2;
     return Miles *5 / 2;
 }
 
 function KilometersToMiles(Kilometers)
 {
     CumeKilometers += Kilometers;
     CumeMiles += Kilometers * 2 / 5;
     return Kilometers * 2 / 5;
 }
 
 ]]>
 </script>
 
 </component>