mixerGetControlDetailsW: translate strings for
MIXER_GETCONTROLDETAILSF_LISTTEXT option.
This commit is contained in:
parent
129c8dc9f7
commit
f81982aeed
|
@ -1050,18 +1050,36 @@ UINT WINAPI mixerGetControlDetailsW(HMIXEROBJ hmix, LPMIXERCONTROLDETAILS lpmcd,
|
||||||
break;
|
break;
|
||||||
case MIXER_GETCONTROLDETAILSF_LISTTEXT:
|
case MIXER_GETCONTROLDETAILSF_LISTTEXT:
|
||||||
{
|
{
|
||||||
LPVOID paDetailsW = lpmcd->paDetails;
|
MIXERCONTROLDETAILS_LISTTEXTW *pDetailsW = (MIXERCONTROLDETAILS_LISTTEXTW *)lpmcd->paDetails;
|
||||||
int size = max(1, lpmcd->cChannels) * sizeof(MIXERCONTROLDETAILS_LISTTEXTA);
|
MIXERCONTROLDETAILS_LISTTEXTA *pDetailsA;
|
||||||
|
int size = max(1, lpmcd->cChannels) * sizeof(MIXERCONTROLDETAILS_LISTTEXTA);
|
||||||
|
int i;
|
||||||
|
|
||||||
if (lpmcd->u.cMultipleItems != 0 && lpmcd->u.cMultipleItems != lpmcd->u.hwndOwner) {
|
if (lpmcd->u.cMultipleItems != 0) {
|
||||||
size *= lpmcd->u.cMultipleItems;
|
size *= lpmcd->u.cMultipleItems;
|
||||||
}
|
}
|
||||||
lpmcd->paDetails = HeapAlloc(GetProcessHeap(), 0, size);
|
pDetailsA = (MIXERCONTROLDETAILS_LISTTEXTA *)HeapAlloc(GetProcessHeap(), 0, size);
|
||||||
|
lpmcd->paDetails = pDetailsA;
|
||||||
|
lpmcd->cbDetails = sizeof(MIXERCONTROLDETAILS_LISTTEXTA);
|
||||||
/* set up lpmcd->paDetails */
|
/* set up lpmcd->paDetails */
|
||||||
ret = mixerGetControlDetailsA(hmix, lpmcd, fdwDetails);
|
ret = mixerGetControlDetailsA(hmix, lpmcd, fdwDetails);
|
||||||
/* copy from lpmcd->paDetails back to paDetailsW; */
|
/* copy from lpmcd->paDetails back to paDetailsW; */
|
||||||
HeapFree(GetProcessHeap(), 0, lpmcd->paDetails);
|
if(ret == MMSYSERR_NOERROR) {
|
||||||
lpmcd->paDetails = paDetailsW;
|
for(i=0;i<lpmcd->u.cMultipleItems*lpmcd->cChannels;i++) {
|
||||||
|
pDetailsW->dwParam1 = pDetailsA->dwParam1;
|
||||||
|
pDetailsW->dwParam2 = pDetailsA->dwParam2;
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, pDetailsA->szName, -1,
|
||||||
|
pDetailsW->szName,
|
||||||
|
sizeof(pDetailsW->szName)/sizeof(WCHAR) );
|
||||||
|
pDetailsA++;
|
||||||
|
pDetailsW++;
|
||||||
|
}
|
||||||
|
pDetailsA -= lpmcd->u.cMultipleItems*lpmcd->cChannels;
|
||||||
|
pDetailsW -= lpmcd->u.cMultipleItems*lpmcd->cChannels;
|
||||||
|
}
|
||||||
|
HeapFree(GetProcessHeap(), 0, pDetailsA);
|
||||||
|
lpmcd->paDetails = pDetailsW;
|
||||||
|
lpmcd->cbDetails = sizeof(MIXERCONTROLDETAILS_LISTTEXTW);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue