📄 adjustvolumeimp.cpp
字号:
#include "stdafx.h"
#include "AdjustVolumeInterface.h"
#include "creg.hxx"
#define MAX_VOLUME 0xffffffff
#define MIN_VOLUME 0x00000000
DWORD GetCurrentVolume()
{
CReg reg( HKEY_CURRENT_USER, _T("ControlPanel\\Volume") );
return reg.ValueDW( _T("Volume"), 0x99999999 );
}
void SetVolume(DWORD dwVolume)
{
CReg reg( HKEY_CURRENT_USER, _T("ControlPanel\\Volume") );
if( waveOutSetVolume(NULL, dwVolume) != MMSYSERR_NOERROR )
{
AfxMessageBox(_T("SetVolume waveOutSetVolume error"));
}
reg.SetDW(_T("Volume"),dwVolume);
}
DWORD ChangeSoundVolume(DWORD dwNewVolume)
{
DWORD dwOldVolume = GetCurrentVolume();
SetVolume(dwNewVolume);
return dwOldVolume;
}
void AddVolume( int nLevel )
{
//get current volume
DWORD dwCurrentVolume = GetCurrentVolume();
if( dwCurrentVolume >= MAX_VOLUME )
{
return;
}
//add volume
DWORD dwSetp = MAX_VOLUME / nLevel;
DWORD dwNewVolume = dwCurrentVolume / dwSetp * dwSetp + dwSetp;
SetVolume(dwNewVolume > MAX_VOLUME ? MAX_VOLUME : dwNewVolume);
}
void ReduceVolume( int nLevel )
{
//get current volume
DWORD dwCurrentVolume = GetCurrentVolume();
if( dwCurrentVolume <= MIN_VOLUME )
{
return;
}
//reduce volume
DWORD dwSetp = MAX_VOLUME / nLevel;
DWORD dwNewVolume = dwCurrentVolume / dwSetp * dwSetp - dwSetp;
SetVolume(dwNewVolume < MIN_VOLUME ? MIN_VOLUME : dwNewVolume);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -