音量控制代码如下:
void DisableMicBoost(int hWaveIn)
{
MMRESULT mmr ;
HMIXEROBJ hInputMixer = NULL;
mmr = mixerOpen( 
( LPHMIXER )( &hInputMixer ), 
( UINT )( hWaveIn ), 0, 0, 
MIXER_OBJECTF_MIXER/*MIXER_OBJECTF_HWAVEIN*/ ) ;
if ( mmr == MMSYSERR_NOERROR )
{
MIXERLINE mixerLine ;
mixerLine.cbStruct = sizeof( MIXERLINE ) ;
mixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE ;

mmr = mixerGetLineInfo(
( HMIXEROBJ )( hInputMixer ),
&mixerLine,
MIXER_GETLINEINFOF_COMPONENTTYPE ) ; if ( mmr == MMSYSERR_NOERROR )
{

LPMIXERCONTROL mixerControl = (LPMIXERCONTROL)malloc( sizeof( MIXERCONTROL ) * mixerLine.cControls ) ;

MIXERLINECONTROLS mixerLineControls ;
mixerLineControls.cbStruct = sizeof( MIXERLINECONTROLS ) ;
mixerLineControls.dwLineID = mixerLine.dwLineID ;
mixerLineControls.cControls = mixerLine.cControls ;
mixerLineControls.cbmxctrl = sizeof( MIXERCONTROL ) ;
mixerLineControls.pamxctrl = ( LPMIXERCONTROL )( mixerControl ) ;

mmr = mixerGetLineControls(
( HMIXEROBJ )( hInputMixer ), 
&mixerLineControls,
MIXER_GETLINECONTROLSF_ALL ) ;

if ( mmr == MMSYSERR_NOERROR )
{

int x = 0 ;
for ( ; x < mixerLineControls.cControls ; ++x )
{
// check control type
if ( mixerControl[x].dwControlType == MIXERCONTROL_CONTROLTYPE_LOUDNESS )
{
MIXERCONTROLDETAILS_BOOLEAN value ; MIXERCONTROLDETAILS mixerControlDetails ;
mixerControlDetails.cbStruct = sizeof( MIXERCONTROLDETAILS ) ;
mixerControlDetails.dwControlID = mixerControl[x].dwControlID;
mixerControlDetails.cChannels = 1 ;
mixerControlDetails.cMultipleItems = 0 ;
mixerControlDetails.cbDetails = sizeof( MIXERCONTROLDETAILS_BOOLEAN ) ;
mixerControlDetails.paDetails = &value ; mmr = mixerGetControlDetails( 
( HMIXEROBJ )( hInputMixer ),
&mixerControlDetails,
MIXER_GETCONTROLDETAILSF_VALUE
) ; if ( mmr == MMSYSERR_NOERROR )
{

mmr = mixerSetControlDetails( 
( HMIXEROBJ )( hInputMixer ),
&mixerControlDetails,
MIXER_SETCONTROLDETAILSF_VALUE
) ;
}
}
}
}

if (mixerControl)
{
free(mixerControl);
mixerControl=NULL;
}
} mixerClose( (HMIXER)( hInputMixer ) ) ;
}
}BOOL CMediaController::Gips_Connect()
{
int nDeviceID = GetInMediaDevice(GetSelectAudioSource());
DisableMicBoost(nDeviceID);
int nRet=0; if (0!=m_pGipsVoiceEngineLib->GIPSVE_SetSoundDevices(nDeviceID,WAVE_MAPPER))
{
nRet=m_pGipsVoiceEngineLib->GIPSVE_GetLastError();
if (nRet==8020)
{
Gips_StopAudioPlayer();
nRet=m_pGipsVoiceEngineLib->GIPSVE_SetSoundDevices(nDeviceID,WAVE_MAPPER);
Gips_StartAudioPlayer();
}
} m_pGipsVoiceEngineLib->GIPSVE_SetMicVolume(50);
m_pGipsVoiceEngineLib->GIPSVE_SetSpeakerVolume(50);//这里怎么获取系统音量的初始值?
.............
return TRUE;
}
如上GIPSVE_SetSpeakerVolume怎么获取系统音量的初始值?谢谢!!