Maarten Lankhorst : mciqtz32: Handle mciOpen better.

Alexandre Julliard julliard at winehq.org
Wed May 19 10:34:16 CDT 2010


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

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Tue May 18 20:14:07 2010 +0200

mciqtz32: Handle mciOpen better.

---

 dlls/mciqtz32/mciqtz.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c
index 36a7fcb..cdd0c33 100644
--- a/dlls/mciqtz32/mciqtz.c
+++ b/dlls/mciqtz32/mciqtz.c
@@ -145,6 +145,8 @@ static DWORD MCIQTZ_mciOpen(UINT wDevID, DWORD dwFlags,
 {
     WINE_MCIQTZ* wma;
     HRESULT hr;
+    IBasicVideo *vidbasic;
+    IVideoWindow *vidwin;
 
     TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpOpenParms);
 
@@ -190,6 +192,31 @@ static DWORD MCIQTZ_mciOpen(UINT wDevID, DWORD dwFlags,
         goto err;
     }
 
+    hr = IFilterGraph2_QueryInterface(wma->pgraph, &IID_IVideoWindow, (void**)&vidwin);
+    if (SUCCEEDED(hr))
+        hr = IFilterGraph2_QueryInterface(wma->pgraph, &IID_IBasicVideo, (void**)&vidbasic);
+    if (SUCCEEDED(hr)) {
+        DWORD style;
+        RECT rc = { 0, 0, 0, 0 };
+        IVideoWindow_put_AutoShow(vidwin, OAFALSE);
+        style = 0;
+        if (dwFlags & MCI_DGV_OPEN_WS)
+            style |= lpOpenParms->dwStyle;
+        if (dwFlags & MCI_DGV_OPEN_PARENT) {
+            style |= WS_CHILD;
+            IVideoWindow_put_MessageDrain(vidwin, (OAHWND)lpOpenParms->hWndParent);
+            IVideoWindow_put_WindowState(vidwin, SW_HIDE);
+            IVideoWindow_put_Owner(vidwin, (OAHWND)lpOpenParms->hWndParent);
+        }
+        IVideoWindow_put_WindowStyle(vidwin, style);
+        IBasicVideo_GetVideoSize(vidbasic, &rc.right, &rc.bottom);
+        IVideoWindow_SetWindowPosition(vidwin, rc.left, rc.top, rc.right, rc.bottom);
+        IVideoWindow_put_Visible(vidwin, OATRUE);
+        IBasicVideo_Release(vidbasic);
+    }
+    if (vidwin)
+        IVideoWindow_Release(vidwin);
+
     wma->opened = TRUE;
 
     return 0;




More information about the wine-cvs mailing list