// check if to use precompiled headers: do it for most Windows compilers unless
// explicitly disabled by defining NOPCH
-#if ((defined(__BORLANDC__) || defined(__VISUALC__) || defined(__WATCOMC__)) && defined(__WXMSW__)) || defined(__VISAGECPP__)
+#if ( defined(__WXMSW__) && \
+ ( defined(__BORLANDC__) || \
+ defined(__VISUALC__) || \
+ defined(__DIGITALMARS__) || \
+ defined(__WATCOMC__) ) ) || \
+ defined(__VISAGECPP__) || \
+ defined(__MWERKS__)
+
#if !defined(NOPCH)
#define WX_PRECOMP
#endif
#ifdef WX_PRECOMP
+// include <wx/wxchar.h> first to ensure that UNICODE macro is correctly set
+// _before_ including <windows.h>
+#include "wx/wxchar.h"
+
// include standard Windows headers
-#if defined(__WXMSW__) && !wxUSE_MFC
- #include <windows.h>
- #include "wx/msw/winundef.h"
+#if defined(__WXMSW__)
+ #include "wx/msw/wrapwin.h"
#endif
// include the most common wx headers