[PATCH 2/9] winmm: Implement waveOut* on top of MMDevAPI

Alexandre Julliard julliard at winehq.org
Sat Jul 9 05:19:14 CDT 2011


Andrew Eikum <aeikum at codeweavers.com> writes:

> @@ -198,21 +1771,25 @@ UINT WINAPI waveOutGetErrorTextA(UINT uError, LPSTR lpText, UINT uSize)
>   */
>  UINT WINAPI waveOutGetErrorTextW(UINT uError, LPWSTR lpText, UINT uSize)
>  {
> -    UINT        ret = MMSYSERR_BADERRNUM;
> -
> -    if (lpText == NULL) ret = MMSYSERR_INVALPARAM;
> -    else if (uSize == 0) ret = MMSYSERR_NOERROR;
> -    else if (
> -	       /* test has been removed because MMSYSERR_BASE is 0, and gcc did emit
> -		* a warning for the test was always true */
> -	       (/*uError >= MMSYSERR_BASE && */ uError <= MMSYSERR_LASTERROR) ||
> -	       (uError >= WAVERR_BASE  && uError <= WAVERR_LASTERROR)) {
> -	if (LoadStringW(hWinMM32Instance,
> -			uError, lpText, uSize) > 0) {
> -	    ret = MMSYSERR_NOERROR;
> -	}
> -    }
> -    return ret;
> +    TRACE("(%u, %p, %u)\n", uError, lpText, uSize);
> +
> +    if(!WINMM_StartDevicesThread())
> +        return MMSYSERR_ERROR;
> +
> +    if(!lpText)
> +        return MMSYSERR_INVALPARAM;
> +
> +    if(uSize == 0)
> +        return MMSYSERR_NOERROR;
> +
> +    if(uError > MMSYSERR_LASTERROR || uError < WAVERR_BASE ||
> +            uError > WAVERR_LASTERROR)
> +        return MMSYSERR_BADERRNUM;

This doesn't do what you want (and that sort of change could easily be a
separate patch).

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list