From d68cb86430fa38b8680ca6b6dfefe664324e3ab0 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Fri, 2 Nov 2018 03:20:36 +0100 Subject: [PATCH] addref fix --- src/main.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main.c b/src/main.c index 6d3a94f..167636e 100644 --- a/src/main.c +++ b/src/main.c @@ -1176,18 +1176,6 @@ HRESULT __stdcall ddraw_WaitForVerticalBlank(IDirectDrawImpl *This, DWORD a, HAN return DD_OK; } -HRESULT __stdcall ddraw_QueryInterface(IDirectDrawImpl *This, REFIID riid, void **obj) -{ - printf("DirectDraw::QueryInterface(This=%p, riid=%08X, obj=%p)\n", This, (unsigned int)riid, obj); - - if (riid && !IsEqualGUID(&IID_IDirectDraw, riid)) - This->lpVtbl->SetDisplayMode2 = ddraw_SetDisplayMode2; - - *obj = This; - - return S_OK; -} - ULONG __stdcall ddraw_AddRef(IDirectDrawImpl *This) { printf("DirectDraw::AddRef(This=%p)\n", This); @@ -1197,6 +1185,23 @@ ULONG __stdcall ddraw_AddRef(IDirectDrawImpl *This) return This->Ref; } +HRESULT __stdcall ddraw_QueryInterface(IDirectDrawImpl *This, REFIID riid, void **obj) +{ + printf("DirectDraw::QueryInterface(This=%p, riid=%08X, obj=%p)\n", This, (unsigned int)riid, obj); + + if (riid && !IsEqualGUID(&IID_IDirectDraw, riid)) + { + printf(" IID_IDirectDrawX\n"); + + ddraw_AddRef(This); + This->lpVtbl->SetDisplayMode2 = ddraw_SetDisplayMode2; + } + + *obj = This; + + return S_OK; +} + ULONG __stdcall ddraw_Release(IDirectDrawImpl *This) { printf("DirectDraw::Release(This=%p)\n", This);