diff --git a/dlls/msvfw32/mciwnd.c b/dlls/msvfw32/mciwnd.c index ff8a0369df0..64a19ca30fe 100644 --- a/dlls/msvfw32/mciwnd.c +++ b/dlls/msvfw32/mciwnd.c @@ -1298,30 +1298,23 @@ end_of_mci_open: } case MCI_SEEK: + case MCI_STEP: { - MCI_SEEK_PARMS mci_seek; - - switch (lParam) - { - case MCIWND_START: - lParam = SendMessageW(hWnd, MCIWNDM_GETSTART, 0, 0); - break; - - case MCIWND_END: - lParam = SendMessageW(hWnd, MCIWNDM_GETEND, 0, 0); - break; - } + MCI_SEEK_PARMS mci_seek; /* Layout is useable as MCI_XYZ_STEP_PARMS */ + DWORD flags = MCI_STEP == wMsg ? 0 : + MCIWND_START == lParam ? MCI_SEEK_TO_START : + MCIWND_END == lParam ? MCI_SEEK_TO_END : MCI_TO; mci_seek.dwTo = lParam; - mwi->lasterror = mciSendCommandW(mwi->mci, MCI_SEEK, - MCI_TO, (DWORD_PTR)&mci_seek); + mwi->lasterror = mciSendCommandW(mwi->mci, wMsg, + flags, (DWORD_PTR)&mci_seek); if (mwi->lasterror) { MCIWND_notify_error(mwi); return mwi->lasterror; } /* update window to reflect the state */ - InvalidateRect(hWnd, NULL, TRUE); + else InvalidateRect(hWnd, NULL, TRUE); return 0; } @@ -1364,15 +1357,9 @@ end_of_mci_open: } case MCI_PAUSE: - case MCI_STEP: case MCI_STOP: case MCI_RESUME: mci_generic_command(mwi, wMsg); - if (wMsg == MCI_STEP && !mwi->lasterror) - { - /* update window to reflect the state */ - InvalidateRect(hWnd, NULL, TRUE); - } return mwi->lasterror; case MCI_CONFIGURE: