Thanks to Dimitry I have changed the test. Maybe someone could check if
the attached one works in native while it fails in my Wine environment. 

Thanks a lot in advance.

Markus
diff --git a/dlls/ddraw/tests/visual.c b/dlls/ddraw/tests/visual.c
index 450d231..650f4ba 100644
--- a/dlls/ddraw/tests/visual.c
+++ b/dlls/ddraw/tests/visual.c
@@ -47,7 +47,8 @@ static BOOL createObjects(void)
     HMODULE hmod = GetModuleHandleA("ddraw.dll");
     WNDCLASS wc = {0};
     DDSURFACEDESC2 ddsd;
-
+    DWORD DDDI2[0x110];
+    DDDEVICEIDENTIFIER2 *PDDDI2;
 
     if(!hmod) return FALSE;
     pDirectDrawCreateEx = (void*)GetProcAddress(hmod, "DirectDrawCreateEx");
@@ -57,6 +58,12 @@ static BOOL createObjects(void)
     ok(hr==DD_OK || hr==DDERR_NODIRECTDRAWSUPPORT, "DirectDrawCreateEx returned: %x\n", hr);
     if(!DirectDraw) goto err;
 
+    PDDDI2=(DDDEVICEIDENTIFIER2 *)DDDI2;
+    DDDI2[0x10b] = 0xdeadbeef;
+    hr = IDirectDraw7_GetDeviceIdentifier(DirectDraw, PDDDI2, 0);
+    ok(hr==DD_OK, "get device identifier failed with %08x\n", hr);
+    ok(DDDI2[0x10b]==0xdeadbeef, "memory beyond DDDEVICEIDENTIFIER2 overwritten\n"); 
+
     wc.lpfnWndProc = DefWindowProc;
     wc.lpszClassName = "d3d7_test_wc";
     RegisterClass(&wc);


Reply via email to