[PATCH 07/17] mciqtz32: Handle mciOpen better

Maarten Lankhorst m.b.lankhorst at gmail.com
Tue May 18 13:14:07 CDT 2010


---
 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;
-- 
1.7.0.4



--------------060202040701080807060901--



More information about the wine-patches mailing list