Maarten Lankhorst : mciqtz32: Add support for mciWindow.

Alexandre Julliard julliard at winehq.org
Fri Jul 30 10:24:14 CDT 2010


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

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Fri May 21 12:17:58 2010 +0200

mciqtz32: Add support for mciWindow.

---

 dlls/mciqtz32/mciqtz.c |   47 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c
index 6dabaa5..50faf13 100644
--- a/dlls/mciqtz32/mciqtz.c
+++ b/dlls/mciqtz32/mciqtz.c
@@ -734,6 +734,48 @@ out:
     return ret;
 }
 
+/***************************************************************************
+ *                              MCIQTZ_mciWindow                [internal]
+ */
+static DWORD MCIQTZ_mciWindow(UINT wDevID, DWORD dwFlags, LPMCI_DGV_WINDOW_PARMSW lpParms)
+{
+    WINE_MCIQTZ *wma = MCIQTZ_mciGetOpenDev(wDevID);
+
+    TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
+
+    if (!lpParms)
+        return MCIERR_NULL_PARAMETER_BLOCK;
+    if (!wma)
+        return MCIERR_INVALID_DEVICE_ID;
+    if (dwFlags & MCI_TEST)
+        return 0;
+
+    if (dwFlags & MCI_DGV_WINDOW_HWND && (IsWindow(lpParms->hWnd) || !lpParms->hWnd)) {
+        LONG style = 0;
+        TRACE("Setting hWnd to %p\n", lpParms->hWnd);
+        IVideoWindow_put_Visible(wma->vidwin, OAFALSE);
+        IVideoWindow_get_WindowStyle(wma->vidwin, &style);
+        style &= ~WS_CHILD;
+        if (lpParms->hWnd)
+            IVideoWindow_put_WindowStyle(wma->vidwin, style|WS_CHILD);
+        else
+            IVideoWindow_put_WindowStyle(wma->vidwin, style);
+        IVideoWindow_put_Owner(wma->vidwin, (OAHWND)lpParms->hWnd);
+        IVideoWindow_put_MessageDrain(wma->vidwin, (OAHWND)lpParms->hWnd);
+        IVideoWindow_put_Visible(wma->vidwin, OATRUE);
+        wma->parent = lpParms->hWnd;
+    }
+    if (dwFlags & MCI_DGV_WINDOW_STATE) {
+        TRACE("Setting nCmdShow to %d\n", lpParms->nCmdShow);
+        IVideoWindow_put_WindowState(wma->vidwin, lpParms->nCmdShow);
+    }
+    if (dwFlags & MCI_DGV_WINDOW_TEXT) {
+        TRACE("Setting caption to %s\n", debugstr_w(lpParms->lpstrText));
+        IVideoWindow_put_Caption(wma->vidwin, lpParms->lpstrText);
+    }
+    return 0;
+}
+
 /******************************************************************************
  *              MCIAVI_mciUpdate            [internal]
  */
@@ -858,11 +900,12 @@ LRESULT CALLBACK MCIQTZ_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg,
         case MCI_SETAUDIO:      return MCIQTZ_mciSetAudio  (dwDevID, dwParam1, (LPMCI_DGV_SETAUDIO_PARMSW) dwParam2);
         case MCI_UPDATE:
             return MCIQTZ_mciUpdate(dwDevID, dwParam1, (LPMCI_DGV_UPDATE_PARMS)dwParam2);
+        case MCI_WINDOW:
+            return MCIQTZ_mciWindow(dwDevID, dwParam1, (LPMCI_DGV_WINDOW_PARMSW)dwParam2);
+        case MCI_PUT:
         case MCI_RECORD:
         case MCI_RESUME:
         case MCI_INFO:
-        case MCI_PUT:
-        case MCI_WINDOW:
         case MCI_LOAD:
         case MCI_SAVE:
         case MCI_FREEZE:




More information about the wine-cvs mailing list