public RenderingControlLastChange(CpRenderingControl cpRC, string Ident, int ID, RenderingControlLastChange.OnReadyHandler ReadyCallback)
        {
            OpenSource.Utilities.InstanceTracker.Add(this);
            this.OnReady += ReadyCallback;
            InstanceID    = ID;
            Identifier    = Ident;
            _cp           = cpRC;
            _cp.OnStateVariable_LastChange += new CpRenderingControl.StateVariableModifiedHandler_LastChange(LastChangeSink);
            _cp._subscribe(500);

            lock (this)
            {
                if (_cp.HasAction_GetVolume)
                {
                    CpRenderingControl.Delegate_OnResult_GetVolume TD = new CpRenderingControl.Delegate_OnResult_GetVolume(VolumeSink);

                    StateCounter += _cp.Values_A_ARG_TYPE_Channel.Length;

                    foreach (string voltype in _cp.Values_A_ARG_TYPE_Channel)
                    {
                        _cp.SetUnspecifiedValue("Enum_A_ARG_TYPE_Channel", voltype);
                        _cp.GetVolume((UInt32)ID, CpRenderingControl.Enum_A_ARG_TYPE_Channel._UNSPECIFIED_, null, TD);
                    }
                }
                if (_cp.HasAction_GetMute)
                {
                    CpRenderingControl.Delegate_OnResult_GetMute RGM = new CpRenderingControl.Delegate_OnResult_GetMute(MuteSink);
                    StateCounter += _cp.Values_A_ARG_TYPE_Channel.Length;

                    foreach (string voltype in _cp.Values_A_ARG_TYPE_Channel)
                    {
                        _cp.SetUnspecifiedValue("Enum_A_ARG_TYPE_Channel", voltype);
                        _cp.GetMute((UInt32)ID, CpRenderingControl.Enum_A_ARG_TYPE_Channel._UNSPECIFIED_, null, RGM);
                    }
                }

                if (StateCounter == 0)
                {
                    if (OnReady != null)
                    {
                        OnReady(this);
                    }
                }
            }
        }
		public RenderingControlLastChange(CpRenderingControl cpRC, string Ident, int ID, RenderingControlLastChange.OnReadyHandler ReadyCallback)
		{
			//OpenSource.Utilities.InstanceTracker.Add(this);
			this.OnReady += ReadyCallback;
			InstanceID = ID;
			Identifier = Ident;
			_cp = cpRC;
			_cp.OnStateVariable_LastChange += new CpRenderingControl.StateVariableModifiedHandler_LastChange(LastChangeSink);
			_cp._subscribe(500);

			lock(this)
			{
				if(_cp.HasAction_GetVolume)
				{
					CpRenderingControl.Delegate_OnResult_GetVolume TD =  new CpRenderingControl.Delegate_OnResult_GetVolume(VolumeSink);
				
					StateCounter += _cp.Values_A_ARG_TYPE_Channel.Length;

					foreach(string voltype in _cp.Values_A_ARG_TYPE_Channel)
					{
						_cp.SetUnspecifiedValue("Enum_A_ARG_TYPE_Channel",voltype);
						_cp.GetVolume((UInt32)ID,CpRenderingControl.Enum_A_ARG_TYPE_Channel._UNSPECIFIED_,null,TD);
					}
				}
				if(_cp.HasAction_GetMute)
				{
					CpRenderingControl.Delegate_OnResult_GetMute RGM = new CpRenderingControl.Delegate_OnResult_GetMute(MuteSink);
					StateCounter += _cp.Values_A_ARG_TYPE_Channel.Length;

					foreach(string voltype in _cp.Values_A_ARG_TYPE_Channel)
					{
						_cp.SetUnspecifiedValue("Enum_A_ARG_TYPE_Channel",voltype);
						_cp.GetMute((UInt32)ID,CpRenderingControl.Enum_A_ARG_TYPE_Channel._UNSPECIFIED_,null,RGM);
					}
				}

				if(StateCounter==0)
				{
					if(OnReady!=null) OnReady(this);
				}
			}
		}