Jörg Höhle : msvfw32: MCI Step is like Seek.

Alexandre Julliard julliard at winehq.org
Wed Mar 17 12:19:06 CDT 2010


Module: wine
Branch: master
Commit: ce96eb790726c72bb70bbd2b274f27fc619502e6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ce96eb790726c72bb70bbd2b274f27fc619502e6

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Tue Mar 16 19:14:38 2010 +0100

msvfw32: MCI Step is like Seek.

---

 dlls/msvfw32/mciwnd.c |   29 ++++++++---------------------
 1 files changed, 8 insertions(+), 21 deletions(-)

diff --git a/dlls/msvfw32/mciwnd.c b/dlls/msvfw32/mciwnd.c
index ff8a036..64a19ca 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:




More information about the wine-cvs mailing list