Use 32-bit hook functions where possible. Cleaned up a couple of
16-bit type uses.

diff --git a/windows/focus.c b/windows/focus.c
index 76838de..9a32fcc 100644
--- a/windows/focus.c
+++ b/windows/focus.c
@@ -113,8 +113,7 @@
         }
         
 	/* call hooks */
-	if( HOOK_CallHooks16( WH_CBT, HCBT_SETFOCUS, (WPARAM16)hwnd,
-			      (LPARAM)hWndFocus) )
+	if( HOOK_CallHooksA( WH_CBT, HCBT_SETFOCUS, (WPARAM)hwnd, (LPARAM)hWndFocus) )
 	    goto CLEANUP;
 
         /* activate hwndTop if needed. */
@@ -133,7 +132,7 @@
     }
     else /* NULL hwnd passed in */
     {
-        if( HOOK_CallHooks16( WH_CBT, HCBT_SETFOCUS, 0, (LPARAM)hWndFocus ) )
+        if( HOOK_CallHooksA( WH_CBT, HCBT_SETFOCUS, 0, (LPARAM)hWndFocus ) )
             goto CLEANUP;
 
         /* Get the current focus from the perQ data of the current message Q */
diff --git a/windows/message.c b/windows/message.c
index f49d89f..5a22e67 100644
--- a/windows/message.c
+++ b/windows/message.c
@@ -100,18 +100,18 @@
  */
 static DWORD MSG_TranslateMouseMsg( HWND hTopWnd, DWORD first, DWORD last,
                                     MSG *msg, BOOL remove, WND* pWndScope,
-                                    INT16 *pHitTest, POINT16 *pScreen_pt, BOOL *pmouseClick )
+                                    INT *pHitTest, POINT *screen_pt, BOOL *pmouseClick )
 {
     static DWORD   dblclk_time_limit = 0;
     static UINT16     clk_message = 0;
     static HWND16     clk_hwnd = 0;
-    static POINT16    clk_pos = { 0, 0 };
+    static POINT clk_pos;
 
     WND *pWnd;
     HWND hWnd;
     INT16 ht, hittest;
     UINT message = msg->message;
-    POINT16 screen_pt, pt;
+    POINT16 pt;
     HANDLE16 hQ = GetFastQueue16();
     MESSAGEQUEUE *queue = QUEUE_Lock(hQ);
     BOOL mouseClick = ((message == WM_LBUTTONDOWN) ||
@@ -191,8 +191,7 @@
 	}
     }
     /* save mouse position */
-    screen_pt = pt;
-    *pScreen_pt = pt;
+    CONV_POINT16TO32( &pt, screen_pt );
 
     if (hittest != HTCLIENT)
     {
@@ -221,9 +220,9 @@
 	{
 	    /* set conditions */
 	    dblclk_time_limit = msg->time;
-	       clk_message = msg->message;
-	       clk_hwnd = hWnd;
-	       clk_pos = screen_pt;
+            clk_message = msg->message;
+            clk_hwnd = hWnd;
+            clk_pos = *screen_pt;
 	} else 
 	    /* got double click - zero them out */
 	    dblclk_time_limit = clk_hwnd = 0;
@@ -261,8 +260,8 @@
  *  SYSQ_MSG_ACCEPT   - the translated message must be passed to the user
  *                      MSG_PeekHardwareMsg should return TRUE.
  */
-static DWORD MSG_ProcessMouseMsg( MSG *msg, BOOL remove, INT16 hittest,
-                                  POINT16 screen_pt, BOOL mouseClick )
+static DWORD MSG_ProcessMouseMsg( MSG *msg, BOOL remove, INT hittest,
+                                  POINT screen_pt, BOOL mouseClick )
 {
     WND *pWnd;
     HWND hWnd = msg->hwnd;
@@ -277,19 +276,13 @@
 
     if (HOOK_IsHooked( WH_MOUSE ))
     { 
-        SYSQ_STATUS ret = 0;
-	MOUSEHOOKSTRUCT16 *hook = SEGPTR_NEW(MOUSEHOOKSTRUCT16);
-	if( hook )
-	{
-	    hook->pt           = screen_pt;
-	    hook->hwnd         = hWnd;
-	    hook->wHitTestCode = hittest;
-	    hook->dwExtraInfo  = 0;
-	    ret = HOOK_CallHooks16( WH_MOUSE, remove ? HC_ACTION : HC_NOREMOVE,
-	                            message, (LPARAM)SEGPTR_GET(hook) );
-	    SEGPTR_FREE(hook);
-	}
-        if( ret )
+        MOUSEHOOKSTRUCT hook;
+        hook.pt           = screen_pt;
+        hook.hwnd         = hWnd;
+        hook.wHitTestCode = hittest;
+        hook.dwExtraInfo  = 0;
+        if (HOOK_CallHooksA( WH_MOUSE, remove ? HC_ACTION : HC_NOREMOVE,
+                             message, (LPARAM)&hook ))
         {
             retvalue = MAKELONG((INT16)SYSQ_MSG_SKIP, hittest);
             goto END;
@@ -441,8 +434,8 @@
         WIN_ReleaseWndPtr(pWnd);
     }
 
-    return (HOOK_CallHooks16( WH_KEYBOARD, remove ? HC_ACTION : HC_NOREMOVE,
-			      LOWORD (msg->wParam), msg->lParam )
+    return (HOOK_CallHooksA( WH_KEYBOARD, remove ? HC_ACTION : HC_NOREMOVE,
+                             LOWORD (msg->wParam), msg->lParam )
             ? SYSQ_MSG_SKIP : SYSQ_MSG_ACCEPT);
 }
 
@@ -595,8 +588,8 @@
 
     for ( qmsg = sysMsgQueue->firstMsg; qmsg; qmsg = nextqmsg )
     {
-        INT16 hittest;
-        POINT16 screen_pt;
+        INT hittest;
+        POINT screen_pt;
         BOOL mouseClick;
 
         *msg = qmsg->msg;
@@ -686,21 +679,16 @@
                 if (HOOK_IsHooked( WH_CBT ))
                 {
                    if( msgType == KEYBOARD_MSG )
-		       HOOK_CallHooks16( WH_CBT, HCBT_KEYSKIPPED, 
+                       HOOK_CallHooksA( WH_CBT, HCBT_KEYSKIPPED,
                                          LOWORD (msg->wParam), msg->lParam );
 		   else if ( msgType == MOUSE_MSG )
 		   {
-                       MOUSEHOOKSTRUCT16 *hook = SEGPTR_NEW(MOUSEHOOKSTRUCT16);
-                       if (hook)
-                       {
-                           CONV_POINT32TO16( &msg->pt,&hook->pt );
-                           hook->hwnd         = msg->hwnd;
-                           hook->wHitTestCode = HIWORD(status);
-                           hook->dwExtraInfo  = 0;
-                           HOOK_CallHooks16( WH_CBT, HCBT_CLICKSKIPPED ,msg->message & 0xffff,
-                                          (LPARAM)SEGPTR_GET(hook) );
-                           SEGPTR_FREE(hook);
-                       }
+                       MOUSEHOOKSTRUCT hook;
+                       hook.pt           = msg->pt;
+                       hook.hwnd         = msg->hwnd;
+                       hook.wHitTestCode = HIWORD(status);
+                       hook.dwExtraInfo  = 0;
+                       HOOK_CallHooksA( WH_CBT, HCBT_CLICKSKIPPED, msg->message, (LPARAM)&hook );
                    }
                 }
 
diff --git a/windows/win.c b/windows/win.c
index 1d2bfef..bec9352 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -980,7 +980,7 @@
             /* Call WH_SHELL hook */
 
             if (!(wndPtr->dwStyle & WS_CHILD) && !wndPtr->owner)
-                HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 );
+                HOOK_CallHooksA( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 );
 
             TRACE("created window %04x\n", hwnd);
             retvalue = hwnd;
@@ -1336,7 +1336,7 @@
 
       /* Call hooks */
 
-    if( HOOK_CallHooks16( WH_CBT, HCBT_DESTROYWND, hwnd, 0L) )
+    if( HOOK_CallHooksA( WH_CBT, HCBT_DESTROYWND, hwnd, 0L) )
     {
         retvalue = FALSE;
         goto end;
@@ -1344,7 +1344,7 @@
 
     if (!(wndPtr->dwStyle & WS_CHILD) && !wndPtr->owner)
     {
-        HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWDESTROYED, hwnd, 0L );
+        HOOK_CallHooksA( WH_SHELL, HSHELL_WINDOWDESTROYED, hwnd, 0L );
         /* FIXME: clean up palette - see "Internals" p.352 */
     }
 
diff --git a/windows/winpos.c b/windows/winpos.c
index d881618..ce533d1 100644
--- a/windows/winpos.c
+++ b/windows/winpos.c
@@ -1227,7 +1227,7 @@
     size.x = wndPtr->rectWindow.left; size.y = wndPtr->rectWindow.top;
     lpPos = WINPOS_InitInternalPos( wndPtr, size, &wndPtr->rectWindow );
 
-    if (lpPos && !HOOK_CallHooks16(WH_CBT, HCBT_MINMAX, wndPtr->hwndSelf, cmd))
+    if (lpPos && !HOOK_CallHooksA(WH_CBT, HCBT_MINMAX, wndPtr->hwndSelf, cmd))
     {
 	if( wndPtr->dwStyle & WS_MINIMIZE )
 	{
@@ -1722,7 +1722,6 @@
  */
 BOOL WINPOS_SetActiveWindow( HWND hWnd, BOOL fMouse, BOOL fChangeFocus)
 {
-    CBTACTIVATESTRUCT16* cbtStruct;
     WND*     wndPtr=0, *wndTemp;
     HQUEUE16 hOldActiveQueue, hNewActiveQueue;
     MESSAGEQUEUE *pOldActiveQueue = 0, *pNewActiveQueue = 0;
@@ -1759,14 +1758,12 @@
 	TRACE("no current active window.\n");
 
     /* call CBT hook chain */
-    if ((cbtStruct = SEGPTR_NEW(CBTACTIVATESTRUCT16)))
+    if (HOOK_IsHooked( WH_CBT ))
     {
-        cbtStruct->fMouse     = fMouse;
-        cbtStruct->hWndActive = hwndActive;
-        bRet = (BOOL)HOOK_CallHooks16( WH_CBT, HCBT_ACTIVATE, (WPARAM16)hWnd,
-                                     (LPARAM)SEGPTR_GET(cbtStruct) );
-        SEGPTR_FREE(cbtStruct);
-        if (bRet) goto CLEANUP_END;
+        CBTACTIVATESTRUCT cbt;
+        cbt.fMouse     = fMouse;
+        cbt.hWndActive = hwndActive;
+        if (HOOK_CallHooksA( WH_CBT, HCBT_ACTIVATE, hWnd, (LPARAM)&cbt )) goto CLEANUP_END;
     }
 
     /* set prev active wnd to current active wnd and send notification */