mciqtz32: Fix MCI_DGV_WINDOW_TEXT behavior.

This commit is contained in:
Akihiro Sagawa 2022-08-18 19:17:05 +09:00 committed by Alexandre Julliard
parent bb0f1981fc
commit ef48187a40
2 changed files with 6 additions and 4 deletions

View file

@ -1028,8 +1028,10 @@ static DWORD MCIQTZ_mciWindow(UINT wDevID, DWORD dwFlags, LPMCI_DGV_WINDOW_PARMS
ShowWindow(wma->parent, lpParms->nCmdShow); ShowWindow(wma->parent, lpParms->nCmdShow);
} }
if (dwFlags & MCI_DGV_WINDOW_TEXT) { if (dwFlags & MCI_DGV_WINDOW_TEXT) {
if (!wma->parent)
return MCIERR_NO_WINDOW;
TRACE("Setting caption to %s\n", debugstr_w(lpParms->lpstrText)); TRACE("Setting caption to %s\n", debugstr_w(lpParms->lpstrText));
IVideoWindow_put_Caption(wma->vidwin, lpParms->lpstrText); SetWindowTextW(wma->parent, lpParms->lpstrText);
} }
return 0; return 0;
} }

View file

@ -1428,7 +1428,7 @@ static void test_asyncWaveTypeMpegvideo(HWND hwnd)
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("window mysound text abracadabra", NULL, 0, NULL); err = mciSendStringA("window mysound text abracadabra", NULL, 0, NULL);
todo_wine ok(err == MCIERR_NO_WINDOW, "mci window text returned %s\n", dbg_mcierr(err)); ok(err == MCIERR_NO_WINDOW, "mci window text returned %s\n", dbg_mcierr(err));
err = mciSendStringA("close mysound wait", NULL, 0, NULL); err = mciSendStringA("close mysound wait", NULL, 0, NULL);
ok(!err,"mci close wait returned %s\n", dbg_mcierr(err)); ok(!err,"mci close wait returned %s\n", dbg_mcierr(err));
@ -1707,7 +1707,7 @@ static void test_video_window(void)
err = mciSendCommandW(id, MCI_WINDOW, MCI_DGV_WINDOW_TEXT, (DWORD_PTR)&parm); err = mciSendCommandW(id, MCI_WINDOW, MCI_DGV_WINDOW_TEXT, (DWORD_PTR)&parm);
ok(!err, "Got %s.\n", dbg_mcierr(err)); ok(!err, "Got %s.\n", dbg_mcierr(err));
GetWindowTextW(main_window, buffer, ARRAY_SIZE(buffer)); GetWindowTextW(main_window, buffer, ARRAY_SIZE(buffer));
todo_wine ok(!wcscmp(buffer, parm.win.lpstrText), "Got %s, expected %s\n", wine_dbgstr_w(buffer), wine_dbgstr_w(parm.win.lpstrText)); ok(!wcscmp(buffer, parm.win.lpstrText), "Got %s, expected %s\n", wine_dbgstr_w(buffer), wine_dbgstr_w(parm.win.lpstrText));
/* video window is reset to the default window, which is visible again */ /* video window is reset to the default window, which is visible again */
parm.win.hWnd = NULL; parm.win.hWnd = NULL;
@ -1732,7 +1732,7 @@ static void test_video_window(void)
err = mciSendCommandW(id, MCI_WINDOW, MCI_DGV_WINDOW_TEXT, (DWORD_PTR)&parm); err = mciSendCommandW(id, MCI_WINDOW, MCI_DGV_WINDOW_TEXT, (DWORD_PTR)&parm);
ok(!err, "Got %s.\n", dbg_mcierr(err)); ok(!err, "Got %s.\n", dbg_mcierr(err));
GetWindowTextW(video_window, buffer, ARRAY_SIZE(buffer)); GetWindowTextW(video_window, buffer, ARRAY_SIZE(buffer));
todo_wine ok(!wcscmp(buffer, parm.win.lpstrText), "Got %s, expected %s\n", wine_dbgstr_w(buffer), wine_dbgstr_w(parm.win.lpstrText)); ok(!wcscmp(buffer, parm.win.lpstrText), "Got %s, expected %s\n", wine_dbgstr_w(buffer), wine_dbgstr_w(parm.win.lpstrText));
err = mciSendCommandW(id, MCI_CLOSE, 0, 0); err = mciSendCommandW(id, MCI_CLOSE, 0, 0);
ok(!err, "Got %s.\n", dbg_mcierr(err)); ok(!err, "Got %s.\n", dbg_mcierr(err));