+// ---------------------------------------------------------------------------
+// constants which might miss from some compilers' headers
+// ---------------------------------------------------------------------------
+
+#if !defined(__WIN32__) && !defined(WS_EX_CLIENTEDGE)
+ #define WS_EX_CLIENTEDGE 0
+#endif
+
+#if defined(__WIN32__) && !defined(WS_EX_CLIENTEDGE)
+ #define WS_EX_CLIENTEDGE 0x00000200L
+#endif
+
+#ifndef ENDSESSION_LOGOFF
+ #define ENDSESSION_LOGOFF 0x80000000
+#endif
+
+// ---------------------------------------------------------------------------
+// debug messages
+// ---------------------------------------------------------------------------
+#if defined(__WIN95__) && defined(__WXDEBUG__) && wxUSE_DBWIN32
+
+ #ifndef __TWIN32__
+ #ifdef OutputDebugString
+ #undef OutputDebugString
+ #endif
+
+ #define OutputDebugString OutputDebugStringW95
+ #endif // __TWIN32__
+
+ extern void OutputDebugStringW95(const wxChar*, ...);
+#endif // USE_DBWIN32
+
+// ---------------------------------------------------------------------------
+// macros to make casting between WXFOO and FOO a bit easier: the GetFoo()
+// returns Foo cast to the Windows type for oruselves, while GetFoosFoo() takes
+// an argument which should be a pointer to wxFoo (is this really clear?)
+// ---------------------------------------------------------------------------
+
+#define GetHwnd() ((HWND)GetHWND())
+#define GetWinHwnd(win) ((HWND)((win)->GetHWND()))
+
+#define GetHdc() ((HDC)GetHDC())
+
+#define GetHicon() ((HICON)GetHICON())
+#define GetIconHicon(icon) ((HICON)(icon).GetHICON())
+
+#define GetHaccel() ((HACCEL)GetHACCEL())
+#define GetTableHaccel(table) ((HACCEL)((table).GetHACCEL()))
+
+// ---------------------------------------------------------------------------
+// global data
+// ---------------------------------------------------------------------------