diff --git a/include/winuser.h b/include/winuser.h
index e151409..f6da8b0 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -18,19 +18,23 @@
 #define HCF_HOTKEYSOUND     0x00000010
 #define HCF_INDICATOR       0x00000020
 #define HCF_HOTKEYAVAILABLE 0x00000040
-typedef struct tagHIGHCONTRASTA
+
+typedef struct tagHIGHCONTRAST32A
 {
     UINT32  cbSize;
     DWORD   dwFlags;
     LPSTR   lpszDefaultScheme;
-}   HIGHCONTRASTA, *LPHIGHCONTRASTA;
+} HIGHCONTRAST32A, *LPHIGHCONTRAST32A;
 
-typedef struct tagHIGHCONTRASTW
+typedef struct tagHIGHCONTRAST32W
 {
     UINT32  cbSize;
     DWORD   dwFlags;
     LPWSTR  lpszDefaultScheme;
-}   HIGHCONTRASTW, *LPHIGHCONTRASTW;
+} HIGHCONTRAST32W, *LPHIGHCONTRAST32W;
+
+DECL_WINELIB_TYPE_AW(HIGHCONTRAST)
+DECL_WINELIB_TYPE_AW(LPHIGHCONTRAST)
 
 typedef struct
 {
@@ -52,9 +56,10 @@
     HWND32  hwnd;
     UINT32  wHitTestCode;
     DWORD   dwExtraInfo;
-} MOUSEHOOKSTRUCT32, *LPMOUSEHOOKSTRUCT32;
+} MOUSEHOOKSTRUCT32, *PMOUSEHOOKSTRUCT32, *LPMOUSEHOOKSTRUCT32;
 
 DECL_WINELIB_TYPE(MOUSEHOOKSTRUCT)
+DECL_WINELIB_TYPE(PMOUSEHOOKSTRUCT)
 DECL_WINELIB_TYPE(LPMOUSEHOOKSTRUCT)
 
     /* Hardware hook structure */
@@ -797,9 +802,11 @@
     POINT32   ptMaxPosition;
     POINT32   ptMinTrackSize;
     POINT32   ptMaxTrackSize;
-} MINMAXINFO32;
+} MINMAXINFO32, *PMINMAXINFO32, *LPMINMAXINFO32;
 
 DECL_WINELIB_TYPE(MINMAXINFO)
+DECL_WINELIB_TYPE(PMINMAXINFO)
+DECL_WINELIB_TYPE(LPMINMAXINFO)
 
   /* RedrawWindow() flags */
 #define RDW_INVALIDATE       0x0001
@@ -831,9 +838,10 @@
     INT32   cx;
     INT32   cy;
     UINT32  flags;
-} WINDOWPOS32, *LPWINDOWPOS32;
+} WINDOWPOS32, *PWINDOWPOS32, *LPWINDOWPOS32;
 
 DECL_WINELIB_TYPE(WINDOWPOS)
+DECL_WINELIB_TYPE(PWINDOWPOS)
 DECL_WINELIB_TYPE(LPWINDOWPOS)
 
   /* WM_MOUSEACTIVATE return values */
diff --git a/misc/main.c b/misc/main.c
index 0b61c3d..6ba14eb 100644
--- a/misc/main.c
+++ b/misc/main.c
@@ -1012,11 +1012,11 @@
 
         case SPI_GETHIGHCONTRAST:
         {
-                LPHIGHCONTRASTA lpHighContrastA = (LPHIGHCONTRASTA)lpvParam;
+                LPHIGHCONTRAST32A lpHighContrastA = (LPHIGHCONTRAST32A)lpvParam;
 
                 FIXME(system,"SPI_GETHIGHCONTRAST not fully implemented\n");
 
-                if ( lpHighContrastA->cbSize == sizeof( HIGHCONTRASTA ) )
+                if ( lpHighContrastA->cbSize == sizeof( HIGHCONTRAST32A ) )
                 {
                         /* Indicate that there is no high contrast available */
                         lpHighContrastA->dwFlags = 0;
@@ -1295,11 +1295,11 @@
 
     case SPI_GETHIGHCONTRAST:
     {
-       LPHIGHCONTRASTW lpHighContrastW = (LPHIGHCONTRASTW)lpvParam;
+       LPHIGHCONTRAST32W lpHighContrastW = (LPHIGHCONTRAST32W)lpvParam;
 
        FIXME(system,"SPI_GETHIGHCONTRAST not fully implemented\n");
 
-       if ( lpHighContrastW->cbSize == sizeof( HIGHCONTRASTW ) )
+       if ( lpHighContrastW->cbSize == sizeof( HIGHCONTRAST32W ) )
        {
           /* Indicate that there is no high contrast available */
           lpHighContrastW->dwFlags = 0;
