[ros-diffs] [greatlrd] 37376: port a really old test I have for ddraw.dll, this test testing see if the internal value are right when u create the com interface

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Sat Nov 15 18:00:59 CET 2008


Author: greatlrd
Date: Sat Nov 15 11:00:58 2008
New Revision: 37376

URL: http://svn.reactos.org/svn/reactos?rev=37376&view=rev
Log:
port a really old test I have for ddraw.dll, this test testing see if the internal value are right when u create the com interface

Modified:
    branches/reactx/rostests/apitests/ddrawapi/testlist.c
    branches/reactx/rostests/apitests/ddrawapi/tests/Test_DirectDrawCreateEx.c

Modified: branches/reactx/rostests/apitests/ddrawapi/testlist.c
URL: http://svn.reactos.org/svn/reactos/branches/reactx/rostests/apitests/ddrawapi/testlist.c?rev=37376&r1=37375&r2=37376&view=diff
==============================================================================
--- branches/reactx/rostests/apitests/ddrawapi/testlist.c [iso-8859-1] (original)
+++ branches/reactx/rostests/apitests/ddrawapi/testlist.c [iso-8859-1] Sat Nov 15 11:00:58 2008
@@ -2,8 +2,16 @@
 #define _DDRAWTESTLIST_H
 
 #include "ddrawapi.h"
-void dump_ddrawi_directdraw_int(LPDDRAWI_DIRECTDRAW_INT lpDraw_int);
-void dump_ddrawi_directdraw_lcl(LPDDRAWI_DIRECTDRAW_LCL lpDraw_lcl);
+
+#define MIX_BOTH_CAPS(a,b)  (  (a + b - (a & b))  )
+
+void dump_DDRAWI_DIRECTDRAW_INT(char *str, LPDDRAWI_DIRECTDRAW_INT lpDraw_int, DWORD offset);
+void dump_DDRAWI_DIRECTDRAW_LCL(char *str, LPDDRAWI_DIRECTDRAW_LCL lpDraw_lcl, DWORD offset);
+void dump_DDRAWI_DIRECTDRAW_GBL(char *str, LPDDRAWI_DIRECTDRAW_GBL lpDraw_gbl, DWORD offset);
+
+void dump_DDCORECAPS(char *str, LPDDCORECAPS lpDdcorecaps, DWORD offset);
+void dump_VIDMEMINFO(char *str, LPVIDMEMINFO lpVidmeminfo, DWORD offset);
+void dump_DBLNODE(char *str, LPDBLNODE lpDblnode, DWORD offset);
 
 /* dump all data struct when this is trun onm usefull when u debug ddraw.dll */
 #define DUMP_ON 1
@@ -33,44 +41,349 @@
 /* old debug macro and dump data */
 
 
-void dump_ddrawi_directdraw_int(LPDDRAWI_DIRECTDRAW_INT lpDraw_int)
-{
-    printf("%08lx LPVOID                        pDirectDraw->lpVtbl      : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, lpVtbl), lpDraw_int->lpVtbl);
-    printf("%08lx LPDDRAWI_DIRECTDRAW_LCL       pDirectDraw->lpLcl       : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, lpLcl), lpDraw_int->lpLcl );
-    printf("%08lx LPDDRAWI_DIRECTDRAW_INT       pDirectDraw->lpLink      : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, lpLink), lpDraw_int->lpLink );
-    printf("%08lx DWORD                         pDirectDraw->dwIntRefCnt : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, dwIntRefCnt), lpDraw_int->dwIntRefCnt );
-}
-
-
-void dump_ddrawi_directdraw_lcl(LPDDRAWI_DIRECTDRAW_LCL lpDraw_lcl)
-{
-    printf("%08lx DWORD                         lpLcl->lpDDMore          : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpDDMore), lpDraw_lcl->lpDDMore);
-    printf("%08lx LPDDRAWI_DIRECTDRAW_GBL       lpLcl->lpGbl             : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpGbl), lpDraw_lcl->lpGbl);
-    printf("%08lx DWORD                         lpLcl->dwUnused0         : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwUnused0), lpDraw_lcl->dwUnused0);
-    printf("%08lx DWORD                         lpLcl->dwLocalFlags      : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwLocalFlags), lpDraw_lcl->dwLocalFlags);
-    printf("%08lx DWORD                         lpLcl->dwLocalRefCnt     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwLocalRefCnt), lpDraw_lcl->dwLocalRefCnt);
-    printf("%08lx DWORD                         lpLcl->dwProcessId       : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwProcessId), lpDraw_lcl->dwProcessId);
-    printf("%08lx PVOID                         lpLcl->pUnkOuter         : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, pUnkOuter), lpDraw_lcl->pUnkOuter);
-    printf("%08lx DWORD                         lpLcl->dwObsolete1       : 0x%08lx\n",  FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwObsolete1), lpDraw_lcl->dwObsolete1);   
-    printf("%08lx ULONG_PTR                     lpLcl->hWnd              : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hWnd), (PVOID)lpDraw_lcl->hWnd);
-    printf("%08lx ULONG_PTR                     lpLcl->hDC               : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hDC), (PVOID) lpDraw_lcl->hDC);
-    printf("%08lx DWORD                         lpLcl->dwErrorMode       : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwErrorMode), lpDraw_lcl->dwErrorMode);    
-    printf("%08lx LPDDRAWI_DDRAWSURFACE_INT     lpLcl->lpPrimary         : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpPrimary), lpDraw_lcl->lpPrimary);
-    printf("%08lx LPDDRAWI_DDRAWSURFACE_INT     lpLcl->lpCB              : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpCB), lpDraw_lcl->lpCB);
-    printf("%08lx DWORD                         lpLcl->dwPreferredMode   : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwPreferredMode), lpDraw_lcl->dwPreferredMode);
-    printf("%08lx HINSTANCE                     lpLcl->hD3DInstance      : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hD3DInstance), lpDraw_lcl->hD3DInstance);
-    printf("%08lx PVOID                         lpLcl->pD3DIUnknown      : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, pD3DIUnknown), (PVOID) lpDraw_lcl->pD3DIUnknown);
-    printf("%08lx LPDDHAL_CALLBACKS             lpLcl->lpDDCB            : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpDDCB), lpDraw_lcl->lpDDCB);
-    printf("%08lx ULONG_PTR                     lpLcl->hDDVxd            : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hDDVxd), (PVOID) lpDraw_lcl->hDDVxd);
-    printf("%08lx DWORD                         lpLcl->dwAppHackFlags    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwAppHackFlags), lpDraw_lcl->dwAppHackFlags);
-    printf("%08lx ULONG_PTR                     lpLcl->hFocusWnd         : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hFocusWnd), (PVOID) lpDraw_lcl->hFocusWnd);
-    printf("%08lx DWORD                         lpLcl->dwHotTracking     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwHotTracking), lpDraw_lcl->dwHotTracking);
-    printf("%08lx DWORD                         lpLcl->dwIMEState        : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwIMEState), lpDraw_lcl->dwIMEState);
-    printf("%08lx ULONG_PTR                     lpLcl->hWndPopup         : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hWndPopup), (PVOID) lpDraw_lcl->hWndPopup);
-    printf("%08lx ULONG_PTR                     lpLcl->hDD               : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hDD), (PVOID) lpDraw_lcl->hDD);
-    printf("%08lx ULONG_PTR                     lpLcl->hGammaCalibrator  : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hGammaCalibrator), (PVOID) lpDraw_lcl->hGammaCalibrator);
-    printf("%08lx LPDDGAMMACALIBRATORPROC       lpLcl->lpGammaCalibrator : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpGammaCalibrator), lpDraw_lcl->lpGammaCalibrator);
-}
+ void dump_DDRAWI_DIRECTDRAW_INT(char *str, LPDDRAWI_DIRECTDRAW_INT lpDraw_int, DWORD offset)
+{
+    char buffer[2048];
+    if (lpDraw_int == NULL)
+        return ;
+
+    printf("%08lx LPVOID                                  %slpVtbl                                         : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, lpVtbl)+offset, str, lpDraw_int->lpVtbl);
+    printf("%08lx DWORD                                   %s->lpLcl                                        : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, lpLcl) + offset, str, lpDraw_int->lpLcl );
+    printf("%08lx DWORD                                   %s->lpLink                                       : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, lpLink) + offset, str, lpDraw_int->lpLink );
+    printf("%08lx DWORD                                   %s->dwIntRefCnt                                  : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, dwIntRefCnt) + offset, str, lpDraw_int->dwIntRefCnt );
+
+    printf("\n");
+    sprintf(buffer,"%slpLcl->",str);
+    dump_DDRAWI_DIRECTDRAW_LCL(buffer, lpDraw_int->lpLcl, FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, lpLcl));
+
+    printf("\n");
+    sprintf(buffer,"%slpLink->",str);
+    dump_DDRAWI_DIRECTDRAW_INT(buffer, lpDraw_int->lpLink, FIELD_OFFSET(DDRAWI_DIRECTDRAW_INT, lpLink));
+}
+
+void dump_DDRAWI_DIRECTDRAW_LCL(char *str, LPDDRAWI_DIRECTDRAW_LCL lpDraw_lcl, DWORD offset)
+{
+    char buffer[2048];
+    if (lpDraw_lcl == NULL)
+        return ;
+
+    printf("%08lx DWORD                                   %slpDDMore                                : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpDDMore)+offset, str, lpDraw_lcl->lpDDMore);
+    printf("%08lx LPDDRAWI_DIRECTDRAW_GBL                 %slpGbl                                   : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpGbl)+offset, str, lpDraw_lcl->lpGbl);
+    printf("%08lx DWORD                                   %sdwUnused0                               : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwUnused0)+offset, str, lpDraw_lcl->dwUnused0);
+    printf("%08lx DWORD                                   %sdwLocalFlags                            : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwLocalFlags)+offset, str, lpDraw_lcl->dwLocalFlags);
+    printf("%08lx DWORD                                   %sdwLocalRefCnt                           : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwLocalRefCnt)+offset, str, lpDraw_lcl->dwLocalRefCnt);
+    printf("%08lx DWORD                                   %sdwProcessId                             : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwProcessId)+offset, str, lpDraw_lcl->dwProcessId);
+    printf("%08lx PVOID                                   %spUnkOuter                               : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, pUnkOuter)+offset, str, lpDraw_lcl->pUnkOuter);
+    printf("%08lx DWORD                                   %sdwObsolete1                             : 0x%08lx\n",  FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwObsolete1)+offset, str, lpDraw_lcl->dwObsolete1);   
+    printf("%08lx ULONG_PTR                               %shWnd                                    : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hWnd)+offset, str, (PVOID)lpDraw_lcl->hWnd);
+    printf("%08lx ULONG_PTR                               %shDC                                     : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hDC)+offset, str, (PVOID) lpDraw_lcl->hDC);
+    printf("%08lx DWORD                                   %sdwErrorMode                             : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwErrorMode)+offset, str, lpDraw_lcl->dwErrorMode);    
+    printf("%08lx LPDDRAWI_DDRAWSURFACE_INT               %slpPrimary                               : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpPrimary)+offset, str, lpDraw_lcl->lpPrimary);
+    printf("%08lx LPDDRAWI_DDRAWSURFACE_INT               %slpCB                                    : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpCB)+offset, str, lpDraw_lcl->lpCB);
+    printf("%08lx DWORD                                   %sdwPreferredMode                         : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwPreferredMode)+offset, str, lpDraw_lcl->dwPreferredMode);
+    printf("%08lx HINSTANCE                               %shD3DInstance                            : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hD3DInstance)+offset, str, lpDraw_lcl->hD3DInstance);
+    printf("%08lx PVOID                                   %spD3DIUnknown                            : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, pD3DIUnknown)+offset, str, (PVOID) lpDraw_lcl->pD3DIUnknown);
+    printf("%08lx LPDDHAL_CALLBACKS                       %slpDDCB                                  : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpDDCB)+offset, str, lpDraw_lcl->lpDDCB);
+    printf("%08lx ULONG_PTR                               %shDDVxd                                  : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hDDVxd)+offset, str, (PVOID) lpDraw_lcl->hDDVxd);
+    printf("%08lx DWORD                                   %sdwAppHackFlags                          : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwAppHackFlags)+offset, str, lpDraw_lcl->dwAppHackFlags);
+    printf("%08lx ULONG_PTR                               %shFocusWnd                               : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hFocusWnd)+offset, str, (PVOID) lpDraw_lcl->hFocusWnd);
+    printf("%08lx DWORD                                   %sdwHotTracking                           : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwHotTracking)+offset, str, lpDraw_lcl->dwHotTracking);
+    printf("%08lx DWORD                                   %sdwIMEState                              : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, dwIMEState)+offset, str, lpDraw_lcl->dwIMEState);
+    printf("%08lx ULONG_PTR                               %shWndPopup                               : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hWndPopup)+offset, str, (PVOID) lpDraw_lcl->hWndPopup);
+    printf("%08lx ULONG_PTR                               %shDD                                     : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hDD)+offset, str, (PVOID) lpDraw_lcl->hDD);
+    printf("%08lx ULONG_PTR                               %shGammaCalibrator                        : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, hGammaCalibrator)+offset, str, (PVOID) lpDraw_lcl->hGammaCalibrator);
+    printf("%08lx LPDDGAMMACALIBRATORPROC                 %slpGammaCalibrator                       : 0x%p \n",    FIELD_OFFSET(DDRAWI_DIRECTDRAW_LCL, lpGammaCalibrator)+offset, str, lpDraw_lcl->lpGammaCalibrator);
+
+    printf("\n");
+    sprintf(buffer,"%slpGbl->",str);
+    dump_DDRAWI_DIRECTDRAW_GBL(buffer, lpDraw_lcl->lpGbl, 0);
+}
+
+void dump_DDRAWI_DIRECTDRAW_GBL(char * str, LPDDRAWI_DIRECTDRAW_GBL lpDraw_gbl, DWORD offset)
+{
+    char buffer[2048];
+    if (lpDraw_gbl == NULL)
+        return ;
+
+    printf("%08lx DWORD                                   %sdwRefCnt                         : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwRefCnt) + offset, str, lpDraw_gbl->dwRefCnt);
+    printf("%08lx DWORD                                   %sdwFlags                          : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwFlags) + offset, str, lpDraw_gbl->dwFlags);
+    printf("%08lx FLATPTR                                 %sfpPrimaryOrig                    : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, fpPrimaryOrig) + offset, str, (LPVOID)lpDraw_gbl->fpPrimaryOrig);
+
+    sprintf(buffer,"%sddCaps.",str);
+    dump_DDCORECAPS(buffer, &lpDraw_gbl->ddCaps, FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, ddCaps) + offset );
+
+    printf("%08lx DWORD                                   %sdwInternal1                      : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwInternal1) + offset, str, lpDraw_gbl->dwInternal1);
+    printf("%08lx DWORD                                   %sdwUnused1[0]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused1[0]) + offset, str, lpDraw_gbl->dwUnused1[0]);
+    printf("%08lx DWORD                                   %sdwUnused1[1]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused1[1]) + offset, str, lpDraw_gbl->dwUnused1[1]);
+    printf("%08lx DWORD                                   %sdwUnused1[2]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused1[2]) + offset, str, lpDraw_gbl->dwUnused1[2]);
+    printf("%08lx DWORD                                   %sdwUnused1[3]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused1[3]) + offset, str, lpDraw_gbl->dwUnused1[3]);
+    printf("%08lx DWORD                                   %sdwUnused1[4]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused1[4]) + offset, str, lpDraw_gbl->dwUnused1[4]);
+    printf("%08lx DWORD                                   %sdwUnused1[5]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused1[5]) + offset, str, lpDraw_gbl->dwUnused1[5]);
+    printf("%08lx DWORD                                   %sdwUnused1[6]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused1[6]) + offset, str, lpDraw_gbl->dwUnused1[6]);
+    printf("%08lx DWORD                                   %sdwUnused1[7]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused1[7]) + offset, str, lpDraw_gbl->dwUnused1[7]);
+    printf("%08lx DWORD                                   %sdwUnused1[8]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused1[8]) + offset, str, lpDraw_gbl->dwUnused1[8]);
+    printf("%08lx LPDDHAL_CALLBACKS                       %slpDDCBtmp                        : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpDDCBtmp) + offset, str, lpDraw_gbl->lpDDCBtmp);
+    printf("%08lx LPDDRAWI_DDRAWSURFACE_INT               %sdsList                           : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dsList) + offset, str, lpDraw_gbl->dsList);
+    printf("%08lx LPDDRAWI_DDRAWPALETTE_INT               %spalList                          : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, palList) + offset, str, lpDraw_gbl->palList);
+    printf("%08lx LPDDRAWI_DDRAWCLIPPER_INT               %sclipperList                      : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, clipperList) + offset, str, lpDraw_gbl->clipperList);
+    printf("%08lx LPDDRAWI_DIRECTDRAW_GBL                 %slp16DD                           : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lp16DD) + offset, str, lpDraw_gbl->lp16DD);
+    printf("%08lx DWORD                                   %sdwMaxOverlays                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwMaxOverlays) + offset, str, lpDraw_gbl->dwMaxOverlays);
+    printf("%08lx DWORD                                   %sdwCurrOverlays                   : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwCurrOverlays) + offset, str, lpDraw_gbl->dwCurrOverlays);
+    printf("%08lx DWORD                                   %sdwMonitorFrequency               : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwMonitorFrequency) + offset, str, lpDraw_gbl->dwMonitorFrequency);
+
+    sprintf(buffer,"%sddHELCaps.",str);
+    dump_DDCORECAPS(buffer, &lpDraw_gbl->ddHELCaps, FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, ddHELCaps) + offset );
+
+    printf("%08lx DWORD                                   %sdwUnused2[0]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[0]) + offset, str, lpDraw_gbl->dwUnused2[0]);
+    printf("%08lx DWORD                                   %sdwUnused2[1]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[1]) + offset, str, lpDraw_gbl->dwUnused2[1]);
+    printf("%08lx DWORD                                   %sdwUnused2[2]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[2]) + offset, str, lpDraw_gbl->dwUnused2[2]);
+    printf("%08lx DWORD                                   %sdwUnused2[3]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[3]) + offset, str, lpDraw_gbl->dwUnused2[3]);
+    printf("%08lx DWORD                                   %sdwUnused2[4]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[4]) + offset, str, lpDraw_gbl->dwUnused2[4]);
+    printf("%08lx DWORD                                   %sdwUnused2[5]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[5]) + offset, str, lpDraw_gbl->dwUnused2[5]);
+    printf("%08lx DWORD                                   %sdwUnused2[6]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[6]) + offset, str, lpDraw_gbl->dwUnused2[6]);
+    printf("%08lx DWORD                                   %sdwUnused2[7]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[7]) + offset, str, lpDraw_gbl->dwUnused2[7]);
+    printf("%08lx DWORD                                   %sdwUnused2[8]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[8]) + offset, str, lpDraw_gbl->dwUnused2[8]);
+    printf("%08lx DWORD                                   %sdwUnused2[9]                     : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[9]) + offset, str, lpDraw_gbl->dwUnused2[9]);
+    printf("%08lx DWORD                                   %sdwUnused2[10]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[10]) + offset, str, lpDraw_gbl->dwUnused2[10]);
+    printf("%08lx DWORD                                   %sdwUnused2[11]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[11]) + offset, str, lpDraw_gbl->dwUnused2[11]);
+    printf("%08lx DWORD                                   %sdwUnused2[12]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[12]) + offset, str, lpDraw_gbl->dwUnused2[12]);
+    printf("%08lx DWORD                                   %sdwUnused2[13]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[13]) + offset, str, lpDraw_gbl->dwUnused2[13]);
+    printf("%08lx DWORD                                   %sdwUnused2[14]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[14]) + offset, str, lpDraw_gbl->dwUnused2[14]);
+    printf("%08lx DWORD                                   %sdwUnused2[15]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[15]) + offset, str, lpDraw_gbl->dwUnused2[15]);
+    printf("%08lx DWORD                                   %sdwUnused2[16]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[16]) + offset, str, lpDraw_gbl->dwUnused2[16]);
+    printf("%08lx DWORD                                   %sdwUnused2[17]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[17]) + offset, str, lpDraw_gbl->dwUnused2[17]);
+    printf("%08lx DWORD                                   %sdwUnused2[18]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[18]) + offset, str, lpDraw_gbl->dwUnused2[18]);
+    printf("%08lx DWORD                                   %sdwUnused2[19]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[19]) + offset, str, lpDraw_gbl->dwUnused2[19]);
+    printf("%08lx DWORD                                   %sdwUnused2[20]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[20]) + offset, str, lpDraw_gbl->dwUnused2[20]);
+    printf("%08lx DWORD                                   %sdwUnused2[21]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[21]) + offset, str, lpDraw_gbl->dwUnused2[21]);
+    printf("%08lx DWORD                                   %sdwUnused2[22]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[22]) + offset, str, lpDraw_gbl->dwUnused2[22]);
+    printf("%08lx DWORD                                   %sdwUnused2[23]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[23]) + offset, str, lpDraw_gbl->dwUnused2[23]);
+    printf("%08lx DWORD                                   %sdwUnused2[24]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[24]) + offset, str, lpDraw_gbl->dwUnused2[24]);
+    printf("%08lx DWORD                                   %sdwUnused2[25]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[25]) + offset, str, lpDraw_gbl->dwUnused2[25]);
+    printf("%08lx DWORD                                   %sdwUnused2[26]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[26]) + offset, str, lpDraw_gbl->dwUnused2[26]);
+    printf("%08lx DWORD                                   %sdwUnused2[27]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[27]) + offset, str, lpDraw_gbl->dwUnused2[27]);
+    printf("%08lx DWORD                                   %sdwUnused2[28]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[28]) + offset, str, lpDraw_gbl->dwUnused2[28]);
+    printf("%08lx DWORD                                   %sdwUnused2[29]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[29]) + offset, str, lpDraw_gbl->dwUnused2[29]);
+    printf("%08lx DWORD                                   %sdwUnused2[30]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[30]) + offset, str, lpDraw_gbl->dwUnused2[30]);
+    printf("%08lx DWORD                                   %sdwUnused2[31]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[31]) + offset, str, lpDraw_gbl->dwUnused2[31]);
+    printf("%08lx DWORD                                   %sdwUnused2[32]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[32]) + offset, str, lpDraw_gbl->dwUnused2[32]);
+    printf("%08lx DWORD                                   %sdwUnused2[33]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[33]) + offset, str, lpDraw_gbl->dwUnused2[33]);
+    printf("%08lx DWORD                                   %sdwUnused2[34]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[34]) + offset, str, lpDraw_gbl->dwUnused2[34]);
+    printf("%08lx DWORD                                   %sdwUnused2[35]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[35]) + offset, str, lpDraw_gbl->dwUnused2[35]);
+    printf("%08lx DWORD                                   %sdwUnused2[36]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[36]) + offset, str, lpDraw_gbl->dwUnused2[36]);
+    printf("%08lx DWORD                                   %sdwUnused2[37]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[37]) + offset, str, lpDraw_gbl->dwUnused2[37]);
+    printf("%08lx DWORD                                   %sdwUnused2[38]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[38]) + offset, str, lpDraw_gbl->dwUnused2[38]);
+    printf("%08lx DWORD                                   %sdwUnused2[39]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[39]) + offset, str, lpDraw_gbl->dwUnused2[39]);
+    printf("%08lx DWORD                                   %sdwUnused2[40]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[40]) + offset, str, lpDraw_gbl->dwUnused2[40]);
+    printf("%08lx DWORD                                   %sdwUnused2[41]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[41]) + offset, str, lpDraw_gbl->dwUnused2[41]);
+    printf("%08lx DWORD                                   %sdwUnused2[42]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[42]) + offset, str, lpDraw_gbl->dwUnused2[42]);
+    printf("%08lx DWORD                                   %sdwUnused2[43]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[43]) + offset, str, lpDraw_gbl->dwUnused2[43]);
+    printf("%08lx DWORD                                   %sdwUnused2[44]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[44]) + offset, str, lpDraw_gbl->dwUnused2[44]);
+    printf("%08lx DWORD                                   %sdwUnused2[45]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[45]) + offset, str, lpDraw_gbl->dwUnused2[45]);
+    printf("%08lx DWORD                                   %sdwUnused2[46]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[46]) + offset, str, lpDraw_gbl->dwUnused2[46]);
+    printf("%08lx DWORD                                   %sdwUnused2[47]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[47]) + offset, str, lpDraw_gbl->dwUnused2[47]);
+    printf("%08lx DWORD                                   %sdwUnused2[48]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[48]) + offset, str, lpDraw_gbl->dwUnused2[48]);
+    printf("%08lx DWORD                                   %sdwUnused2[49]                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused2[49]) + offset, str, lpDraw_gbl->dwUnused2[49]);
+    //printf("%08lx DDCOLORKEY                    lpGbl->ddckCKDestOverlay                : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, ddckCKDestOverlay) + offset, str, lpDraw_gbl->ddckCKDestOverlay);
+    //printf("%08lx DDCOLORKEY                    lpGbl->ddckCKSrcOverlay                 : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, ddckCKSrcOverlay) + offset, str, lpDraw_gbl->ddckCKSrcOverlay);
+
+    sprintf(buffer,"%svmiData.",str);
+    dump_VIDMEMINFO(buffer, &lpDraw_gbl->vmiData, FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, vmiData) + offset);
+
+    printf("%08lx LPVOID                                  %slpDriverHandle                   : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpDriverHandle) + offset, str, lpDraw_gbl->lpDriverHandle);
+    printf("%08lx LPDDRAWI_DIRECTDRAW_LCL                 %slpExclusiveOwner                 : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpExclusiveOwner) + offset, str, lpDraw_gbl->lpExclusiveOwner);
+    printf("%08lx DWORD                                   %sdwModeIndex                      : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwModeIndex) + offset, str, lpDraw_gbl->dwModeIndex);
+    printf("%08lx DWORD                                   %sdwModeIndexOrig                  : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwModeIndexOrig) + offset, str, lpDraw_gbl->dwModeIndexOrig);
+    printf("%08lx DWORD                                   %sdwNumFourCC                      : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwNumFourCC) + offset, str, lpDraw_gbl->dwNumFourCC);
+    printf("%08lx LPDWORD                                 %slpdwFourCC                       : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpdwFourCC) + offset, str, lpDraw_gbl->lpdwFourCC);
+    printf("%08lx DWORD                                   %sdwNumModes                       : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwNumModes) + offset, str, lpDraw_gbl->dwNumModes);
+    printf("%08lx LPDDHALMODEI                            %slpModeInfo                       : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpModeInfo) + offset, str, lpDraw_gbl->lpModeInfo);
+    //printf("%08lx PROCESS_LIST                            lpGbl->plProcessList                    : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, plProcessList) + offset, str, lpDraw_gbl->plProcessList);
+
+    printf("%08lx DWORD                                   %sdwSurfaceLockCount               : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwSurfaceLockCount) + offset, str, lpDraw_gbl->dwSurfaceLockCount);
+    printf("%08lx DWORD                                   %sdwAliasedLockCnt                 : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwAliasedLockCnt) + offset, str, lpDraw_gbl->dwAliasedLockCnt);
+    printf("%08lx DWORD                                   %sdwReserved3                      : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwReserved3) + offset, str, lpDraw_gbl->dwReserved3);
+    printf("%08lx ULONG_PTR                               %shDD                              : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, hDD) + offset, str, lpDraw_gbl->hDD);
+    printf("%08lx char                                    %scObsolete                        : %s \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, cObsolete[0]) + offset, str, lpDraw_gbl->cObsolete);
+    printf("%08lx DWORD                                   %sdwReserved1                      : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwReserved1)+ offset, str, lpDraw_gbl->dwReserved1);
+    printf("%08lx DWORD                                   %sdwReserved2                      : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwReserved2)+ offset, str, lpDraw_gbl->dwReserved2);
+
+    sprintf(buffer,"%sdbnOverlayRoot.",str);
+    dump_DBLNODE(buffer, &lpDraw_gbl->dbnOverlayRoot, FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dbnOverlayRoot)+ offset);
+
+    printf("%08lx volatile LPWORD                         %slpwPDeviceFlags                  : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpwPDeviceFlags)+ offset, str, lpDraw_gbl->lpwPDeviceFlags);
+    printf("%08lx DWORD                                   %sdwPDevice                        : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwPDevice)+ offset, str, lpDraw_gbl->dwPDevice);
+    printf("%08lx DWORD                                   %sdwWin16LockCnt                   : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwWin16LockCnt)+ offset, str, lpDraw_gbl->dwWin16LockCnt);
+    printf("%08lx DWORD                                   %sdwUnused3                        : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwUnused3)+ offset, str, lpDraw_gbl->dwUnused3);
+    printf("%08lx DWORD                                   %shInstance                        : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, hInstance)+ offset, str, lpDraw_gbl->hInstance);
+    printf("%08lx DWORD                                   %sdwEvent16                        : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwEvent16)+ offset, str, lpDraw_gbl->dwEvent16);
+    printf("%08lx DWORD                                   %sdwSaveNumModes                   : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwSaveNumModes)+ offset, str, lpDraw_gbl->dwSaveNumModes);
+    printf("%08lx ULONG_PTR                               %slpD3DGlobalDriverData            : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpD3DGlobalDriverData)+ offset, str, (LPVOID) lpDraw_gbl->lpD3DGlobalDriverData);
+    printf("%08lx ULONG_PTR                               %slpD3DHALCallbacks                : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpD3DHALCallbacks)+ offset, str, (LPVOID) lpDraw_gbl->lpD3DHALCallbacks);
+
+    sprintf(buffer,"%sddBothCaps.",str);
+    dump_DDCORECAPS(buffer, &lpDraw_gbl->ddBothCaps, FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, ddBothCaps)+ offset );
+
+    printf("%08lx LPDDVIDEOPORTCAPS                       %slpDDVideoPortCaps                : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpDDVideoPortCaps)+ offset, str, lpDraw_gbl->lpDDVideoPortCaps);
+    printf("%08lx LPDDRAWI_DDVIDEOPORT_INT                %sdvpList                          : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dvpList)+ offset, str, lpDraw_gbl->dvpList);
+
+    printf("%08lx RECT                                    %srectDevice.bottom                : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, rectDevice.bottom)+ offset, str, lpDraw_gbl->rectDevice.bottom);
+    printf("%08lx RECT                                    %srectDevice.left                  : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, rectDevice.left)+ offset, str, lpDraw_gbl->rectDevice.left);
+    printf("%08lx RECT                                    %srectDevice.right                 : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, rectDevice.right)+ offset, str, lpDraw_gbl->rectDevice.right);
+    printf("%08lx RECT                                    %srectDevice.top                   : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, rectDevice.top)+ offset, str, lpDraw_gbl->rectDevice.top);
+
+    printf("%08lx DWORD                                   %scMonitors                        : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, cMonitors)+ offset, str, lpDraw_gbl->cMonitors);
+    printf("%08lx LPVOID                                  %sgpbmiSrc                         : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, gpbmiSrc)+ offset, str, lpDraw_gbl->gpbmiSrc);
+    printf("%08lx LPVOID                                  %sgpbmiDest                        : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, gpbmiDest)+ offset, str, lpDraw_gbl->gpbmiDest);
+    printf("%08lx LPHEAPALIASINFO                         %sphaiHeapAliases                  : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, phaiHeapAliases)+ offset, str, lpDraw_gbl->phaiHeapAliases);
+    printf("%08lx ULONG_PTR                               %shKernelHandle                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, hKernelHandle)+ offset, str, lpDraw_gbl->hKernelHandle);
+    printf("%08lx ULONG_PTR                               %spfnNotifyProc                    : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, pfnNotifyProc)+ offset, str, (LPVOID)lpDraw_gbl->pfnNotifyProc);
+    printf("%08lx LPDDKERNELCAPS                          %slpDDKernelCaps                   : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpDDKernelCaps)+ offset, str, lpDraw_gbl->lpDDKernelCaps);
+    printf("%08lx LPDDNONLOCALVIDMEMCAPS                  %slpddNLVCaps                      : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpddNLVCaps)+ offset, str, lpDraw_gbl->lpddNLVCaps);
+    printf("%08lx LPDDNONLOCALVIDMEMCAPS                  %slpddNLVHELCaps                   : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpddNLVHELCaps)+ offset, str, lpDraw_gbl->lpddNLVHELCaps);
+    printf("%08lx LPDDNONLOCALVIDMEMCAPS                  %slpddNLVBothCaps                  : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpddNLVBothCaps)+ offset, str, lpDraw_gbl->lpddNLVBothCaps);
+    printf("%08lx ULONG_PTR                               %slpD3DExtendedCaps                : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpD3DExtendedCaps)+ offset, str, (LPVOID) lpDraw_gbl->lpD3DExtendedCaps);
+    printf("%08lx DWORD                                   %sdwDOSBoxEvent                    : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwDOSBoxEvent)+ offset, str, lpDraw_gbl->dwDOSBoxEvent);
+
+    printf("%08lx RECT                                    %srectDesktop.bottom               : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, rectDesktop.bottom)+ offset, str, lpDraw_gbl->rectDesktop.bottom);
+    printf("%08lx RECT                                    %srectDesktop.left                 : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, rectDesktop.left)+ offset, str, lpDraw_gbl->rectDesktop.left);
+    printf("%08lx RECT                                    %srectDesktop.right                : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, rectDesktop.right)+ offset, str, lpDraw_gbl->rectDesktop.right);
+    printf("%08lx RECT                                    %srectDesktop.top                  : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, rectDesktop.top)+ offset, str, lpDraw_gbl->rectDesktop.top);
+
+    printf("%08lx char                                    %scDriverName[MAX_DRIVER_NAME]     : %s \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, cDriverName)+ offset, str, lpDraw_gbl->cDriverName);
+    printf("%08lx ULONG_PTR                               %slpD3DHALCallbacks3               : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpD3DHALCallbacks3)+ offset, str, (LPVOID) lpDraw_gbl->lpD3DHALCallbacks3);
+    printf("%08lx DWORD                                   %sdwNumZPixelFormats               : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, dwNumZPixelFormats)+ offset, str, lpDraw_gbl->dwNumZPixelFormats);
+    printf("%08lx LPDDPIXELFORMAT                         %slpZPixelFormats                  : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, lpZPixelFormats)+ offset, str, lpDraw_gbl->lpZPixelFormats);
+    printf("%08lx LPDDRAWI_DDMOTIONCOMP_INT               %smcList                           : 0x%p \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, mcList)+ offset, str, lpDraw_gbl->mcList);
+    printf("%08lx DWORD                                   %shDDVxd                           : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, hDDVxd)+ offset, str, lpDraw_gbl->hDDVxd);
+    printf("%08lx DWORD                                   %sddsCapsMore.dwCaps2              : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, ddsCapsMore)+ FIELD_OFFSET(DDSCAPSEX, dwCaps2)+offset, str, lpDraw_gbl->ddsCapsMore.dwCaps2);
+    printf("%08lx DWORD                                   %sddsCapsMore.dwCaps3              : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, ddsCapsMore)+ FIELD_OFFSET(DDSCAPSEX, dwCaps3)+ offset, str, lpDraw_gbl->ddsCapsMore.dwCaps3);
+    printf("%08lx DWORD                                   %sddsCapsMore.dwCaps4              : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, ddsCapsMore)+ FIELD_OFFSET(DDSCAPSEX, dwCaps4)+ offset, str, lpDraw_gbl->ddsCapsMore.dwCaps4);
+    printf("%08lx DWORD                                   %sddsCapsMore.dwVolumeDepth        : 0x%08lx \n", FIELD_OFFSET(DDRAWI_DIRECTDRAW_GBL, ddsCapsMore)+ FIELD_OFFSET(DDSCAPSEX, dwVolumeDepth)+ offset, str, lpDraw_gbl->ddsCapsMore.dwVolumeDepth);
+    
+
+}
+
+void dump_DBLNODE(char *str, LPDBLNODE lpDblnode, DWORD offset)
+{
+
+    if (lpDblnode == NULL)
+        return ;
+
+    printf("%08lx struct _DBLNODE *                         %snext      : 0x%p\n", FIELD_OFFSET(DBLNODE, next)+offset, str, lpDblnode->next);
+    printf("%08lx struct _DBLNODE *                         %sprev      : 0x%p\n", FIELD_OFFSET(DBLNODE, prev)+offset, str, lpDblnode->prev);
+    printf("%08lx struct LPDDRAWI_DDRAWSURFACE_LCL          %sobject    : 0x%p\n", FIELD_OFFSET(DBLNODE, object)+offset, str, lpDblnode->object);
+    printf("%08lx struct LPDDRAWI_DDRAWSURFACE_INT          %sobject_int : 0x%p\n", FIELD_OFFSET(DBLNODE, object_int)+offset, str, lpDblnode->object_int);
+}
+
+void dump_DDCORECAPS(char *str, LPDDCORECAPS lpDdcorecaps, DWORD offset)
+{
+
+    if (lpDdcorecaps == NULL)
+        return ;
+
+    int c;
+    printf("%08lx DWORD                         %sdwSize                             : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSize)+offset, str, lpDdcorecaps->dwSize);
+    printf("%08lx DWORD                         %sdwCaps                             : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwCaps)+offset, str, lpDdcorecaps->dwCaps);
+    printf("%08lx DWORD                         %sdwCaps2                            : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwCaps2)+offset, str, lpDdcorecaps->dwCaps2);
+    printf("%08lx DWORD                         %sdwCKeyCaps                         : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwCKeyCaps)+offset, str, lpDdcorecaps->dwCKeyCaps);
+    printf("%08lx DWORD                         %sdwFXCaps                           : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwFXCaps)+offset, str, lpDdcorecaps->dwFXCaps);
+    printf("%08lx DWORD                         %sdwFXAlphaCaps                      : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwFXAlphaCaps)+offset, str, lpDdcorecaps->dwFXAlphaCaps);
+    printf("%08lx DWORD                         %sdwPalCaps                          : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwPalCaps)+offset, str, lpDdcorecaps->dwPalCaps);
+    printf("%08lx DWORD                         %sdwSVCaps                           : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSVCaps)+offset, str, lpDdcorecaps->dwSVCaps);
+    printf("%08lx DWORD                         %sdwAlphaBltConstBitDepths           : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlphaBltConstBitDepths)+offset, str, lpDdcorecaps->dwAlphaBltConstBitDepths);
+    printf("%08lx DWORD                         %sdwAlphaBltPixelBitDepths           : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlphaBltPixelBitDepths)+offset, str, lpDdcorecaps->dwAlphaBltPixelBitDepths);
+    printf("%08lx DWORD                         %sdwAlphaBltSurfaceBitDepths         : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlphaBltSurfaceBitDepths)+offset, str, lpDdcorecaps->dwAlphaBltSurfaceBitDepths);
+    printf("%08lx DWORD                         %sdwAlphaOverlayConstBitDepths       : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlphaOverlayConstBitDepths)+offset, str, lpDdcorecaps->dwAlphaOverlayConstBitDepths);
+    printf("%08lx DWORD                         %sdwAlphaOverlayPixelBitDepths       : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlphaOverlayPixelBitDepths)+offset, str, lpDdcorecaps->dwAlphaOverlayPixelBitDepths);
+    printf("%08lx DWORD                         %sdwAlphaOverlaySurfaceBitDepths     : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlphaOverlaySurfaceBitDepths)+offset, str, lpDdcorecaps->dwAlphaOverlaySurfaceBitDepths);
+    printf("%08lx DWORD                         %sdwZBufferBitDepths                 : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwZBufferBitDepths)+offset, str, lpDdcorecaps->dwZBufferBitDepths);
+    printf("%08lx DWORD                         %sdwVidMemTotal                      : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwVidMemTotal)+offset, str, lpDdcorecaps->dwVidMemTotal);
+    printf("%08lx DWORD                         %sdwVidMemFree                       : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwVidMemFree)+offset, str, lpDdcorecaps->dwVidMemFree);
+    printf("%08lx DWORD                         %sdwMaxVisibleOverlays               : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwMaxVisibleOverlays)+offset, str, lpDdcorecaps->dwMaxVisibleOverlays);
+    printf("%08lx DWORD                         %sdwCurrVisibleOverlays              : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwCurrVisibleOverlays)+offset, str, lpDdcorecaps->dwCurrVisibleOverlays);
+    printf("%08lx DWORD                         %sdwNumFourCCCodes                   : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwNumFourCCCodes)+offset, str, lpDdcorecaps->dwNumFourCCCodes);
+    printf("%08lx DWORD                         %sdwAlignBoundarySrc                 : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlignBoundarySrc)+offset, str, lpDdcorecaps->dwAlignBoundarySrc);
+    printf("%08lx DWORD                         %sdwAlignSizeSrc                     : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlignSizeSrc)+offset, str, lpDdcorecaps->dwAlignSizeSrc);
+    printf("%08lx DWORD                         %sdwAlignBoundaryDest                : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlignBoundaryDest)+offset, str, lpDdcorecaps->dwAlignBoundaryDest);
+    printf("%08lx DWORD                         %sdwAlignSizeDest                    : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlignSizeDest)+offset, str, lpDdcorecaps->dwAlignSizeDest);
+    printf("%08lx DWORD                         %sdwAlignStrideAlign                 : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwAlignStrideAlign)+offset, str, lpDdcorecaps->dwAlignStrideAlign);
+
+    for (c=0;c<DD_ROP_SPACE;c++)
+    {
+        printf("%08lx DWORD                         %sdwRops[0x%02x]                     : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwRops[c])+offset, str, c, lpDdcorecaps->dwRops[c]);
+    }
+
+    printf("%08lx DWORD                         %sddsCaps.dwCaps                     : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, ddsCaps)+offset, str, lpDdcorecaps->ddsCaps.dwCaps);
+    printf("%08lx DWORD                         %sdwMinOverlayStretch                : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwMinOverlayStretch)+offset, str, lpDdcorecaps->dwMinOverlayStretch);
+    printf("%08lx DWORD                         %sdwMaxOverlayStretch                : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwMaxOverlayStretch)+offset, str, lpDdcorecaps->dwMaxOverlayStretch);
+    printf("%08lx DWORD                         %sdwMinLiveVideoStretch              : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwMinLiveVideoStretch)+offset, str, lpDdcorecaps->dwMinLiveVideoStretch);
+    printf("%08lx DWORD                         %sdwMaxLiveVideoStretch              : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwMaxLiveVideoStretch)+offset, str, lpDdcorecaps->dwMaxLiveVideoStretch);
+    printf("%08lx DWORD                         %sdwMinHwCodecStretch                : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwMinHwCodecStretch)+offset, str, lpDdcorecaps->dwMinHwCodecStretch);
+    printf("%08lx DWORD                         %sdwMaxHwCodecStretch                : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwMaxHwCodecStretch)+offset, str, lpDdcorecaps->dwMaxHwCodecStretch);
+    printf("%08lx DWORD                         %sdwReserved1                        : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwReserved1)+offset, str, lpDdcorecaps->dwReserved1);
+    printf("%08lx DWORD                         %sdwReserved2                        : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwReserved2)+offset, str, lpDdcorecaps->dwReserved2);
+    printf("%08lx DWORD                         %sdwReserved3                        : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwReserved3)+offset, str, lpDdcorecaps->dwReserved3);
+    printf("%08lx DWORD                         %sdwSVBCaps                          : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSVBCaps)+offset, str, lpDdcorecaps->dwSVBCaps);
+    printf("%08lx DWORD                         %sdwSVBCKeyCaps                      : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSVBCKeyCaps)+offset, str, lpDdcorecaps->dwSVBCKeyCaps);
+    printf("%08lx DWORD                         %sdwSVBFXCaps                        : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSVBFXCaps)+offset, str, lpDdcorecaps->dwSVBFXCaps);
+
+    for (c=0;c<DD_ROP_SPACE;c++)
+    {
+        printf("%08lx DWORD                         %sdwSVBRops[0x%02x]                  : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSVBRops[c])+offset, str, c, lpDdcorecaps->dwSVBRops[c]);
+    }
+
+    printf("%08lx DWORD                         %sdwVSBCaps                          : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwVSBCaps)+offset, str, lpDdcorecaps->dwVSBCaps);
+    printf("%08lx DWORD                         %sdwVSBCKeyCaps                      : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwVSBCKeyCaps)+offset, str, lpDdcorecaps->dwVSBCKeyCaps);
+    printf("%08lx DWORD                         %sdwVSBFXCaps                        : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwVSBFXCaps)+offset, str, lpDdcorecaps->dwVSBFXCaps);
+
+    for (c=0;c<DD_ROP_SPACE;c++)
+    {
+        printf("%08lx DWORD                         %sdwVSBRops[0x%02x]                  : 0x%08lx\n",  FIELD_OFFSET(DDCORECAPS, dwVSBRops[c])+offset, str, c, lpDdcorecaps->dwVSBRops[c]);
+    }
+
+    printf("%08lx DWORD                         %sdwSSBCaps                          : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSSBCaps)+offset, str, lpDdcorecaps->dwSSBCaps);
+    printf("%08lx DWORD                         %sdwSSBCKeyCaps                      : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSSBCKeyCaps)+offset, str, lpDdcorecaps->dwSSBCKeyCaps);
+    printf("%08lx DWORD                         %sdwSSBFXCaps                        : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSSBFXCaps)+offset, str, lpDdcorecaps->dwSSBFXCaps);
+
+    for (c=0;c<DD_ROP_SPACE;c++)
+    {
+        printf("%08lx DWORD                         %sdwSSBRops[0x%02x]                  : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwSSBRops[c])+offset, str, c, lpDdcorecaps->dwSSBRops[c]);
+    }
+
+    printf("%08lx DWORD                         %sdwMaxVideoPorts                    : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwMaxVideoPorts)+offset, str, lpDdcorecaps->dwMaxVideoPorts);
+    printf("%08lx DWORD                         %sdwCurrVideoPorts                   : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwCurrVideoPorts)+offset, str, lpDdcorecaps->dwCurrVideoPorts);
+    printf("%08lx DWORD                         %sdwSVBCaps2                         : 0x%08lx\n", FIELD_OFFSET(DDCORECAPS, dwZBufferBitDepths)+offset, str, lpDdcorecaps->dwSVBCaps2);
+}
+
+void dump_VIDMEMINFO(char *str, LPVIDMEMINFO lpVidmeminfo, DWORD offset)
+{
+
+    if (lpVidmeminfo == NULL)
+        return ;
+
+    printf("%08lx FLATPTR                       %sfpPrimary                : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, fpPrimary)+offset, str, lpVidmeminfo->fpPrimary);
+    printf("%08lx DWORD                         %sdwFlags                  : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, dwFlags)+offset, str, lpVidmeminfo->dwFlags);
+    printf("%08lx DWORD                         %sdwDisplayWidth           : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, fpPrimary)+offset, str, lpVidmeminfo->dwDisplayWidth);
+    printf("%08lx DWORD                         %sdwDisplayHeight          : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, dwDisplayHeight)+offset, str, lpVidmeminfo->dwDisplayHeight);
+    printf("%08lx LONG                          %slDisplayPitch            : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, lDisplayPitch)+offset, str, lpVidmeminfo->lDisplayPitch);
+    //printf("%08lx DDPIXELFORMAT                       %sddpfDisplay          : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, ddpfDisplay)+offset, str, lpVidmeminfo->ddpfDisplay);
+    printf("%08lx DWORD                         %sdwOffscreenAlign         : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, dwOffscreenAlign)+offset, str, lpVidmeminfo->dwOffscreenAlign);
+    printf("%08lx DWORD                         %sdwOverlayAlign           : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, dwOverlayAlign)+offset, str, lpVidmeminfo->dwOverlayAlign);
+    printf("%08lx DWORD                         %sdwTextureAlign           : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, dwTextureAlign)+offset, str, lpVidmeminfo->dwTextureAlign);
+    printf("%08lx DWORD                         %sdwZBufferAlign           : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, dwZBufferAlign)+offset, str, lpVidmeminfo->dwZBufferAlign);
+    printf("%08lx DWORD                         %sdwAlphaAlign             : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, dwDisplayWidth)+offset, str, lpVidmeminfo->dwAlphaAlign);
+    printf("%08lx DWORD                         %sdwNumHeaps               : 0x%08lx\n", FIELD_OFFSET(VIDMEMINFO, dwNumHeaps)+offset, str, lpVidmeminfo->dwNumHeaps);
+    printf("%08lx LPVIDMEM                      %spvmList                  : 0x%p\n", FIELD_OFFSET(VIDMEMINFO, pvmList)+offset, str, lpVidmeminfo->pvmList);
+}
+
+
+
+
+
+
+
+
 
 
 

Modified: branches/reactx/rostests/apitests/ddrawapi/tests/Test_DirectDrawCreateEx.c
URL: http://svn.reactos.org/svn/reactos/branches/reactx/rostests/apitests/ddrawapi/tests/Test_DirectDrawCreateEx.c?rev=37376&r1=37375&r2=37376&view=diff
==============================================================================
--- branches/reactx/rostests/apitests/ddrawapi/tests/Test_DirectDrawCreateEx.c [iso-8859-1] (original)
+++ branches/reactx/rostests/apitests/ddrawapi/tests/Test_DirectDrawCreateEx.c [iso-8859-1] Sat Nov 15 11:00:58 2008
@@ -4,6 +4,7 @@
 {
 
     LPDIRECTDRAW7 DirectDraw7;
+    LPDIRECTDRAW DirectDraw;
     LPDDRAWI_DIRECTDRAW_INT pIntDirectDraw7;
     HRESULT ret;
 
@@ -19,47 +20,438 @@
         RTEST(pIntDirectDraw7->lpLcl != NULL);
         RTEST(pIntDirectDraw7->lpLink == NULL);
         RTEST(pIntDirectDraw7->dwIntRefCnt == 1);
-        
+
         RTEST(pIntDirectDraw7->lpLcl->lpDDMore == 0);
         RTEST(pIntDirectDraw7->lpLcl->lpGbl != NULL);
         RTEST(pIntDirectDraw7->lpLcl->dwUnused0 == 0);
         RTEST(pIntDirectDraw7->lpLcl->dwLocalFlags == DDRAWILCL_DIRECTDRAW7);
         RTEST(pIntDirectDraw7->lpLcl->dwLocalRefCnt == 1);
-        
-        /* pIntDirectDraw7->lpLcl->dwProcessId call see if we have same ProcessId */
-        RTEST(pIntDirectDraw7->lpLcl->dwProcessId != 0); 
-
+        RTEST(pIntDirectDraw7->lpLcl->dwProcessId == GetCurrentProcessId());
         RTEST(pIntDirectDraw7->lpLcl->pUnkOuter == NULL);
-        RTEST(pIntDirectDraw7->lpLcl->dwObsolete1 == 0);        
+        RTEST(pIntDirectDraw7->lpLcl->dwObsolete1 == 0);
         RTEST(pIntDirectDraw7->lpLcl->hWnd == 0);
-        
-        /* FIXME vaildate pIntDirectDraw7->lpLcl->hDC */
-        RTEST(pIntDirectDraw7->lpLcl->hDC != 0);  
-        
-        RTEST(pIntDirectDraw7->lpLcl->dwErrorMode == 0); 
+        RTEST(pIntDirectDraw7->lpLcl->hDC != 0);
+        RTEST(pIntDirectDraw7->lpLcl->dwErrorMode == 0);
         RTEST(pIntDirectDraw7->lpLcl->lpPrimary == NULL);
         RTEST(pIntDirectDraw7->lpLcl->lpCB == NULL);
-        RTEST(pIntDirectDraw7->lpLcl->dwPreferredMode == 0); 
-        RTEST(pIntDirectDraw7->lpLcl->hD3DInstance == NULL); 
-        RTEST(pIntDirectDraw7->lpLcl->pD3DIUnknown == NULL); 
-        
-        RTEST(pIntDirectDraw7->lpLcl->lpDDCB != NULL); 
-        //RTEST(pIntDirectDraw7->lpLcl->hDDVxd != -1); fixme
-        RTEST(pIntDirectDraw7->lpLcl->hFocusWnd == 0); 
-        RTEST(pIntDirectDraw7->lpLcl->dwHotTracking == 0); 
-        RTEST(pIntDirectDraw7->lpLcl->dwIMEState == 0); 
-        
-        RTEST(pIntDirectDraw7->lpLcl->hWndPopup == 0); 
-        RTEST(pIntDirectDraw7->lpLcl->hDD != 0); 
-        RTEST(pIntDirectDraw7->lpLcl->hGammaCalibrator != 0); 
+        RTEST(pIntDirectDraw7->lpLcl->dwPreferredMode == 0);
+        RTEST(pIntDirectDraw7->lpLcl->hD3DInstance == NULL);
+        RTEST(pIntDirectDraw7->lpLcl->pD3DIUnknown == NULL);
+        RTEST(pIntDirectDraw7->lpLcl->lpDDCB != NULL);
+        //RTEST(pIntDirectDraw7->lpLcl->hDDVxd != 0xFFFFFFFF);
+        RTEST(pIntDirectDraw7->lpLcl->dwAppHackFlags == 0);
+        RTEST(pIntDirectDraw7->lpLcl->hFocusWnd == 0);
+        RTEST(pIntDirectDraw7->lpLcl->dwHotTracking == 0);
+        RTEST(pIntDirectDraw7->lpLcl->dwIMEState == 0);
+        RTEST(pIntDirectDraw7->lpLcl->hWndPopup == 0);
+        RTEST(pIntDirectDraw7->lpLcl->hDD != 0);
+        RTEST(pIntDirectDraw7->lpLcl->hGammaCalibrator != 0);
         RTEST(pIntDirectDraw7->lpLcl->lpGammaCalibrator != NULL);
+
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwRefCnt == 1);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwFlags == 0x21804020);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->fpPrimaryOrig == 0x00000000);
+
+        /* ddCaps is Hal caps from the drv */
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSize == 0x0000013c);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwCaps2 != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwCKeyCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwFXCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwFXAlphaCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwPalCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaBltConstBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaBltPixelBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaBltSurfaceBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaOverlayConstBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaOverlayPixelBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaOverlaySurfaceBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwZBufferBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVidMemTotal == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVidMemFree == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxVisibleOverlays != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwNumFourCCCodes != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlignBoundarySrc == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlignSizeSrc == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlignBoundaryDest == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlignSizeDest == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlignStrideAlign == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x00] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x01] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x02] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x03] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x04] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x05] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x06] != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x07] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.ddsCaps.dwCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMinOverlayStretch != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxOverlayStretch != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMinLiveVideoStretch != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxLiveVideoStretch != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMinHwCodecStretch != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxHwCodecStretch != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwReserved1 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwReserved2 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwReserved3 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBCKeyCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBFXCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x00] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x01] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x02] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x03] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x04] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x05] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x06] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x07] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBCKeyCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBFXCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x00] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x01] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x02] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x03] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x04] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x05] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x06] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x07] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBCKeyCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBFXCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x00] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x01] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x02] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x03] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x04] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x05] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x06] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x07] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxVideoPorts == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwCurrVideoPorts == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBCaps2 != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwInternal1 == 0x00000902 );
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused1[0] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused1[1] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused1[2] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused1[3] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused1[4] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused1[5] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused1[6] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused1[7] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused1[8] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpDDCBtmp != NULL);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dsList == NULL);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->palList == NULL);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->clipperList == NULL);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lp16DD == NULL);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwMaxOverlays == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwCurrOverlays == 0);
+
+        /* fixme check with current res freq */
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwMonitorFrequency != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSize == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCaps == 0xf4c08241);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCaps2 == 0x00000001);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCKeyCaps == 0x00000200);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwFXCaps == 0x0003fce3);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwFXAlphaCaps == 0x00000000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwPalCaps == 0x00000347);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVCaps == 0x00000000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaBltConstBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaBltPixelBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaBltSurfaceBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaOverlayConstBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaOverlayPixelBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaOverlaySurfaceBitDepths == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwZBufferBitDepths != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVidMemTotal == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVidMemFree == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxVisibleOverlays == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCurrVisibleOverlays == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwNumFourCCCodes == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlignBoundarySrc == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlignSizeSrc == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlignBoundaryDest == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlignSizeDest == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlignStrideAlign == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x00] == 1);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x01] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x02] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x03] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x04] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x05] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x06] == 0x00001000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x07] == 0x80000000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.ddsCaps.dwCaps == 0x00c21350);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMinOverlayStretch == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxOverlayStretch == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMinLiveVideoStretch == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxLiveVideoStretch == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMinHwCodecStretch == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxHwCodecStretch == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwReserved1 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwReserved2 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwReserved3 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBCaps == 0xf4c08241);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBCKeyCaps == 0x00000200);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBFXCaps == 0x0003fce3);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x00] == 1);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x01] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x02] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x03] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x04] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x05] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x06] == 0x00001000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x07] == 0x80000000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBCaps == 0xf4c08241);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBCKeyCaps == 0x00000200);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBFXCaps == 0x0003fce3);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x00] == 1);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x01] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x02] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x03] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x04] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x05] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x06] == 0x00001000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x07] == 0x80000000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBCaps == 0xf4c08241);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBCKeyCaps == 0x00000200);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBFXCaps == 0x0003fce3);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x00] == 0x00000001);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x01] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x02] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x03] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x04] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x05] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x06] == 0x00001000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x07] == 0x80000000);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxVideoPorts == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCurrVideoPorts == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBCaps2 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[0] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[1] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[2] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[3] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[4] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[5] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[6] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[7] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[8] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[9] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[10] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[11] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[12] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[13] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[14] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[15] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[16] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[17] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[18] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[19] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[20] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[21] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[22] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[23] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[24] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[25] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[26] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[27] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[28] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[29] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[30] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[31] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[32] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[33] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[34] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[35] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[36] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[37] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[38] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[39] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[40] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[41] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[42] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[43] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[44] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[45] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[46] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[47] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[48] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused2[49] == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.fpPrimary == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.dwFlags == 0x00000000);
+        /* get current res and compare it with dwDisplayWidth, lDisplayPitch,  currenr res fixme */
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.dwDisplayWidth != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.dwDisplayHeight != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.lDisplayPitch != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.dwOffscreenAlign != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.dwOverlayAlign != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.dwTextureAlign != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.dwZBufferAlign != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.dwAlphaAlign == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.dwNumHeaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->vmiData.pvmList == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpDriverHandle != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpExclusiveOwner == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwModeIndex == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwModeIndexOrig == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwNumFourCC != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpdwFourCC != NULL);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwNumModes != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpModeInfo != NULL);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwSurfaceLockCount == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwAliasedLockCnt == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwReserved3 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->hDD != 0);
+        /* ms ddraw send in the string "display" when it create the hDC */
+        RTEST(strcmp(pIntDirectDraw7->lpLcl->lpGbl->cObsolete,"display") == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwReserved1 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwReserved2 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dbnOverlayRoot.next != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dbnOverlayRoot.object == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dbnOverlayRoot.object_int == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpwPDeviceFlags == (LPVOID)0x737A07F0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwPDevice == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwWin16LockCnt == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwUnused3 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->hInstance == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwEvent16 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwSaveNumModes == 1);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpD3DGlobalDriverData != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpD3DHALCallbacks != 0);
+
+        /* both caps pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps. and pIntDirectDraw7->lpLcl->lpGbl->ddCaps. */
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSize == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSize, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSize));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwCaps2 == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCaps2, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwCaps2));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwCKeyCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCKeyCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwCKeyCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwFXCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwFXCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwFXCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwFXAlphaCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwFXAlphaCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwFXAlphaCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwPalCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwPalCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwPalCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwAlphaBltConstBitDepths == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaBltConstBitDepths, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaBltConstBitDepths));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwAlphaBltPixelBitDepths == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaBltPixelBitDepths, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaBltPixelBitDepths));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwAlphaBltSurfaceBitDepths == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaBltSurfaceBitDepths, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaBltSurfaceBitDepths));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwAlphaOverlayConstBitDepths == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaOverlayConstBitDepths, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaOverlayConstBitDepths));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwAlphaOverlayPixelBitDepths == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaOverlayPixelBitDepths, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaOverlayPixelBitDepths));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwAlphaOverlaySurfaceBitDepths == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlphaOverlaySurfaceBitDepths, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlphaOverlaySurfaceBitDepths));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwZBufferBitDepths == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwZBufferBitDepths, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwZBufferBitDepths));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVidMemTotal == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVidMemTotal, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVidMemTotal));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVidMemFree == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVidMemFree, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVidMemFree));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwMaxVisibleOverlays == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxVisibleOverlays, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxVisibleOverlays));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwCurrVisibleOverlays == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCurrVisibleOverlays, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwCurrVisibleOverlays));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwNumFourCCCodes == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwNumFourCCCodes, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwNumFourCCCodes));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwAlignBoundarySrc == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlignBoundarySrc, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlignBoundarySrc));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwAlignSizeSrc == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlignSizeSrc, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlignSizeSrc));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwAlignBoundaryDest == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwAlignBoundaryDest, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwAlignBoundaryDest));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwRops[0x00] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x00], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x00]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwRops[0x01] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x01], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x01]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwRops[0x02] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x02], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x02]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwRops[0x02] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x03], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x03]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwRops[0x04] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x04], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x04]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwRops[0x05] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x05], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x05]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwRops[0x06] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x06], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x06]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwRops[0x07] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwRops[0x07], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwRops[0x07]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.ddsCaps.dwCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.ddsCaps.dwCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.ddsCaps.dwCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwMinOverlayStretch == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMinOverlayStretch, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMinOverlayStretch));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwMaxOverlayStretch == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxOverlayStretch, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxOverlayStretch));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwMinLiveVideoStretch == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMinLiveVideoStretch, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMinLiveVideoStretch));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwMaxLiveVideoStretch == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxLiveVideoStretch, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxLiveVideoStretch));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwMinHwCodecStretch == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMinHwCodecStretch, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMinHwCodecStretch));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwMaxHwCodecStretch == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxHwCodecStretch, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxHwCodecStretch));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwReserved1 == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwReserved1, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwReserved1));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwReserved2 == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwReserved2, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwReserved2));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwReserved3 == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwReserved3, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwReserved3));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBCKeyCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBCKeyCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBCKeyCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBFXCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBFXCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBFXCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBRops[0x00] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x00], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x00]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBRops[0x01] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x01], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x01]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBRops[0x02] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x02], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x02]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBRops[0x03] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x03], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x03]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBRops[0x04] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x04], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x04]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBRops[0x05] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x05], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x05]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBRops[0x06] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x06], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x06]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBRops[0x07] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBRops[0x07], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBRops[0x07]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBCKeyCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBCKeyCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBCKeyCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBFXCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBFXCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBFXCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBRops[0x00] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x00], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x00]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBRops[0x01] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x01], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x01]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBRops[0x02] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x02], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x02]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBRops[0x03] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x03], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x03]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBRops[0x04] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x04], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x04]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBRops[0x05] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x05], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x05]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBRops[0x06] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x06], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x06]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwVSBRops[0x07] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwVSBRops[0x07], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwVSBRops[0x07]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBCKeyCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBCKeyCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBCKeyCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBFXCaps == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBFXCaps, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBFXCaps));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBRops[0x00] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x00], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x00]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBRops[0x01] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x01], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x01]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBRops[0x02] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x02], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x02]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBRops[0x03] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x03], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x03]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBRops[0x04] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x04], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x04]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBRops[0x05] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x05], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x05]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBRops[0x06] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x06], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x06]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSSBRops[0x07] == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSSBRops[0x07], pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSSBRops[0x07]));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwMaxVideoPorts == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwMaxVideoPorts, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwMaxVideoPorts));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwCurrVideoPorts == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwCurrVideoPorts, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwCurrVideoPorts));
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddBothCaps.dwSVBCaps2 == MIX_BOTH_CAPS(pIntDirectDraw7->lpLcl->lpGbl->ddHELCaps.dwSVBCaps2, pIntDirectDraw7->lpLcl->lpGbl->ddCaps.dwSVBCaps2));
+
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpDDVideoPortCaps == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dvpList == 0);
+
+        /* The res height */
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->rectDevice.bottom != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->rectDevice.left == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->rectDevice.right == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->rectDevice.top == 0);
+
+        /* how many  Monitors */
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->cMonitors != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->gpbmiSrc != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->gpbmiDest != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->phaiHeapAliases != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->hKernelHandle != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->pfnNotifyProc != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpDDKernelCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpddNLVCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpddNLVHELCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpD3DExtendedCaps != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwDOSBoxEvent == 0);
+
+        /* The res height */
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->rectDesktop.bottom != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->rectDesktop.left == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->rectDesktop.right == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->rectDesktop.top == 0);
+
+        /* ms ddraw send in the string "display" when it create the hDC */
+        RTEST(strcmp(pIntDirectDraw7->lpLcl->lpGbl->cDriverName,"display") == 0);
+
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpD3DHALCallbacks3 != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->dwNumZPixelFormats != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->lpZPixelFormats != 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->mcList == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->hDDVxd == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddsCapsMore.dwCaps2 == 0x00000200);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddsCapsMore.dwCaps3 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddsCapsMore.dwCaps4 == 0);
+        RTEST(pIntDirectDraw7->lpLcl->lpGbl->ddsCapsMore.dwVolumeDepth == 0);
+
+
     }
+
+
+    ret = DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, &IID_IDirectDraw, NULL); 
 
 #if DUMP_ON
     if (pIntDirectDraw7 != NULL)
     {
-        dump_ddrawi_directdraw_int(pIntDirectDraw7);
-        dump_ddrawi_directdraw_lcl(pIntDirectDraw7->lpLcl);
+        dump_DDRAWI_DIRECTDRAW_INT("PDraw->", pIntDirectDraw7, 0);
     }
 #endif
 



More information about the Ros-diffs mailing list