lite more code. 
nothing works yet. 
add some check see if the parama are right.
Modified: trunk/reactos/lib/ddraw/ddraw.c

Modified: trunk/reactos/lib/ddraw/ddraw.c
--- trunk/reactos/lib/ddraw/ddraw.c	2005-03-19 09:37:46 UTC (rev 14190)
+++ trunk/reactos/lib/ddraw/ddraw.c	2005-03-19 10:22:52 UTC (rev 14191)
@@ -16,11 +16,15 @@
  
 HRESULT WINAPI DirectDrawCreate(LPGUID lpGUID, LPVOID* lplpDD, LPUNKNOWN pUnkOuter) 
 {    	
-   return DDRAW_Create(lpGUID, (LPVOID*) lplpDD, pUnkOuter, &IID_IDirectDraw, FALSE);
+    if (pUnkOuter==NULL) return DDERR_INVALIDPARAMS;
+	return DDRAW_Create(lpGUID, (LPVOID*) lplpDD, pUnkOuter, &IID_IDirectDraw, FALSE);
 }
 
 HRESULT WINAPI DirectDrawCreateEx(LPGUID lpGUID, LPVOID* lplpDD, REFIID iid, LPUNKNOWN pUnkOuter)
 {
+	if (pUnkOuter==NULL) return DDERR_INVALIDPARAMS;
+	if (!IsEqualGUID(iid, &IID_IDirectDraw7)) return DDERR_INVALIDPARAMS;
+
     return DDRAW_Create(lpGUID, lplpDD, pUnkOuter, iid, TRUE);
 }
 
@@ -81,14 +85,14 @@
 	   now we will assume it is the current display driver 
 	*/
 
-	if (pUnkOuter != NULL) return DDERR_INVALIDPARAMS;
 	
+	/*
 	desktop = GetWindowDC(GetDesktopWindow());
-
 	lplpDD = OsThunkDdCreateDirectDrawObject(desktop);   
 	if (lplpDD == NULL) return DDERR_NODIRECTDRAWHW;
+	*/
 	 	
-	return DD_OK;
+	return DDERR_NODIRECTDRAWHW;
 }
 
 BOOL WINAPI DllMain(HINSTANCE hInstance,DWORD fwdReason, LPVOID lpvReserved)