[PATCH 01/23] mciqtz32: Add support for MCI_WINDOW
Maarten Lankhorst
m.b.lankhorst at gmail.com
Fri May 21 05:17:58 CDT 2010
---
dlls/mciqtz32/mciqtz.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 50 insertions(+), 2 deletions(-)
diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c
index a42529b..d19c7a4 100644
--- a/dlls/mciqtz32/mciqtz.c
+++ b/dlls/mciqtz32/mciqtz.c
@@ -776,6 +776,53 @@ 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);
+ IVideoWindow *vidwin;
+
+ 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;
+
+ IFilterGraph2_QueryInterface(wma->pgraph, &IID_IVideoWindow, (void**)&vidwin);
+ if (!vidwin)
+ 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(vidwin, OAFALSE);
+ IVideoWindow_get_WindowStyle(vidwin, &style);
+ style &= ~WS_CHILD;
+ if (lpParms->hWnd)
+ IVideoWindow_put_WindowStyle(vidwin, style|WS_CHILD);
+ else
+ IVideoWindow_put_WindowStyle(vidwin, style);
+ IVideoWindow_put_Owner(vidwin, (OAHWND)lpParms->hWnd);
+ IVideoWindow_put_Visible(vidwin, OATRUE);
+ wma->parent = lpParms->hWnd;
+ }
+ if (dwFlags & MCI_DGV_WINDOW_STATE) {
+ TRACE("Setting nCmdShow to %d\n", lpParms->nCmdShow);
+ IVideoWindow_put_WindowState(vidwin, lpParms->nCmdShow);
+ }
+ if (dwFlags & MCI_DGV_WINDOW_TEXT) {
+ TRACE("Setting caption to %s\n", debugstr_w(lpParms->lpstrText));
+ IVideoWindow_put_Caption(vidwin, lpParms->lpstrText);
+ }
+ IVideoWindow_Release(vidwin);
+ return 0;
+}
+
/******************************************************************************
* MCIAVI_mciUpdate [internal]
*/
@@ -911,11 +958,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:
--
1.7.0.4
--------------050809030904090707000907--
More information about the wine-patches
mailing list