Slightly rearrange WIN16/WIN32A/WIN32 window creation.

diff --git a/windows/win.c b/windows/win.c
index 57c458e..60569e1 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -7,7 +7,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include "windef.h"
-#include "wingdi.h"
 #include "wine/winbase16.h"
 #include "wine/winuser16.h"
 #include "wine/unicode.h"
@@ -21,16 +20,12 @@
 #include "hook.h"
 #include "menu.h"
 #include "message.h"
-#include "nonclient.h"
 #include "queue.h"
 #include "winpos.h"
-#include "clipboard.h"
-#include "winproc.h"
 #include "task.h"
 #include "thread.h"
 #include "winerror.h"
 #include "mdi.h"
-#include "local.h"
 #include "stackframe.h"
 #include "debugtools.h"
 
@@ -643,7 +638,7 @@
 
 
 /***********************************************************************
- *           WIN_CreateWindowEx
+ *           WIN_FixCoordinates
  *
  * Fix the coordinates - Helper for WIN_CreateWindowEx.
  * returns default show mode in sw.
@@ -713,7 +708,7 @@
  * Implementation of CreateWindowEx().
  */
 static HWND WIN_CreateWindowEx( CREATESTRUCTA *cs, ATOM classAtom,
-                                  BOOL win32, BOOL unicode )
+				WINDOWPROCTYPE type )
 {
     INT sw = SW_SHOW; 
     CLASS *classPtr;
@@ -724,11 +719,14 @@
     LRESULT (CALLBACK *localSend32)(HWND, UINT, WPARAM, LPARAM);
 
     TRACE("%s %s %08lx %08lx %d,%d %dx%d %04x %04x %08x %p\n",
-          unicode ? debugres_w((LPWSTR)cs->lpszName) : debugres_a(cs->lpszName), 
-          unicode ? debugres_w((LPWSTR)cs->lpszClass) : debugres_a(cs->lpszClass),
+          (type == WIN_PROC_32W) ? debugres_w((LPWSTR)cs->lpszName) : debugres_a(cs->lpszName), 
+          (type == WIN_PROC_32W) ? debugres_w((LPWSTR)cs->lpszClass) : debugres_a(cs->lpszClass),
           cs->dwExStyle, cs->style, cs->x, cs->y, cs->cx, cs->cy,
           cs->hwndParent, cs->hMenu, cs->hInstance, cs->lpCreateParams );
 
+    TRACE("winproc type is %d (%s)\n", type, (type == WIN_PROC_16) ? "WIN_PROC_16" :
+	    ((type == WIN_PROC_32A) ? "WIN_PROC_32A" : "WIN_PROC_32W") );
+
     /* Find the parent window */
 
     if (cs->hwndParent)
@@ -745,7 +743,7 @@
     }
 
     /* Find the window class */
-    if (!(classPtr = CLASS_FindClassByAtom( classAtom, win32?cs->hInstance:GetExePtr(cs->hInstance) )))
+    if (!(classPtr = CLASS_FindClassByAtom( classAtom, (type == WIN_PROC_16) ? GetExePtr(cs->hInstance) : cs->hInstance )))
     {
         WARN("Bad class '%s'\n", cs->lpszClass );
         return 0;
@@ -806,7 +804,7 @@
     wndPtr->dwExStyle      = cs->dwExStyle;
     wndPtr->wIDmenu        = 0;
     wndPtr->helpContext    = 0;
-    wndPtr->flags          = win32 ? WIN_ISWIN32 : 0;
+    wndPtr->flags          = (type == WIN_PROC_16) ? 0 : WIN_ISWIN32;
     wndPtr->pVScroll       = NULL;
     wndPtr->pHScroll       = NULL;
     wndPtr->pProp          = NULL;
@@ -829,7 +827,7 @@
 
 	cbtc.lpcs = cs;
 	cbtc.hwndInsertAfter = hwndLinkAfter;
-        ret = unicode ? HOOK_CallHooksW(WH_CBT, HCBT_CREATEWND, hwnd, (LPARAM)&cbtc)
+        ret = (type == WIN_PROC_32W) ? HOOK_CallHooksW(WH_CBT, HCBT_CREATEWND, hwnd, (LPARAM)&cbtc)
                       : HOOK_CallHooksA(WH_CBT, HCBT_CREATEWND, hwnd, (LPARAM)&cbtc);
         if (ret)
 	{
@@ -891,7 +889,7 @@
     wndPtr->rectWindow.bottom = cs->y + cs->cy;
     wndPtr->rectClient        = wndPtr->rectWindow;
 
-    if(!wndPtr->pDriver->pCreateWindow(wndPtr, classPtr, cs, unicode))
+    if(!wndPtr->pDriver->pCreateWindow(wndPtr, classPtr, cs, type == WIN_PROC_32W))
     {
         retvalue = FALSE;
         goto end;
@@ -926,7 +924,7 @@
 
     maxPos.x = wndPtr->rectWindow.left; maxPos.y = wndPtr->rectWindow.top;
 
-    localSend32 = unicode ? SendMessageW : SendMessageA;
+    localSend32 = (type == WIN_PROC_32W) ? SendMessageW : SendMessageA;
     if( (*localSend32)( hwnd, WM_NCCREATE, 0, (LPARAM)cs) )
     {
         /* Insert the window in the linked list */
@@ -949,10 +947,10 @@
 		  WARN("sending bogus WM_SIZE message 0x%08lx\n",
 			MAKELONG(wndPtr->rectClient.right-wndPtr->rectClient.left,
 				 wndPtr->rectClient.bottom-wndPtr->rectClient.top));
-                SendMessageA( hwnd, WM_SIZE, SIZE_RESTORED,
+                (*localSend32)( hwnd, WM_SIZE, SIZE_RESTORED,
                                 MAKELONG(wndPtr->rectClient.right-wndPtr->rectClient.left,
                                          wndPtr->rectClient.bottom-wndPtr->rectClient.top));
-                SendMessageA( hwnd, WM_MOVE, 0,
+                (*localSend32)( hwnd, WM_MOVE, 0,
                                 MAKELONG( wndPtr->rectClient.left,
                                           wndPtr->rectClient.top ) );
             }
@@ -1076,7 +1074,7 @@
     cs.lpszClass      = className;
     cs.dwExStyle      = exStyle;
 
-    return WIN_CreateWindowEx( &cs, classAtom, FALSE, FALSE );
+    return WIN_CreateWindowEx( &cs, classAtom, WIN_PROC_16 );
 }
 
 
@@ -1135,7 +1133,7 @@
     cs.lpszClass      = className;
     cs.dwExStyle      = exStyle;
 
-    return WIN_CreateWindowEx( &cs, classAtom, TRUE, FALSE );
+    return WIN_CreateWindowEx( &cs, classAtom, WIN_PROC_32A );
 }
 
 
@@ -1196,7 +1194,7 @@
 
     /* Note: we rely on the fact that CREATESTRUCTA and */
     /* CREATESTRUCTW have the same layout. */
-    return WIN_CreateWindowEx( (CREATESTRUCTA *)&cs, classAtom, TRUE, TRUE );
+    return WIN_CreateWindowEx( (CREATESTRUCTA *)&cs, classAtom, WIN_PROC_32W );
 }
 
 /***********************************************************************
@@ -2020,7 +2018,7 @@
                 retval = SetWindowWord( hwnd, offset, newval );
                 goto end;
 	case GWL_WNDPROC:
-					retval = (LONG)WINPROC_GetProc( wndPtr->winproc, type );
+		retval = (LONG)WINPROC_GetProc( wndPtr->winproc, type );
 		WINPROC_SetProc( &wndPtr->winproc, (WNDPROC16)newval, 
 						type, WIN_PROC_WINDOW );
 		goto end;