]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/private.h
do #undef CreateDialog() under CE, what was the reason for not doing it?
[wxWidgets.git] / include / wx / msw / private.h
index 28838451e1d306d0e4035426df5b8604f824aa8b..528a5ba437f8577245d88bed8e8e7825de837311 100644 (file)
 
 #include "wx/msw/wrapwin.h"
 
-
 #if defined (__WXWINCE__)
     #include <wingdi.h>     // RGB, COLORREF
+    #define ERRFALSE(x)
     #include <winuser.h>    // Global Namespaces ::GetKeyState, ::GetWindowRect
+    #include "wx/msw/winundef.h"
 #endif
 
 
@@ -90,6 +91,8 @@ WXDLLEXPORT_DATA(extern HFONT) wxSTATUS_LINE_FONT;
 
 #define CASTWNDPROC (WndProcCast)
 
+
+
 // ---------------------------------------------------------------------------
 // some stuff for old Windows versions (FIXME: what does it do here??)
 // ---------------------------------------------------------------------------
@@ -296,14 +299,11 @@ inline bool wxIsCtrlDown()
 inline RECT wxGetWindowRect(HWND hwnd)
 {
     RECT rect;
-#ifdef __WIN16__
-    ::GetWindowRect(hwnd, &rect);
-#else // Win32
+
     if ( !::GetWindowRect(hwnd, &rect) )
     {
         wxLogLastError(_T("GetWindowRect"));
     }
-#endif // Win16/32
 
     return rect;
 }
@@ -311,14 +311,11 @@ inline RECT wxGetWindowRect(HWND hwnd)
 inline RECT wxGetClientRect(HWND hwnd)
 {
     RECT rect;
-#ifdef __WIN16__
-    ::GetClientRect(hwnd, &rect);
-#else // Win32
+
     if ( !::GetClientRect(hwnd, &rect) )
     {
         wxLogLastError(_T("GetClientRect"));
     }
-#endif // Win16/32
 
     return rect;
 }
@@ -458,6 +455,9 @@ private:
 #define GetHaccel()             ((HACCEL)GetHACCEL())
 #define GetHaccelOf(table)      ((HACCEL)((table).GetHACCEL()))
 
+#define GetHbrush()             ((HPEN)GetResourceHandle())
+#define GetHbrushOf(brush)      ((HPEN)(brush).GetResourceHandle())
+
 #define GetHmenu()              ((HMENU)GetHMenu())
 #define GetHmenuOf(menu)        ((HMENU)menu->GetHMenu())
 
@@ -470,6 +470,9 @@ private:
 #define GetHpalette()           ((HPALETTE)GetHPALETTE())
 #define GetHpaletteOf(pal)      ((HPALETTE)(pal).GetHPALETTE())
 
+#define GetHpen()               ((HPEN)GetResourceHandle())
+#define GetHpenOf(pen)          ((HPEN)(pen).GetResourceHandle())
+
 #define GetHrgn()               ((HRGN)GetHRGN())
 #define GetHrgnOf(rgn)          ((HRGN)(rgn).GetHRGN())
 
@@ -555,6 +558,7 @@ WXDLLEXPORT void wxDrawLine(HDC hdc, int x1, int y1, int x2, int y2);
 #ifdef __WXWINCE__
 #include <winbase.h>
 
+#if _WIN32_WCE <= 211
 #define GlobalAlloc LocalAlloc
 #define GlobalFree LocalFree
 #define GlobalLock(mem) mem
@@ -564,6 +568,7 @@ WXDLLEXPORT void wxDrawLine(HDC hdc, int x1, int y1, int x2, int y2);
 #define GHND LPTR
 #define GMEM_MOVEABLE 0
 #define GMEM_SHARE 0
+#endif
 
 #if 0
 
@@ -600,6 +605,57 @@ LocalFree (
 
 #endif
     // __WXWINCE__
+
+// ----------------------------------------------------------------------------
+// 32/64 bit helpers
+// ----------------------------------------------------------------------------
+
+#ifdef __WIN64__
+
+inline void *wxGetWindowProc(HWND hwnd)
+{
+    return (void *)::GetWindowLongPtr(hwnd, GWLP_WNDPROC);
+}
+
+inline void *wxGetWindowUserData(HWND hwnd)
+{
+    return (void *)::GetWindowLongPtr(hwnd, GWLP_USERDATA);
+}
+
+inline WNDPROC wxSetWindowProc(HWND hwnd, WNDPROC func)
+{
+    return (WNDPROC)::SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)func);
+}
+
+inline void *wxSetWindowUserData(HWND hwnd, void *data)
+{
+    return (void *)::SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)data);
+}
+
+#else // __WIN32__
+
+inline void *wxGetWindowProc(HWND hwnd)
+{
+    return (void *)::GetWindowLong(hwnd, GWL_WNDPROC);
+}
+
+inline void *wxGetWindowUserData(HWND hwnd)
+{
+    return (void *)::GetWindowLong(hwnd, GWL_USERDATA);
+}
+
+inline WNDPROC wxSetWindowProc(HWND hwnd, WNDPROC func)
+{
+    return (WNDPROC)::SetWindowLong(hwnd, GWL_WNDPROC, (LONG)func);
+}
+
+inline void *wxSetWindowUserData(HWND hwnd, void *data)
+{
+    return (void *)::SetWindowLong(hwnd, GWL_USERDATA, (LONG)data);
+}
+
+#endif // __WIN64__/__WIN32__
+
 #endif // wxUSE_GUI
 
 #endif