Bruno Jesus : mciavi32: Add Support for MCI_MCIAVI_PLAY_FULLSCREEN.

Alexandre Julliard julliard at winehq.org
Fri Aug 23 09:31:26 CDT 2019


Module: wine
Branch: stable
Commit: b9333b02f6784bbefcb8c73d37c3685343b6e335
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=b9333b02f6784bbefcb8c73d37c3685343b6e335

Author: Bruno Jesus <bjesus at codeweavers.com>
Date:   Wed Apr 17 10:55:52 2019 +0200

mciavi32: Add Support for MCI_MCIAVI_PLAY_FULLSCREEN.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=15934
Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 08af837a8c3732da2053d600a058b3e17075df43)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>

---

 dlls/mciavi32/mciavi.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/dlls/mciavi32/mciavi.c b/dlls/mciavi32/mciavi.c
index b32accb..9aa6cd8 100644
--- a/dlls/mciavi32/mciavi.c
+++ b/dlls/mciavi32/mciavi.c
@@ -556,7 +556,7 @@ static	DWORD	MCIAVI_mciPlay(UINT wDevID, DWORD dwFlags, LPMCI_PLAY_PARMS lpParms
     if (dwFlags & MCI_DGV_PLAY_REVERSE) return MCIERR_UNSUPPORTED_FUNCTION;
     if (dwFlags & MCI_TEST)	return 0;
 
-    if (dwFlags & (MCI_MCIAVI_PLAY_WINDOW|MCI_MCIAVI_PLAY_FULLSCREEN|MCI_MCIAVI_PLAY_FULLBY2))
+    if (dwFlags & (MCI_MCIAVI_PLAY_WINDOW|MCI_MCIAVI_PLAY_FULLBY2))
 	FIXME("Unsupported flag %08x\n", dwFlags);
 
     EnterCriticalSection(&wma->cs);
@@ -591,7 +591,18 @@ static	DWORD	MCIAVI_mciPlay(UINT wDevID, DWORD dwFlags, LPMCI_PLAY_PARMS lpParms
 
     LeaveCriticalSection(&wma->cs);
 
-    if (!(GetWindowLongW(wma->hWndPaint, GWL_STYLE) & WS_VISIBLE))
+    if (dwFlags & MCI_MCIAVI_PLAY_FULLSCREEN)
+    {
+        HMONITOR mon = MonitorFromWindow(wma->hWndPaint, MONITOR_DEFAULTTONEAREST);
+        MONITORINFO mi;
+        mi.cbSize = sizeof(mi);
+        GetMonitorInfoA(mon, &mi);
+        wma->hWndPaint = CreateWindowA("STATIC", NULL, WS_POPUP | WS_VISIBLE, mi.rcMonitor.left,
+            mi.rcMonitor.top, mi.rcMonitor.right - mi.rcMonitor.left, mi.rcMonitor.bottom - mi.rcMonitor.top,
+            NULL, NULL, NULL, 0);
+    }
+    /* if not fullscreen ensure the window is visible */
+    else if (!(GetWindowLongW(wma->hWndPaint, GWL_STYLE) & WS_VISIBLE))
         ShowWindow(wma->hWndPaint, SW_SHOWNA);
 
     EnterCriticalSection(&wma->cs);




More information about the wine-cvs mailing list