Replaced PTR_SEG_TO_LIN macro by exported MapSL function.
Fixed a few ptr/segptr mismatches.
Moved CONV_RECT/POINT macros to wingdi16.h.

diff --git a/windows/hook.c b/windows/hook.c
index 9f3ace1..68ca4c1 100644
--- a/windows/hook.c
+++ b/windows/hook.c
@@ -71,7 +71,7 @@
 	case WH_GETMESSAGE: 
 	case WH_JOURNALRECORD:
         {
-            LPMSG16 lpmsg16 = PTR_SEG_TO_LIN(*plParam);
+            LPMSG16 lpmsg16 = MapSL(*plParam);
             LPMSG lpmsg32 = HeapAlloc( GetProcessHeap(), 0, sizeof(*lpmsg32) );
 	
             STRUCT32_MSG16to32( lpmsg16, lpmsg32 );
@@ -81,7 +81,7 @@
 
 	case WH_JOURNALPLAYBACK:
         {
-            LPEVENTMSG16 lpem16 = PTR_SEG_TO_LIN(*plParam);
+            LPEVENTMSG16 lpem16 = MapSL(*plParam);
             LPEVENTMSG lpem32 = HeapAlloc( GetProcessHeap(), 0, sizeof(*lpem32) );
 
             lpem32->message = lpem16->message;
@@ -96,7 +96,7 @@
 
 	case WH_CALLWNDPROC:
 	{
-	    LPCWPSTRUCT16   lpcwp16 = PTR_SEG_TO_LIN(*plParam);
+	    LPCWPSTRUCT16   lpcwp16 = MapSL(*plParam);
 	    LPCWPSTRUCT   lpcwp32 = HeapAlloc( GetProcessHeap(), 0, sizeof(*lpcwp32) );
 	    
 	    lpcwp32->hwnd = lpcwp16->hwnd;
@@ -117,8 +117,8 @@
 	  {
 	    case HCBT_CREATEWND:
 	    {
-		LPCBT_CREATEWND16  lpcbtcw16 = PTR_SEG_TO_LIN(*plParam);
-		LPCREATESTRUCT16   lpcs16 = PTR_SEG_TO_LIN(lpcbtcw16->lpcs);
+		LPCBT_CREATEWND16  lpcbtcw16 = MapSL(*plParam);
+		LPCREATESTRUCT16   lpcs16 = MapSL((SEGPTR)lpcbtcw16->lpcs);
 		LPCBT_CREATEWNDA lpcbtcw32 = HeapAlloc( GetProcessHeap(), 0,
 							  sizeof(*lpcbtcw32) );
 		lpcbtcw32->lpcs = HeapAlloc( GetProcessHeap(), 0,
@@ -129,17 +129,17 @@
 
 		if (HIWORD(lpcs16->lpszName))
 		    lpcbtcw32->lpcs->lpszName = 
-			(bA) ? PTR_SEG_TO_LIN(lpcs16->lpszName)
+			(bA) ? MapSL(lpcs16->lpszName)
 			     : HEAP_strdupAtoW( GetProcessHeap(), 0,
-                                                PTR_SEG_TO_LIN(lpcs16->lpszName) );
+                                                MapSL(lpcs16->lpszName) );
 		else
 		    lpcbtcw32->lpcs->lpszName = (LPCSTR)lpcs16->lpszName;
 
 		if (HIWORD(lpcs16->lpszClass))
 		    lpcbtcw32->lpcs->lpszClass =
-			(bA) ? PTR_SEG_TO_LIN(lpcs16->lpszClass)
+			(bA) ? MapSL(lpcs16->lpszClass)
 			     : HEAP_strdupAtoW( GetProcessHeap(), 0,
-                                                PTR_SEG_TO_LIN(lpcs16->lpszClass) );
+                                                MapSL(lpcs16->lpszClass) );
 		else
 		    lpcbtcw32->lpcs->lpszClass = (LPCSTR)lpcs16->lpszClass;
 
@@ -150,7 +150,7 @@
 	    } 
 	    case HCBT_ACTIVATE:
             {
-                LPCBTACTIVATESTRUCT16 lpcas16 = PTR_SEG_TO_LIN(*plParam);
+                LPCBTACTIVATESTRUCT16 lpcas16 = MapSL(*plParam);
                 LPCBTACTIVATESTRUCT lpcas32 = HeapAlloc( GetProcessHeap(), 0,
                                                            sizeof(*lpcas32) );
                 lpcas32->fMouse = lpcas16->fMouse;
@@ -160,7 +160,7 @@
             }
             case HCBT_CLICKSKIPPED:
             {
-                LPMOUSEHOOKSTRUCT16 lpms16 = PTR_SEG_TO_LIN(*plParam);
+                LPMOUSEHOOKSTRUCT16 lpms16 = MapSL(*plParam);
                 LPMOUSEHOOKSTRUCT lpms32 = HeapAlloc( GetProcessHeap(), 0,
                                                         sizeof(*lpms32) );
 
@@ -177,7 +177,7 @@
             }
             case HCBT_MOVESIZE:
             {
-                LPRECT16 lprect16 = PTR_SEG_TO_LIN(*plParam);
+                LPRECT16 lprect16 = MapSL(*plParam);
                 LPRECT lprect32 = HeapAlloc( GetProcessHeap(), 0,
                                                sizeof(*lprect32) );
 
@@ -190,7 +190,7 @@
 
 	case WH_MOUSE:
         {
-            LPMOUSEHOOKSTRUCT16 lpms16 = PTR_SEG_TO_LIN(*plParam);
+            LPMOUSEHOOKSTRUCT16 lpms16 = MapSL(*plParam);
             LPMOUSEHOOKSTRUCT lpms32 = HeapAlloc( GetProcessHeap(), 0,
                                                     sizeof(*lpms32) );
 
@@ -207,7 +207,7 @@
 
 	case WH_DEBUG:
         {
-            LPDEBUGHOOKINFO16 lpdh16 = PTR_SEG_TO_LIN(*plParam);
+            LPDEBUGHOOKINFO16 lpdh16 = MapSL(*plParam);
             LPDEBUGHOOKINFO lpdh32 = HeapAlloc( GetProcessHeap(), 0,
                                                   sizeof(*lpdh32) );
 
@@ -286,7 +286,7 @@
 
 	case WH_GETMESSAGE:
         {
-	    LPMSG16 lpmsg16 = PTR_SEG_TO_LIN(lParamOrig);
+	    LPMSG16 lpmsg16 = MapSL(lParamOrig);
 	    STRUCT32_MSG32to16( (LPMSG)lParam, lpmsg16 );
 	    HeapFree( GetProcessHeap(), 0, (LPVOID)lParam );
 	    break;
@@ -304,7 +304,7 @@
 	      case HCBT_CREATEWND:
 	      {
 		LPCBT_CREATEWNDA lpcbtcw32 = (LPCBT_CREATEWNDA)lParam;
-		LPCBT_CREATEWND16  lpcbtcw16 = PTR_SEG_TO_LIN(lParamOrig);
+		LPCBT_CREATEWND16  lpcbtcw16 = MapSL(lParamOrig);
 
 		if( !bA )
 		{
@@ -583,12 +583,12 @@
       case WH_JOURNALPLAYBACK:
       case WH_MOUSE:
       case WH_DEBUG:
-	SEGPTR_FREE( PTR_SEG_TO_LIN(lParam) );
+	SEGPTR_FREE( MapSL(lParam) );
 	break;
 
       case WH_CALLWNDPROC:
       {
-          LPCWPSTRUCT16   lpcwp16 = (LPCWPSTRUCT16)PTR_SEG_TO_LIN(lParam);
+          LPCWPSTRUCT16   lpcwp16 = MapSL(lParam);
 	  LPCWPSTRUCT   lpcwp32 = (LPCWPSTRUCT)lParamOrig;
 	  MSGPARAM16	  mp16;
 
@@ -600,7 +600,7 @@
                                            lpcwp32->lParam, &mp16 );
           else WINPROC_UnmapMsg32WTo16( lpcwp32->hwnd,lpcwp32->message, lpcwp32->wParam,
                                         lpcwp32->lParam, &mp16 );
-	  SEGPTR_FREE( PTR_SEG_TO_LIN(lParam) );
+	  SEGPTR_FREE( MapSL(lParam) );
           break;
       }
 
@@ -608,8 +608,8 @@
       {
 	  LPMSG lpmsg32 = (LPMSG)lParamOrig;
 
-	  STRUCT32_MSG16to32( (LPMSG16)PTR_SEG_TO_LIN(lParam), lpmsg32 );
-	  SEGPTR_FREE( PTR_SEG_TO_LIN(lParam) );
+	  STRUCT32_MSG16to32( MapSL(lParam), lpmsg32 );
+	  SEGPTR_FREE( MapSL(lParam) );
 	  break;
       }
 
@@ -619,14 +619,14 @@
 	  case HCBT_CREATEWND:
 	  {
 	       LPCBT_CREATEWNDA lpcbtcw32 = (LPCBT_CREATEWNDA)(lParamOrig);
-               LPCBT_CREATEWND16 lpcbtcw16 = PTR_SEG_TO_LIN(lParam);
-               LPCREATESTRUCT16  lpcs16 = PTR_SEG_TO_LIN(lpcbtcw16->lpcs);
+               LPCBT_CREATEWND16 lpcbtcw16 = MapSL(lParam);
+               LPCREATESTRUCT16  lpcs16 = MapSL((SEGPTR)lpcbtcw16->lpcs);
 
                if (HIWORD(lpcs16->lpszName))
-                   SEGPTR_FREE( PTR_SEG_TO_LIN(lpcs16->lpszName) );
+                   SEGPTR_FREE( MapSL(lpcs16->lpszName) );
 
                if (HIWORD(lpcs16->lpszClass))
-                   SEGPTR_FREE( PTR_SEG_TO_LIN(lpcs16->lpszClass) );
+                   SEGPTR_FREE( MapSL(lpcs16->lpszClass) );
 
 	       lpcbtcw32->hwndInsertAfter = lpcbtcw16->hwndInsertAfter;
 
@@ -637,7 +637,7 @@
 	  case HCBT_CLICKSKIPPED:
 	  case HCBT_MOVESIZE:
 
-	       SEGPTR_FREE( PTR_SEG_TO_LIN(lParam) );
+	       SEGPTR_FREE( MapSL(lParam) );
 	       break;
 	}
 	break;
@@ -1396,7 +1396,7 @@
  */
 BOOL16 WINAPI CallMsgFilter32_16( SEGPTR msg16_32, INT16 code, BOOL16 wHaveParamHigh )
 {
-    MSG32_16 *lpmsg16_32 = (MSG32_16 *)PTR_SEG_TO_LIN(msg16_32);
+    MSG32_16 *lpmsg16_32 = MapSL(msg16_32);
 
     if (wHaveParamHigh == FALSE)
     {