diff --git a/dlls/wineoss.drv/midi.c b/dlls/wineoss.drv/midi.c index 61d03837bb..20163b1efb 100644 --- a/dlls/wineoss.drv/midi.c +++ b/dlls/wineoss.drv/midi.c @@ -1631,6 +1631,17 @@ static DWORD modUnprepare(WORD wDevID, LPMIDIHDR lpMidiHdr, DWORD dwSize) return MMSYSERR_NOERROR; } +/************************************************************************** + * modGetVolume [internal] + */ +static DWORD modGetVolume(WORD wDevID, DWORD* lpdwVolume) +{ + if (!lpdwVolume) return MMSYSERR_INVALPARAM; + if (wDevID >= MODM_NumDevs) return MMSYSERR_BADDEVICEID; + *lpdwVolume = 0xFFFFFFFF; + return (MidiOutDev[wDevID].caps.dwSupport & MIDICAPS_VOLUME) ? 0 : MMSYSERR_NOTSUPPORTED; +} + /************************************************************************** * modReset [internal] */ @@ -1748,7 +1759,7 @@ DWORD WINAPI OSS_modMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, case MODM_GETNUMDEVS: return MODM_NumDevs; case MODM_GETVOLUME: - return 0; + return modGetVolume(wDevID, (DWORD*)dwParam1); case MODM_SETVOLUME: return 0; case MODM_RESET: