Alexandre, Damjan, Eric,
I understand your answers mean that a patch is needed to MCI_*_PARMS16 in mmsystem16.h to turn all occurrences of LPSTR into SEGPTR. E.g. MCI_LOAD_PARMS16, MCI_DGV_INFO_PARMS16, MCI_DGV_OPEN_PARMS16 ...
I suppose "DWORD dwCallback;" is ok to copy 1:1 (what the code currently does) because it contains a window handle, not pointer. It would be wrong if the 16bit SDK contained HWND16 wCallback; UINT16 wReserved0; because then Wine might see half garbage and be lucky when wReserved is 0.
Regards, Jörg Höhle