joerg-cyril.hoe...@t-systems.com wrote: > Hi, > > + * Notifications in MCI work like a 1-element queue. > + * Each new notification request supersedes the previous one.
> + volatile HANDLE hCallback; /* Callback handle for > pending notification */ You do not need volatile here as AJ already explained. > + HANDLE old = InterlockedExchangePointer(&wmw->hCallback, NULL); > + if (old) mciDriverNotify(old,wDevID,MCI_NOTIFY_SUPERSEDED); > + mciDriverNotify(HWND_32(LOWORD(hWndCallBack)),wDevID,wStatus); Here and everywhere else in your patches, please add space before commas. > + if (wmw->hFile == 0)<----->return MCIERR_INTERNAL; /* FIXME: Save must > work even after Open new. */ > . > - if (dwFlags & MCI_WAIT) > - { > - <->FIXME("MCI_WAIT not implemented\n"); > - } > - WAVE_mciStop(wDevID, 0, NULL); > + WAVE_mciStop(wDevID, MCI_WAIT, NULL); This looks like an unrelated change. Vitaliy.