From 6f520b4843393ff4fccb3e4dc7849263edc5a37f Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Sun, 18 Nov 2018 13:11:05 +0100 Subject: [PATCH] add checks for media stream --- inc/main.h | 3 +++ src/main.c | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/inc/main.h b/inc/main.h index 6b6f194..8c14947 100644 --- a/inc/main.h +++ b/inc/main.h @@ -28,6 +28,9 @@ #define WM_WINEFULLSCREEN WM_USER+112 #define WM_D3D9DEVICELOST WM_USER+113 +DEFINE_GUID(IID_IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f, 0xde, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d); +DEFINE_GUID(IID_IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f, 0xde, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d); + extern BOOL ShowDriverWarning; extern RECT WindowRect; extern BOOL ChildWindowExists; diff --git a/src/main.c b/src/main.c index 66bb32c..fab85d6 100644 --- a/src/main.c +++ b/src/main.c @@ -692,6 +692,8 @@ HRESULT __stdcall ddraw_SetDisplayMode(IDirectDrawImpl *This, DWORD width, DWORD HRESULT __stdcall ddraw_SetDisplayMode2(IDirectDrawImpl *This, DWORD width, DWORD height, DWORD bpp, DWORD refreshRate, DWORD flags) { + printf("DirectDraw::SetDisplayMode2(refreshRate=%d, flags=%d)\n", (unsigned int)refreshRate, (unsigned int)flags); + return ddraw_SetDisplayMode(This, width, height, bpp); } @@ -1286,8 +1288,11 @@ HRESULT __stdcall ddraw_QueryInterface(IDirectDrawImpl *This, REFIID riid, void printf(" IID_IDirectDrawX\n"); ddraw_AddRef(This); - This->lpVtbl->SetDisplayMode2 = ddraw_SetDisplayMode2; *obj = This; + + if (!IsEqualGUID(&IID_IMediaStream, riid) && !IsEqualGUID(&IID_IAMMediaStream, riid)) + This->lpVtbl->SetDisplayMode2 = ddraw_SetDisplayMode2; + return S_OK; }