winmm: Fixed mixerGetControlDetails with null paDetails.

This commit is contained in:
Qian Hong 2013-10-25 05:41:53 +08:00 committed by Alexandre Julliard
parent 5e81bad239
commit 78b2fd8399
2 changed files with 9 additions and 2 deletions

View File

@ -197,10 +197,17 @@ static void mixer_test_controlA(HMIXER mix, LPMIXERCONTROLA control)
details.dwControlID = control->dwControlID;
details.cChannels = 1;
U(details).cMultipleItems = 0;
details.paDetails = &value;
details.cbDetails = sizeof(value);
/* test NULL paDetails */
details.paDetails = NULL;
rc=mixerGetControlDetails((HMIXEROBJ)mix,&details,MIXER_GETCONTROLDETAILSF_VALUE);
ok(rc==MMSYSERR_INVALPARAM,
"mixerGetDevCapsA: MMSYSERR_INVALPARAM expected, got %s\n",
mmsys_error(rc));
/* read the current control value */
details.paDetails = &value;
rc=mixerGetControlDetails((HMIXEROBJ)mix,&details,MIXER_GETCONTROLDETAILSF_VALUE);
ok(rc==MMSYSERR_NOERROR,"mixerGetControlDetails(MIXER_GETCONTROLDETAILSF_VALUE): "
"MMSYSERR_NOERROR expected, got %s\n",

View File

@ -3849,7 +3849,7 @@ UINT WINAPI mixerGetControlDetailsW(HMIXEROBJ hmix, LPMIXERCONTROLDETAILS lpmcdW
if(FAILED(hr))
return MMSYSERR_NODRIVER;
if(!lpmcdW)
if(!lpmcdW || !lpmcdW->paDetails)
return MMSYSERR_INVALPARAM;
TRACE("dwControlID: %u\n", lpmcdW->dwControlID);