in Apps/EyeVolume/WinVolume.cs [78:134]
void SetMasterVolumeLevel(
[In] [MarshalAs(UnmanagedType.R4)] float fLevelDB,
[In] [MarshalAs(UnmanagedType.LPStruct)] Guid pguidEventContext);
void SetMasterVolumeLevelScalar(
[In] [MarshalAs(UnmanagedType.R4)] float fLevel,
[In] [MarshalAs(UnmanagedType.LPStruct)] Guid pguidEventContext);
[return: MarshalAs(UnmanagedType.R4)]
float GetMasterVolumeLevel();
[return: MarshalAs(UnmanagedType.R4)]
float GetMasterVolumeLevelScalar();
void SetChannelVolumeLevel(
[In] [MarshalAs(UnmanagedType.U4)] uint nChannel,
[In] [MarshalAs(UnmanagedType.R4)] float fLevelDB,
[In] [MarshalAs(UnmanagedType.LPStruct)] Guid pguidEventContext);
void SetChannelVolumeLevelScalar(
[In] [MarshalAs(UnmanagedType.U4)] uint nChannel,
[In] [MarshalAs(UnmanagedType.R4)]float fLevel,
[In] [MarshalAs(UnmanagedType.LPStruct)]Guid pguidEventContext);
void GetChannelVolumeLevel(
[In] [MarshalAs(UnmanagedType.U4)] uint nChannel,
[Out] [MarshalAs(UnmanagedType.R4)] out float level);
[return: MarshalAs(UnmanagedType.R4)]
float GetChannelVolumeLevelScalar([In] [MarshalAs(UnmanagedType.U4)] uint nChannel);
void SetMute(
[In] [MarshalAs(UnmanagedType.Bool)] bool bMute,
[In] [MarshalAs(UnmanagedType.LPStruct)] Guid pguidEventContext);
[return: MarshalAs(UnmanagedType.Bool)]
bool GetMute();
void GetVolumeStepInfo(
[Out] [MarshalAs(UnmanagedType.U4)] out uint pnStep,
[Out] [MarshalAs(UnmanagedType.U4)] out uint pnStepCount);
void VolumeStepUp([In] [MarshalAs(UnmanagedType.LPStruct)] Guid pguidEventContext);
void VolumeStepDown([In] [MarshalAs(UnmanagedType.LPStruct)] Guid pguidEventContext);
[return: MarshalAs(UnmanagedType.U4)] // bit mask
uint QueryHardwareSupport();
void GetVolumeRange(
[Out] [MarshalAs(UnmanagedType.R4)] out float pflVolumeMindB,
[Out] [MarshalAs(UnmanagedType.R4)] out float pflVolumeMaxdB,
[Out] [MarshalAs(UnmanagedType.R4)] out float pflVolumeIncrementdB);
}
class VolumeControl
{