Module: wine Branch: master Commit: 5798b95a51fb6183848975f20218ea17ca8442ce URL: http://source.winehq.org/git/wine.git/?a=commit;h=5798b95a51fb6183848975f202...
Author: Huw Davies huw@codeweavers.com Date: Fri Jul 18 12:05:52 2008 +0100
winmm: Only fill in the MIXERLINEA struct if the call to mixerGetLineInfoW succeeds.
---
dlls/winmm/winmm.c | 44 +++++++++++++++++++++++--------------------- 1 files changed, 23 insertions(+), 21 deletions(-)
diff --git a/dlls/winmm/winmm.c b/dlls/winmm/winmm.c index 8342c44..8c37a18 100644 --- a/dlls/winmm/winmm.c +++ b/dlls/winmm/winmm.c @@ -652,27 +652,29 @@ UINT WINAPI mixerGetLineInfoA(HMIXEROBJ hmix, LPMIXERLINEA lpmliA,
ret = mixerGetLineInfoW(hmix, &mliW, fdwInfo);
- lpmliA->dwDestination = mliW.dwDestination; - lpmliA->dwSource = mliW.dwSource; - lpmliA->dwLineID = mliW.dwLineID; - lpmliA->fdwLine = mliW.fdwLine; - lpmliA->dwUser = mliW.dwUser; - lpmliA->dwComponentType = mliW.dwComponentType; - lpmliA->cChannels = mliW.cChannels; - lpmliA->cConnections = mliW.cConnections; - lpmliA->cControls = mliW.cControls; - WideCharToMultiByte( CP_ACP, 0, mliW.szShortName, -1, lpmliA->szShortName, - sizeof(lpmliA->szShortName), NULL, NULL); - WideCharToMultiByte( CP_ACP, 0, mliW.szName, -1, lpmliA->szName, - sizeof(lpmliA->szName), NULL, NULL ); - lpmliA->Target.dwType = mliW.Target.dwType; - lpmliA->Target.dwDeviceID = mliW.Target.dwDeviceID; - lpmliA->Target.wMid = mliW.Target.wMid; - lpmliA->Target.wPid = mliW.Target.wPid; - lpmliA->Target.vDriverVersion = mliW.Target.vDriverVersion; - WideCharToMultiByte( CP_ACP, 0, mliW.Target.szPname, -1, lpmliA->Target.szPname, - sizeof(lpmliA->Target.szPname), NULL, NULL ); - + if(ret == MMSYSERR_NOERROR) + { + lpmliA->dwDestination = mliW.dwDestination; + lpmliA->dwSource = mliW.dwSource; + lpmliA->dwLineID = mliW.dwLineID; + lpmliA->fdwLine = mliW.fdwLine; + lpmliA->dwUser = mliW.dwUser; + lpmliA->dwComponentType = mliW.dwComponentType; + lpmliA->cChannels = mliW.cChannels; + lpmliA->cConnections = mliW.cConnections; + lpmliA->cControls = mliW.cControls; + WideCharToMultiByte( CP_ACP, 0, mliW.szShortName, -1, lpmliA->szShortName, + sizeof(lpmliA->szShortName), NULL, NULL); + WideCharToMultiByte( CP_ACP, 0, mliW.szName, -1, lpmliA->szName, + sizeof(lpmliA->szName), NULL, NULL ); + lpmliA->Target.dwType = mliW.Target.dwType; + lpmliA->Target.dwDeviceID = mliW.Target.dwDeviceID; + lpmliA->Target.wMid = mliW.Target.wMid; + lpmliA->Target.wPid = mliW.Target.wPid; + lpmliA->Target.vDriverVersion = mliW.Target.vDriverVersion; + WideCharToMultiByte( CP_ACP, 0, mliW.Target.szPname, -1, lpmliA->Target.szPname, + sizeof(lpmliA->Target.szPname), NULL, NULL ); + } return ret; }