[PATCH 3/5] [WinMM]: allow 32-bit mciLoadCommandResource to load out of 16 bit module

Alexandre Julliard julliard at winehq.org
Mon Oct 19 04:40:37 CDT 2009


Eric Pouech <eric.pouech at orange.fr> writes:

> @@ -1566,7 +1554,41 @@ UINT WINAPI mciLoadCommandResource(HINSTANCE hInst, LPCWSTR resNameW, UINT type)
>      if (!(hRsrc = FindResourceW(hInst, resNameW, (LPWSTR)RT_RCDATA))) {
>  	WARN("No command table found in resource\n");
>      } else if ((hMem = LoadResource(hInst, hRsrc))) {
> -	ret = MCI_SetCommandTable(LockResource(hMem), type);
> +        if (!HIWORD(hInst)) { /* it's a 16bit resource, convert it */
> +            const BYTE* ptr16 = LockResource(hMem);

Please don't do that. 16-bit resources should always be loaded with
16-bit functions. Support for casting 16-bit instances to 32-bit is a
hack that will have to be removed.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list