Allocate DC objects on the process heap, and removed WIN_DC_INFO
structure (based on a patch by Ken Coleman).

diff --git a/windows/scroll.c b/windows/scroll.c
index 2cabfbf..6dd5892 100644
--- a/windows/scroll.c
+++ b/windows/scroll.c
@@ -13,14 +13,13 @@
 #include "wingdi.h"
 #include "wine/winuser16.h"
 #include "winuser.h"
-#include "dc.h"
 #include "win.h"
 #include "gdi.h"
 #include "dce.h"
 #include "region.h"
 #include "debugtools.h"
 
-DEFAULT_DEBUG_CHANNEL(scroll)
+DEFAULT_DEBUG_CHANNEL(scroll);
 
 /*************************************************************************
  *             ScrollWindow16   (USER.61)
@@ -122,7 +121,7 @@
     OffsetRect( &rSrc, -dx, -dy );
     IntersectRect( &rSrc, &rSrc, &rect );
 
-    if(dc->w.hVisRgn)
+    if(dc->hVisRgn)
     {
         if (!IsRectEmpty(&rSrc))
         {
@@ -153,9 +152,9 @@
             HRGN hrgn2;
 
             hrgn2 = CreateRectRgnIndirect( &rect );
-            OffsetRgn( hrgn2, dc->w.DCOrgX, dc->w.DCOrgY );
-            CombineRgn( hrgn2, hrgn2, dc->w.hVisRgn, RGN_AND );
-            OffsetRgn( hrgn2, -dc->w.DCOrgX, -dc->w.DCOrgY );
+            OffsetRgn( hrgn2, dc->DCOrgX, dc->DCOrgY );
+            CombineRgn( hrgn2, hrgn2, dc->hVisRgn, RGN_AND );
+            OffsetRgn( hrgn2, -dc->DCOrgX, -dc->DCOrgY );
             SetRectRgn( hrgn, rClip.left, rClip.top,
                           rClip.right, rClip.bottom );
             CombineRgn( hrgn, hrgn, hrgn2, RGN_AND );
@@ -293,10 +292,10 @@
 
                 if( (dc = DC_GetDCPtr(hDC)) )
                 {
-                        OffsetRgn( hrgnTemp, dc->w.DCOrgX, dc->w.DCOrgY );
-                        CombineRgn( hrgnTemp, hrgnTemp, dc->w.hVisRgn,
+                        OffsetRgn( hrgnTemp, dc->DCOrgX, dc->DCOrgY );
+                        CombineRgn( hrgnTemp, hrgnTemp, dc->hVisRgn,
                                       RGN_AND );
-                        OffsetRgn( hrgnTemp, -dc->w.DCOrgX, -dc->w.DCOrgY );
+                        OffsetRgn( hrgnTemp, -dc->DCOrgX, -dc->DCOrgY );
                         CombineRgn( hrgnUpdate, hrgnTemp, hrgnClip,
                                       RGN_AND );
                         OffsetRgn( hrgnTemp, dx, dy );