Module: wine Branch: master Commit: 1c1a21214e36895600540ab3b72badb654c6cdcc URL: https://gitlab.winehq.org/wine/wine/-/commit/1c1a21214e36895600540ab3b72badb...
Author: Akihiro Sagawa sagawa.aki@gmail.com Date: Thu Aug 18 19:17:05 2022 +0900
mciqtz32: Fix MCI_DGV_WINDOW_STATE behavior.
---
dlls/mciqtz32/mciqtz.c | 4 +++- dlls/winmm/tests/mci.c | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c index abbbbc07547..2cc12c5b8ec 100644 --- a/dlls/mciqtz32/mciqtz.c +++ b/dlls/mciqtz32/mciqtz.c @@ -1022,8 +1022,10 @@ static DWORD MCIQTZ_mciWindow(UINT wDevID, DWORD dwFlags, LPMCI_DGV_WINDOW_PARMS } } if (dwFlags & MCI_DGV_WINDOW_STATE) { + if (!wma->parent) + return MCIERR_NO_WINDOW; TRACE("Setting nCmdShow to %d\n", lpParms->nCmdShow); - IVideoWindow_put_WindowState(wma->vidwin, lpParms->nCmdShow); + ShowWindow(wma->parent, lpParms->nCmdShow); } if (dwFlags & MCI_DGV_WINDOW_TEXT) { TRACE("Setting caption to %s\n", debugstr_w(lpParms->lpstrText)); diff --git a/dlls/winmm/tests/mci.c b/dlls/winmm/tests/mci.c index fc24bec26a0..921e7ec800f 100644 --- a/dlls/winmm/tests/mci.c +++ b/dlls/winmm/tests/mci.c @@ -1425,7 +1425,7 @@ static void test_asyncWaveTypeMpegvideo(HWND hwnd) test_notification(hwnd,"play",0);
err = mciSendStringA("window mysound state hide", NULL, 0, NULL); - todo_wine ok(err == MCIERR_NO_WINDOW, "mci window state returned %s\n", dbg_mcierr(err)); + ok(err == MCIERR_NO_WINDOW, "mci window state returned %s\n", dbg_mcierr(err));
err = mciSendStringA("close mysound wait", NULL, 0, NULL); ok(!err,"mci close wait returned %s\n", dbg_mcierr(err)); @@ -1696,7 +1696,7 @@ static void test_video_window(void) parm.win.nCmdShow = SW_MINIMIZE; err = mciSendCommandW(id, MCI_WINDOW, MCI_DGV_WINDOW_STATE, (DWORD_PTR)&parm); ok(!err, "Got %s.\n", dbg_mcierr(err)); - todo_wine ok(IsIconic(main_window), "Video window should be minimized.\n"); + ok(IsIconic(main_window), "Video window should be minimized.\n");
/* video window is reset to the default window, which is visible again */ parm.win.hWnd = NULL; @@ -1707,14 +1707,14 @@ static void test_video_window(void)
err = mciSendCommandW(id, MCI_WHERE, MCI_DGV_WHERE_DESTINATION, (DWORD_PTR)&parm); ok(!err, "Got %s.\n", dbg_mcierr(err)); - todo_wine ok(EqualRect(&parm.where.rc, &src_rc), "Got destination rect %s, expected %s.\n", + ok(EqualRect(&parm.where.rc, &src_rc), "Got destination rect %s, expected %s.\n", wine_dbgstr_rect(&parm.where.rc), wine_dbgstr_rect(&src_rc));
/* Test MCI_DGV_WINDOW_STATE for the default window. */ parm.win.nCmdShow = SW_MINIMIZE; err = mciSendCommandW(id, MCI_WINDOW, MCI_DGV_WINDOW_STATE, (DWORD_PTR)&parm); ok(!err, "Got %s.\n", dbg_mcierr(err)); - todo_wine ok(IsIconic(video_window), "Video window should be minimized.\n"); + ok(IsIconic(video_window), "Video window should be minimized.\n");
err = mciSendCommandW(id, MCI_CLOSE, 0, 0); ok(!err, "Got %s.\n", dbg_mcierr(err));