[CMAKE]
[reactos.git] / dll / directx / ddraw / startup.c
index e1158af..6a5c6ba 100644 (file)
@@ -24,17 +24,29 @@ Create_DirectDraw (LPGUID pGUID, LPDIRECTDRAW* pIface,
     LPDDRAWI_DIRECTDRAW_INT This;
 
     DX_WINDBG_trace();
+    BOOL linking = FALSE;
 
-    if ((IsBadReadPtr(pIface,sizeof(LPDIRECTDRAW))) ||
-       (IsBadWritePtr(pIface,sizeof(LPDIRECTDRAW))))
+    if (pIface == NULL)
     {
         return DDERR_INVALIDPARAMS;
     }
 
     This = (LPDDRAWI_DIRECTDRAW_INT)*pIface;
 
-    if ( (IsBadWritePtr(This,sizeof(LPDDRAWI_DIRECTDRAW_INT)) != 0) || 
-         (IsBadWritePtr(This->lpLcl,sizeof(LPDDRAWI_DIRECTDRAW_LCL)) != 0) )
+    DX_STUB_str("Linking?\n")
+
+    _SEH2_TRY
+    {
+        linking = This->lpLcl ? TRUE:FALSE;
+    }
+    _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+    {
+        linking = FALSE;
+    }
+    _SEH2_END;
+
+    /* fixme linking too second link when we shall not doing it */
+    if (!linking)
     {
         /* We do not have a DirectDraw interface, we need alloc it*/
         LPDDRAWI_DIRECTDRAW_INT memThis;
@@ -310,6 +322,7 @@ StartDirectDraw(LPDIRECTDRAW iface, LPGUID lpGuid, BOOL reenable)
             return DDERR_NODIRECTDRAWSUPPORT;
         }
         dwFlags |= DDRAWI_NOHARDWARE;
+        DX_STUB_str("No hardware support\n");
     }
 
     if (hel_ret!=DD_OK)