internal AudioEndpointVolume(IAudioEndpointVolume realEndpointVolume) { uint HardwareSupp; _AudioEndPointVolume = realEndpointVolume; _Channels = new AudioEndpointVolumeChannels(_AudioEndPointVolume); _StepInformation = new AudioEndpointVolumeStepInformation(_AudioEndPointVolume); Marshal.ThrowExceptionForHR(_AudioEndPointVolume.QueryHardwareSupport(out HardwareSupp)); _HardwareSupport = (EEndpointHardwareSupport)HardwareSupp; _VolumeRange = new AudioEndPointVolumeVolumeRange(_AudioEndPointVolume); _CallBack = new AudioEndpointVolumeCallback(this); Marshal.ThrowExceptionForHR(_AudioEndPointVolume.RegisterControlChangeNotify( _CallBack)); }
public void Dispose() { if (_CallBack != null) { Marshal.ThrowExceptionForHR(_AudioEndPointVolume.UnregisterControlChangeNotify( _CallBack )); _CallBack = null; } }