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...
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)
but, none of the wine drivers correctly initialize the dwUser while processing the various XXXX_OPEN messages
it works as it is because most of the drivers only support a single instance, hence any value for the unique ID will do
HTH