using System; using System.Runtime.InteropServices; namespace NAudio.CoreAudioApi.Interfaces { /// /// IMMNotificationClient /// [Guid("7991EEC9-7E89-4D85-8390-6C703CEC60C0"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), ComImport] public interface IMMNotificationClient { /// /// Device State Changed /// void OnDeviceStateChanged([MarshalAs(UnmanagedType.LPWStr)] string deviceId, [MarshalAs(UnmanagedType.I4)] DeviceState newState); /// /// Device Added /// void OnDeviceAdded([MarshalAs(UnmanagedType.LPWStr)] string pwstrDeviceId); /// /// Device Removed /// void OnDeviceRemoved([MarshalAs(UnmanagedType.LPWStr)] string deviceId); /// /// Default Device Changed /// void OnDefaultDeviceChanged(DataFlow flow, Role role, [MarshalAs(UnmanagedType.LPWStr)] string defaultDeviceId); /// /// Property Value Changed /// /// /// void OnPropertyValueChanged([MarshalAs(UnmanagedType.LPWStr)] string pwstrDeviceId, PropertyKey key); } }