[PATCH] DDraw: Reject IDirectDraw3 QI in ddraw.dll=0A=
Stefan Doesinger
stefan at codeweavers.com
Tue Dec 16 20:56:41 CST 2008
=0A=
---=0A=
dlls/ddraw/ddraw.c | 7 +++++--=0A=
dlls/ddraw/tests/ddrawmodes.c | 16 ++++++++++++++++=0A=
2 files changed, 21 insertions(+), 2 deletions(-)=0A=
=0A=
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c=0A=
index 8033b15..3a77dcd 100644=0A=
--- a/dlls/ddraw/ddraw.c=0A=
+++ b/dlls/ddraw/ddraw.c=0A=
@@ -121,8 +121,11 @@ IDirectDrawImpl_QueryInterface(IDirectDraw7 *iface,=0A=
}=0A=
else if ( IsEqualGUID( &IID_IDirectDraw3, refiid ) )=0A=
{=0A=
- *obj =3D ICOM_INTERFACE(This, IDirectDraw3);=0A=
- TRACE("(%p) Returning IDirectDraw3 interface at %p\n", This, =
*obj);=0A=
+ /* This Interface exists in ddrawex.dll, it is implemented in a =
wrapper */=0A=
+ WARN("IDirectDraw3 is not valid in ddraw.dll\n");=0A=
+ *obj =3D NULL;=0A=
+ LeaveCriticalSection(&ddraw_cs);=0A=
+ return E_NOINTERFACE;=0A=
}=0A=
else if ( IsEqualGUID( &IID_IDirectDraw2, refiid ) )=0A=
{=0A=
diff --git a/dlls/ddraw/tests/ddrawmodes.c =
b/dlls/ddraw/tests/ddrawmodes.c=0A=
index d21c3b4..67dd9d4 100644=0A=
--- a/dlls/ddraw/tests/ddrawmodes.c=0A=
+++ b/dlls/ddraw/tests/ddrawmodes.c=0A=
@@ -385,6 +385,21 @@ static void testcooperativelevels_exclusive(void)=0A=
/* All done */=0A=
}=0A=
=0A=
+static void testddraw3(void)=0A=
+{=0A=
+ const GUID My_IID_IDirectDraw3 =3D {=0A=
+ 0x618f8ad4,=0A=
+ 0x8b7a,=0A=
+ 0x11d0,=0A=
+ { 0x8f,0xcc,0x0,0xc0,0x4f,0xd9,0x18,0x9d }=0A=
+ };=0A=
+ IDirectDraw3 *dd3;=0A=
+ HRESULT hr;=0A=
+ hr =3D IDirectDraw_QueryInterface(lpDD, &My_IID_IDirectDraw3, (void =
**) &dd3);=0A=
+ ok(hr =3D=3D E_NOINTERFACE, "QueryInterface for IID_IDirectDraw3 =
returned 0x%08x, expected E_NOINTERFACE\n", hr);=0A=
+ if(SUCCEEDED(hr) && dd3) IDirectDraw3_Release(dd3);=0A=
+}=0A=
+=0A=
START_TEST(ddrawmodes)=0A=
{=0A=
createwindow();=0A=
@@ -394,6 +409,7 @@ START_TEST(ddrawmodes)=0A=
if (winetest_interactive)=0A=
testdisplaymodes();=0A=
flushdisplaymodes();=0A=
+ testddraw3();=0A=
releasedirectdraw();=0A=
=0A=
createdirectdraw();=0A=
-- =0A=
1.6.0.6=0A=
=0A=
------=_NextPart_000_0009_01C96C80.4B859870--
More information about the wine-patches
mailing list