hsc2hs can't detect values at compile-time if those are
declared as pointers: https://github.com/haskell/win32/issues/88

This patch is a huge hack: we encode absolute vaues from <windows.h>
diff --git a/Graphics/Win32/GDI/Types.hsc b/Graphics/Win32/GDI/Types.hsc
index c363530..8643cee 100644
--- a/Graphics/Win32/GDI/Types.hsc
+++ b/Graphics/Win32/GDI/Types.hsc
@@ -216,10 +216,10 @@ type   HWND       = HANDLE
 type MbHWND       = Maybe HWND
 
 #{enum HWND, castUINTPtrToPtr
- , hWND_BOTTOM    = (UINT_PTR)HWND_BOTTOM
- , hWND_NOTOPMOST = (UINT_PTR)HWND_NOTOPMOST
- , hWND_TOP       = (UINT_PTR)HWND_TOP
- , hWND_TOPMOST   = (UINT_PTR)HWND_TOPMOST
+ , hWND_BOTTOM    = (UINT_PTR)(INT_PTR)(1)
+ , hWND_NOTOPMOST = (UINT_PTR)(INT_PTR)(-2)
+ , hWND_TOP       = (UINT_PTR)(INT_PTR)(0)
+ , hWND_TOPMOST   = (UINT_PTR)(INT_PTR)(-1)
  }
 
 type   HMENU      = HANDLE
diff --git a/Graphics/Win32/Misc.hsc b/Graphics/Win32/Misc.hsc
index 1248b5a..c791a20 100644
--- a/Graphics/Win32/Misc.hsc
+++ b/Graphics/Win32/Misc.hsc
@@ -67,23 +67,23 @@ foreign import WINDOWS_CCONV unsafe "windows.h LoadIconW"
   c_LoadIcon :: HINSTANCE -> Icon -> IO HICON
 
 #{enum Cursor, castUINTPtrToPtr
- , iDC_ARROW        = (UINT_PTR)IDC_ARROW
- , iDC_IBEAM        = (UINT_PTR)IDC_IBEAM
- , iDC_WAIT         = (UINT_PTR)IDC_WAIT
- , iDC_CROSS        = (UINT_PTR)IDC_CROSS
- , iDC_UPARROW      = (UINT_PTR)IDC_UPARROW
- , iDC_SIZENWSE     = (UINT_PTR)IDC_SIZENWSE
- , iDC_SIZENESW     = (UINT_PTR)IDC_SIZENESW
- , iDC_SIZEWE       = (UINT_PTR)IDC_SIZEWE
- , iDC_SIZENS       = (UINT_PTR)IDC_SIZENS
+ , iDC_ARROW        = (UINT_PTR)(32512)
+ , iDC_IBEAM        = (UINT_PTR)(32513)
+ , iDC_WAIT         = (UINT_PTR)(32514)
+ , iDC_CROSS        = (UINT_PTR)(32515)
+ , iDC_UPARROW      = (UINT_PTR)(32516)
+ , iDC_SIZENWSE     = (UINT_PTR)(32642)
+ , iDC_SIZENESW     = (UINT_PTR)(32643)
+ , iDC_SIZEWE       = (UINT_PTR)(32644)
+ , iDC_SIZENS       = (UINT_PTR)(32645)
  }
 
 #{enum Icon, castUINTPtrToPtr
- , iDI_APPLICATION  = (UINT_PTR)IDI_APPLICATION
- , iDI_HAND         = (UINT_PTR)IDI_HAND
- , iDI_QUESTION     = (UINT_PTR)IDI_QUESTION
- , iDI_EXCLAMATION  = (UINT_PTR)IDI_EXCLAMATION
- , iDI_ASTERISK     = (UINT_PTR)IDI_ASTERISK
+ , iDI_APPLICATION  = (UINT_PTR)(32512)
+ , iDI_HAND         = (UINT_PTR)(32513)
+ , iDI_QUESTION     = (UINT_PTR)(32514)
+ , iDI_EXCLAMATION  = (UINT_PTR)(32515)
+ , iDI_ASTERISK     = (UINT_PTR)(32516)
  }
 
 ----------------------------------------------------------------
diff --git a/Graphics/Win32/Resource.hsc b/Graphics/Win32/Resource.hsc
index e8ad565..ca58fa2 100644
--- a/Graphics/Win32/Resource.hsc
+++ b/Graphics/Win32/Resource.hsc
@@ -61,23 +61,23 @@ foreign import WINDOWS_CCONV unsafe "windows.h EndUpdateResourceW"
 type ResourceType = LPCTSTR
 
 #{enum ResourceType, castUINTPtrToPtr
- , rT_ACCELERATOR  = (UINT_PTR)RT_ACCELERATOR // Accelerator table
- , rT_ANICURSOR    = (UINT_PTR)RT_ANICURSOR // Animated cursor
- , rT_ANIICON      = (UINT_PTR)RT_ANIICON   // Animated icon
- , rT_BITMAP       = (UINT_PTR)RT_BITMAP    // Bitmap resource
- , rT_CURSOR       = (UINT_PTR)RT_CURSOR    // Hardware-dependent cursor resource
- , rT_DIALOG       = (UINT_PTR)RT_DIALOG    // Dialog box
- , rT_FONT         = (UINT_PTR)RT_FONT      // Font resource
- , rT_FONTDIR      = (UINT_PTR)RT_FONTDIR    // Font directory resource
- , rT_GROUP_CURSOR = (UINT_PTR)RT_GROUP_CURSOR // Hardware-independent cursor resource
- , rT_GROUP_ICON   = (UINT_PTR)RT_GROUP_ICON // Hardware-independent icon resource
- , rT_HTML         = (UINT_PTR)RT_HTML      // HTML document
- , rT_ICON         = (UINT_PTR)RT_ICON      // Hardware-dependent icon resource
- , rT_MENU         = (UINT_PTR)RT_MENU      // Menu resource
- , rT_MESSAGETABLE = (UINT_PTR)RT_MESSAGETABLE // Message-table entry
- , rT_RCDATA       = (UINT_PTR)RT_RCDATA    // Application-defined resource (raw data)
- , rT_STRING       = (UINT_PTR)RT_STRING    // String-table entry
- , rT_VERSION      = (UINT_PTR)RT_VERSION   // Version resource
+ , rT_ACCELERATOR  = (UINT_PTR)(9)
+ , rT_ANICURSOR    = (UINT_PTR)(21)
+ , rT_ANIICON      = (UINT_PTR)(22)
+ , rT_BITMAP       = (UINT_PTR)(2)
+ , rT_CURSOR       = (UINT_PTR)(1)
+ , rT_DIALOG       = (UINT_PTR)(5)
+ , rT_FONT         = (UINT_PTR)(8)
+ , rT_FONTDIR      = (UINT_PTR)(7)
+ , rT_GROUP_CURSOR = (UINT_PTR)(1 + DIFFERENCE)
+ , rT_GROUP_ICON   = (UINT_PTR)(3 + DIFFERENCE)
+ , rT_HTML         = (UINT_PTR)(23)
+ , rT_ICON         = (UINT_PTR)(3)
+ , rT_MENU         = (UINT_PTR)(4)
+ , rT_MESSAGETABLE = (UINT_PTR)(11)
+ , rT_RCDATA       = (UINT_PTR)(10)
+ , rT_STRING       = (UINT_PTR)(6)
+ , rT_VERSION      = (UINT_PTR)(16)
  }
 
 findResource :: HMODULE -> String -> ResourceType -> IO HRSRC
diff --git a/Graphics/Win32/Window/PostMessage.hsc b/Graphics/Win32/Window/PostMessage.hsc
index 7f4c9f0..609f3f6 100644
--- a/Graphics/Win32/Window/PostMessage.hsc
+++ b/Graphics/Win32/Window/PostMessage.hsc
@@ -41,7 +41,7 @@ foreign import WINDOWS_CCONV "windows.h PostThreadMessageW"
   c_PostThreadMessage :: DWORD -> WindowMessage -> WPARAM -> LPARAM -> IO BOOL
 
 #{enum HWND, castUINTPtrToPtr
- , hWND_BROADCAST = (UINT_PTR)HWND_BROADCAST
+ , hWND_BROADCAST = (UINT_PTR)(0xffff)
  }
 
 foreign import WINDOWS_CCONV "windows.h InSendMessage"
diff --git a/System/Win32/Registry.hsc b/System/Win32/Registry.hsc
index afbb011..c7edfc1 100644
--- a/System/Win32/Registry.hsc
+++ b/System/Win32/Registry.hsc
@@ -80,11 +80,11 @@ import System.Win32.Types (castUINTPtrToPtr, failUnlessSuccessOr, maybePtr)
 #include <windows.h>
 
 #{enum HKEY, (unsafePerformIO . newForeignHANDLE . castUINTPtrToPtr)
- , hKEY_CLASSES_ROOT    = (UINT_PTR)HKEY_CLASSES_ROOT
- , hKEY_CURRENT_CONFIG  = (UINT_PTR)HKEY_CURRENT_CONFIG
- , hKEY_CURRENT_USER    = (UINT_PTR)HKEY_CURRENT_USER
- , hKEY_LOCAL_MACHINE   = (UINT_PTR)HKEY_LOCAL_MACHINE
- , hKEY_USERS           = (UINT_PTR)HKEY_USERS
+ , hKEY_CLASSES_ROOT    = (UINT_PTR)(0x80000000)
+ , hKEY_CURRENT_CONFIG  = (UINT_PTR)(0x80000005)
+ , hKEY_CURRENT_USER    = (UINT_PTR)(0x80000001)
+ , hKEY_LOCAL_MACHINE   = (UINT_PTR)(0x80000002)
+ , hKEY_USERS           = (UINT_PTR)(0x80000003)
  }
 -- , PKEYERFORMANCE_DATA  NT only
 -- , HKEY_DYN_DATA     95/98 only