システムの音量が変化したにもかかわらず、関数が常に最大数 4294967295 を返すのはなぜですか? 私は何を間違っていますか?
私のシステムは Windows XP SP3 x86 です。
class Program
{
[DllImport("winmm.dll")]
private static extern int waveOutGetVolume(IntPtr hwo, out uint dwVolume);
static void Main(string[] args)
{
uint currVol;
int result = waveOutGetVolume(IntPtr.Zero, out currVol);
if (result != 0)
{
Console.WriteLine("Some error occured...");
Console.ReadKey();
}
Console.WriteLine("currVol = {0}", currVol); //always = 4294967295
ushort left_channel_volume = (ushort)(currVol & 0xffff);
Console.WriteLine("left_channel_volume = {0}", left_channel_volume); //always = 65535
Console.ReadKey();
}
}