private static Win7ComInterface.IAudioEndpointVolume GetAudioEndPointVolume() { Win7ComInterface.IAudioEndpointVolume result = null; InvokeTryCatch("Win7VolumeOperate.GetAudioEndPointVolume", () => { Win7ComInterface.IMMDevice device = Device; if (device == null) { return; } const uint CLSCTX_ALL = 23u; object comEndPointVol; Guid IID_IAudioEndpointVolume = typeof(Win7ComInterface.IAudioEndpointVolume).GUID; Marshal.ThrowExceptionForHR(device.Activate(ref IID_IAudioEndpointVolume, CLSCTX_ALL, IntPtr.Zero, out comEndPointVol)); Win7ComInterface.IAudioEndpointVolume endPointVol = comEndPointVol as Win7ComInterface.IAudioEndpointVolume; if (endPointVol == null) { throw new Exception("初始化 Win7以上操作系统的 音频Com IAudioEndpointVolume 组件失败!"); } uint HardwareSupp; Marshal.ThrowExceptionForHR(endPointVol.QueryHardwareSupport(out HardwareSupp)); result = endPointVol; }); return(result); }
private static void SetEndPointVolumeMasterVolumeLevelScalar(float value) { InvokeTryCatch("Win7VolumeOperate.SetEndPointVolumeMasterVolumeLevelScalar", () => { Win7ComInterface.IAudioEndpointVolume endPointVolume = EndPointVolume; if (endPointVolume == null) { return; } Marshal.ThrowExceptionForHR(endPointVolume.SetMasterVolumeLevelScalar(value, Guid.Empty)); }); }
private static float GetEndPointVolumeMasterVolumeLevelScalar() { float result = 0; InvokeTryCatch("Win7VolumeOperate.GetEndPointVolumeMasterVolumeLevelScalar", () => { Win7ComInterface.IAudioEndpointVolume endPointVolume = EndPointVolume; if (endPointVolume == null) { return; } float temp; Marshal.ThrowExceptionForHR(endPointVolume.GetMasterVolumeLevelScalar(out temp)); result = temp; }); return(result); }
private static bool GetEndPointVolumeMute() { bool result = false; InvokeTryCatch("Win7VolumeOperate.GetEndPointVolumeMute", () => { Win7ComInterface.IAudioEndpointVolume endPointVolume = EndPointVolume; if (endPointVolume == null) { return; } bool temp; Marshal.ThrowExceptionForHR(endPointVolume.GetMute(out temp)); result = temp; }); return(result); }