Made all 16<->32 HWND conversions use explicit functions instead of
implicit type casts.
Moved a lot of 16-bit functions to the new wnd16.c file.
Changed DIALOGINFO structure handling to support 32-bit handles.

diff --git a/include/win.h b/include/win.h
index cf56178..8cc7bdb 100644
--- a/include/win.h
+++ b/include/win.h
@@ -62,7 +62,7 @@
     RECT16	   rectNormal;
     POINT16	   ptIconPos;
     POINT16	   ptMaxPos;
-    HWND16	   hwndIconTitle;
+    HWND           hwndIconTitle;
 } INTERNALPOS, *LPINTERNALPOS;
 
   /* WND flags values */
@@ -107,6 +107,12 @@
     return LOWORD(hwnd);
 }
 
+inline static WND *WIN_FindWndPtr16( HWND16 hwnd )
+{
+    /* don't bother with full conversion */
+    return WIN_FindWndPtr( (HWND)(ULONG_PTR)hwnd );
+}
+
 extern HWND CARET_GetHwnd(void);
 extern void CARET_GetRect(LPRECT lprc);  /* windows/caret.c */
 
diff --git a/include/winproc.h b/include/winproc.h
index 97a79d5..1f68d92 100644
--- a/include/winproc.h
+++ b/include/winproc.h
@@ -52,10 +52,10 @@
                                      LPARAM *plparam );
 extern INT WINPROC_MapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM *pwparam,
                                      LPARAM *plparam );
-extern INT WINPROC_MapMsg16To32A( UINT16 msg16, WPARAM16 wParam16,
+extern INT WINPROC_MapMsg16To32A( HWND hwnd, UINT16 msg16, WPARAM16 wParam16,
                                     UINT *pmsg32, WPARAM *pwparam32,
                                     LPARAM *plparam );
-extern INT WINPROC_MapMsg16To32W( HWND16, UINT16 msg16, WPARAM16 wParam16,
+extern INT WINPROC_MapMsg16To32W( HWND hwnd, UINT16 msg16, WPARAM16 wParam16,
                                     UINT *pmsg32, WPARAM *pwparam32,
                                     LPARAM *plparam );
 extern INT WINPROC_MapMsg32ATo16( HWND hwnd, UINT msg32,
@@ -68,9 +68,9 @@
                                          LPARAM lParam, LRESULT result );
 extern void WINPROC_UnmapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam,
                                       LPARAM lParam );
-extern LRESULT WINPROC_UnmapMsg16To32A( HWND16 hwnd, UINT msg, WPARAM wParam,
+extern LRESULT WINPROC_UnmapMsg16To32A( HWND hwnd, UINT msg, WPARAM wParam,
                                         LPARAM lParam, LRESULT result );
-extern LRESULT WINPROC_UnmapMsg16To32W( HWND16 hwnd, UINT msg, WPARAM wParam,
+extern LRESULT WINPROC_UnmapMsg16To32W( HWND hwnd, UINT msg, WPARAM wParam,
                                         LPARAM lParam, LRESULT result );
 extern void WINPROC_UnmapMsg32ATo16( HWND hwnd, UINT msg, WPARAM wParam,
                                      LPARAM lParam, MSGPARAM16* pm16 );
diff --git a/include/winuser.h b/include/winuser.h
index 16beba9..d96b26e 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -1070,12 +1070,9 @@
 #define GWL_USERDATA        (-21)
 #define GWL_EXSTYLE         (-20)
 #define GWL_STYLE           (-16)
-#define GWW_ID              (-12)
-#define GWL_ID              GWW_ID
-#define GWW_HWNDPARENT      (-8)
-#define GWL_HWNDPARENT      GWW_HWNDPARENT
-#define GWW_HINSTANCE       (-6)
-#define GWL_HINSTANCE       GWW_HINSTANCE
+#define GWL_ID              (-12)
+#define GWL_HWNDPARENT      (-8)
+#define GWL_HINSTANCE       (-6)
 #define GWL_WNDPROC         (-4)
 #define DWL_MSGRESULT	    0
 #define DWL_DLGPROC	    4