Taking this conversation out of the bug, since it seems I opened the bug in error and it should be closed.
On Sep 19, 2009, at 2:29 AM, wine-bugs@winehq.org wrote:
http://bugs.winehq.org/show_bug.cgi?id=19523
--- Comment #3 from Eric Pouech eric.pouech@orange.fr 2009-09-19 02:28:51 --- of course, there is...
OK, in that case: a) that's good to know; and b) thanks for setting me straight. I might quibble with "of course", though. ;)
let's take the wave out driver interface as example:
DWORD WINAPI wodMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
in case wMsg in WODM_OPEN, dwUser is expected to be a pointer to a DWORD, that the driver is supposed to filled with a unique instance ID (to identify the stream)
in other (subsequent) messages, winmm passes in dwUser the unique ID defined by the driver at WODM_OPEN time
winmm correctly supports this scheme (see MMDRV_Open in dlls/winmm/ lolvldrv.c)
No offense, but looking at MMDRV_Open, it's clear as mud to me that dwDriverInstance has this meaning and corresponds to dwUser. Is there any documentation of the low-level driver interface?
but, none of the wine drivers correctly initialize the dwUser while processing the various XXXX_OPEN messages
Does that mean this functionality is untested?
Thanks again, Ken