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/windows/winhelp.c b/windows/winhelp.c
index 362b516..c0e2d66 100644
--- a/windows/winhelp.c
+++ b/windows/winhelp.c
@@ -11,6 +11,7 @@
 #include "wingdi.h"
 #include "wine/winuser16.h"
 #include "wine/winbase16.h"
+#include "win.h"
 #include "heap.h"
 
 DEFAULT_DEBUG_CHANNEL(win);
@@ -39,13 +40,13 @@
   /* We might call WinExec() */
   ReleaseThunkLock( &mutex_count );
 
-  if (!(ret = WinHelpA( hWnd, lpHelpFile, wCommand, (DWORD)MapSL(dwData) )))
+  if (!(ret = WinHelpA( WIN_Handle32(hWnd), lpHelpFile, wCommand, (DWORD)MapSL(dwData) )))
   {
       /* try to start the 16-bit winhelp */
       if (WinExec( "winhelp.exe -x", SW_SHOWNORMAL ) >= 32)
       {
           K32WOWYield16();
-          ret = WinHelpA( hWnd, lpHelpFile, wCommand, (DWORD)MapSL(dwData) );
+          ret = WinHelpA( WIN_Handle32(hWnd), lpHelpFile, wCommand, (DWORD)MapSL(dwData) );
       }
   }