Hi,

As promised, here are the patches to make wxWinCE compile using
arm-wince-minw32ce.

The file wxWinCE_cegcc_fixes.patch needs to be applied to the CeGCC
tree. The other two to the latest SVN snapshot of wxWidgets (trunk).
After applying you need to reinstall the 'mingw' and 'w32api' parts of
CeGCC/arm-wince-mingw32ce. For wxWidgets you need to make sure you
have Bakefile installed and then you need to run './autogen.sh' and
'make -f build/autogen.mk' from the wxWidgets source tree.

After that you should be able to run
'./configure --prefix=/opt/wxWinCE --host=arm-wince-mingw32ce' and
you're ready to go. If wxWinCE has compiled successfully you can run
'make samples' to compile (most of) the wxWinCE samples.

To run the sample applications on your PDA, you need to copy the file
mingwm10.dll, the .dll's found in wxWidgets/lib and the samples you
want to test to your PDA.

Some points of attention:

CeGCC patch:
- The declaration of 'gettimeofday' was #ifndef'ed out in sys/time.h
  I removed this #ifndef as this function is provided by mingwm10.dll
- There are some #define's which have a value of 0x0. I don't know
  how to retrieve these values legally. Can somebody else look at this? 

wxWinCE patch:
- A macro which translates a system() call to a ShellExecuteEx()
  call needs to be added (include/wx/wxcrtbase.h)
- The wxCRT_GetenvA/wxCRT_GetenvW macro's cause (innocent)
  compiler warnings (include/wx/wxcrtbase.h)
- WinCE doesn't have the DrawState() function. A alternative for
  this needs to be implemented (src/msw/ownerdrw.cpp)
- Some wxWidgets features are disabled. These are wxConfig, wxIntl,
  wxMDI, wxHTML, wxXRC, wxAUI, wxMimeType and wxRichText.
- Window placement is borked up; In most samples half of the window
  isn't visible because the window is bigger than the screen of the PDA.
  I don't know if this is a known bug in wxWinCE, but it definately
  needs more investigating.

Enjoy!

Erik van Pienbroek
Index: configure.in
===================================================================
--- configure.in	(revision 49149)
+++ configure.in	(working copy)
@@ -94,7 +94,7 @@
 dnl the list of all available toolkits
 dnl
 dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
-ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11 DFB"
+ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11 DFB WINCE"
 
 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
 dnl     which are either yes or no
@@ -108,6 +108,7 @@
 DEFAULT_wxUSE_PM=0
 DEFAULT_wxUSE_X11=0
 DEFAULT_wxUSE_DFB=0
+DEFAULT_wxUSE_WINCE=0
 
 dnl these are the values which are really default for the given platform -
 dnl they're not cached and are only used if no --with-toolkit was given *and*
@@ -122,6 +123,7 @@
 DEFAULT_DEFAULT_wxUSE_PM=0
 DEFAULT_DEFAULT_wxUSE_X11=0
 DEFAULT_DEFAULT_wxUSE_DFB=0
+DEFAULT_DEFAULT_wxUSE_WINCE=0
 
 PROGRAM_EXT=
 SO_SUFFIX=so
@@ -262,6 +264,12 @@
     AC_DEFINE(__UNIXWARE__)
   ;;
 
+  *-*-mingw32ce*)
+    SO_SUFFIX=dll
+    PROGRAM_EXT=".exe"
+    DEFAULT_DEFAULT_wxUSE_WINCE=1
+  ;;
+
   *-*-cygwin* | *-*-mingw32* )
     dnl MBN: some of the defines have been moved after toolkit detection
     dnl      because for wxMotif/wxGTK/wxX11 to build on Cygwin
@@ -481,6 +489,7 @@
 AC_ARG_WITH(directfb,      [  --with-directfb         use DirectFB], [wxUSE_DFB="$withval" wxUSE_UNIVERSAL="yes" CACHE_DFB=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(microwin,      [  --with-microwin         use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(x11,           [  --with-x11              use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(wince,         [  --with-wince            use WinCE], [wxUSE_WINCE="$withval" CACHE_WINCE=1 TOOLKIT_GIVEN=1])
 WX_ARG_ENABLE(nanox,       [  --enable-nanox          use NanoX], wxUSE_NANOX)
 
 AC_ARG_ENABLE(gtk2,        [  --disable-gtk2          use GTK+ 1.2 instead of 2.0], [wxUSE_GTK2="$enableval"])
@@ -1010,7 +1019,8 @@
     dnl this? what about using ALL_TOOLKITS? TODO)
     NUM_TOOLKITS=`expr ${wxUSE_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_MAC:-0} \
                   + ${wxUSE_MGL:-0} + ${wxUSE_DFB:-0} + ${wxUSE_MICROWIN:-0} \
-                  + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}`
+                  + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0} \
+                  + ${wxUSE_WINCE:-0}` 
 
     dnl Allow wxUSE_PM only for OS/2 with EMX.
     case "${host}" in
@@ -2655,16 +2665,22 @@
 dnl are we building for a win32 target environment?
 dnl If so, setup common stuff needed for both GUI and Base libs.
 if test "$USE_WIN32" = 1 ; then
-    AC_CHECK_HEADERS(w32api.h,,, [ ])
-    AC_CHECK_HEADER(windows.h,,
-    [
-        AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
-    ],
-    [ ])
+    if test "$wxUSE_WINCE" != 1 ; then
+        AC_CHECK_HEADER(w32api.h,,, [ ])
+        AC_CHECK_HEADER(windows.h,,
+        [
+            AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
+        ],
+        [ ])
+    fi
 
     dnl --- FIXME: This is still a somewhat random list of libs,
     dnl ---        some of them should probably be included conditionally.
-    LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32"
+    if test "$wxUSE_WINCE" = 1 ; then
+        LIBS="$LIBS -lcommctrl -lcommdlg -lws2 -lceshell -laygshell -lstdc++"
+    else
+        LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32"
+    fi
 
     if test "$wxUSE_ACCESSIBILITY" = "yes" ; then
         LIBS="$LIBS -loleacc"
@@ -2738,6 +2754,12 @@
         esac
     fi
 
+    if test "$wxUSE_WINCE" = 1 ; then
+        TOOLKIT=WINCE
+        GUIDIST=WINCE_DIST
+        WXCONFIG_CPPFLAGS="${WXCONFIG_CPPFLAGS} -D_WIN32_WCE=0x300 -D__MSVCRT__"	// -D__MSVCRT__ kan mogelijk weg
+    fi
+
     if test "$wxUSE_GTK" = 1; then
         dnl GTK+ test program must be compiled with C compiler
         AC_MSG_CHECKING([for GTK+ version])
@@ -3785,6 +3807,10 @@
 
     dnl test for GCC's visibility support (sets CFLAGS_VISIBILITY, which is
     dnl assigned to CFLAGS and CXXFLAGS below)
+    if test "$wxUSE_WINCE" = 1 ; then
+        wxUSE_VISIBILITY="no"
+    fi
+
     if test "$wxUSE_VISIBILITY" != "no"; then
         WX_VISIBILITY
     fi
@@ -4661,7 +4687,7 @@
 dnl ---------------------------------------------------------------------------
 
 dnl under MSW (except mingw32) we always have thread support
-if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
+if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1 -a "$TOOLKIT" != "WINCE" ; then
 
     dnl the code below:
     dnl
@@ -5243,7 +5269,7 @@
 dnl ------------------------------------------------------------------------
 
 dnl under MSW we always have LoadLibrary/GetProcAddress
-if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
+if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1 -a "$TOOLKIT" != "WINCE" ; then
 
     HAVE_DL_FUNCS=0
     HAVE_SHL_FUNCS=0
@@ -5635,6 +5661,10 @@
   fi
 fi
 
+if test "$wxUSE_WINCE" = 1 ; then
+  wxUSE_CONFIG="no"
+fi
+
 if test "$wxUSE_CONFIG" = "yes" ; then
   if test "$wxUSE_TEXTFILE" != "yes"; then
     AC_MSG_WARN(wxConfig requires wxTextFile... disabled)
@@ -5645,6 +5675,10 @@
   fi
 fi
 
+if test "$wxUSE_WINCE" = 1 ; then
+  wxUSE_INTL="no"
+fi
+
 if test "$wxUSE_INTL" = "yes" ; then
   if test "$wxUSE_FILE" != "yes"; then
     AC_MSG_WARN(I18n code requires wxFile... disabled)
@@ -5931,7 +5965,7 @@
 
 if test "$wxUSE_SOCKETS" = "yes"; then
     dnl under MSW we always have sockets
-    if test "$TOOLKIT" != "MSW"; then
+    if test "$TOOLKIT" != "MSW" -a "$TOOLKIT" != "WINCE" ; then
         dnl under Solaris and OS/2, socket functions live in -lsocket
         AC_CHECK_FUNC(socket,,
             [
@@ -5953,7 +5987,7 @@
     dnl this test may be appropriate if building under cygwin
     dnl right now I'm assuming it also uses the winsock stuff
     dnl like mingw does..  -- RL
-    if test "$TOOLKIT" != "MSW"; then
+    if test "$TOOLKIT" != "MSW" -a "$TOOLKIT" != "WINCE" ; then
         dnl determine the type of third argument for getsockname
         dnl This test needs to be done in C++ mode since gsocket.cpp now
         dnl is C++ code and pointer cast that are possible even without
@@ -6226,6 +6260,11 @@
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
 fi
 
+if test "$wxUSE_WINCE" = 1 ; then
+    wxUSE_MDI="no"
+    wxUSE_MDI_ARCHITECTURE="no"
+fi
+
 if test "$wxUSE_MDI" = "yes"; then
     AC_DEFINE(wxUSE_MDI)
 
@@ -6314,7 +6353,12 @@
                            [AC_MSG_RESULT(no)],
                            [AC_MSG_RESULT(yes)
                             WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"])
-            LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
+            if test "$wxUSE_WINCE" = 1 ; then
+                LIBS=" -loleaut32 -lole32 -luuid$LIBS"
+            else
+                LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
+            fi
+
             if test "$wxUSE_OLE" = "yes" ; then
                 AC_DEFINE(wxUSE_OLE)
                 AC_DEFINE(wxUSE_OLE_AUTOMATION)
@@ -6807,6 +6851,10 @@
 fi
 
 USE_HTML=0
+if test "$wxUSE_WINCE" = 1 ; then
+    wxUSE_HTML="no"
+fi
+
 if test "$wxUSE_HTML" = "yes"; then
     AC_DEFINE(wxUSE_HTML)
     USE_HTML=1
@@ -6841,6 +6889,10 @@
 fi
 
 USE_XRC=0
+if test "$wxUSE_WINCE" = 1 ; then
+    wxUSE_XRC="no"
+fi
+
 if test "$wxUSE_XRC" = "yes"; then
     if test "$wxUSE_XML" != "yes"; then
         AC_MSG_WARN([XML library not built, XRC resources disabled])
@@ -6853,6 +6905,10 @@
 fi
 
 USE_AUI=0
+if test "$wxUSE_WINCE" = 1 ; then
+   wxUSE_AUI="no"
+fi
+
 if test "$wxUSE_AUI" = "yes"; then
    AC_DEFINE(wxUSE_AUI)
    USE_AUI=1
@@ -6875,6 +6931,10 @@
     AC_DEFINE(wxUSE_METAFILE)
 fi
 
+if test "$wxUSE_WINCE" = 1 ; then
+    wxUSE_MIMETYPE="no"
+fi
+
 if test "$wxUSE_MIMETYPE" = "yes"; then
     AC_DEFINE(wxUSE_MIMETYPE)
 fi
@@ -6912,6 +6972,10 @@
   LIBS=" -lunicows $LIBS"
 fi
 
+if test "$wxUSE_WINCE" = 1 ; then
+    wxUSE_RICHTEXT="no"
+fi
+
 USE_RICHTEXT=0
 if test "$wxUSE_RICHTEXT" = "yes"; then
     AC_DEFINE(wxUSE_RICHTEXT)
@@ -7033,6 +7097,18 @@
 dnl wxMSW-only options
 dnl ---------------------------------------------------------------------------
 
+if test "$wxUSE_WINCE" = 1 ; then
+
+if test "$wxUSE_DIB" = "yes"; then
+    AC_DEFINE(wxUSE_WXDIB)
+fi
+
+if test "$wxUSE_REGKEY" = "yes"; then
+    AC_DEFINE(wxUSE_REGKEY)
+fi
+
+fi
+
 if test "$wxUSE_MSW" = 1 ; then
 
     if test "$wxUSE_DC_CACHEING" = "yes"; then
Index: build/bakefiles/build_cfg.bkl
===================================================================
--- build/bakefiles/build_cfg.bkl	(revision 49149)
+++ build/bakefiles/build_cfg.bkl	(working copy)
@@ -9,7 +9,7 @@
     -->
 
     <if cond="FORMAT not in ['autoconf','msvc6prj','msevc4prj','msvs2005prj'] and
-              TOOLKIT in ['PM','MSW','MGL','MOTIF']">
+              TOOLKIT in ['PM','MSW','MGL','MOTIF','WINCE']">
 
         <set var="BUILD_CFG_FILE" make_var="1">
             $(SETUPHDIR)$(DIRSEP)build.cfg
Index: build/bakefiles/files.bkl
===================================================================
--- build/bakefiles/files.bkl   (revision 49149)
+++ build/bakefiles/files.bkl   (working copy)
@@ -119,6 +119,10 @@
 <set var="BASE_WINCE_SRC" hints="files">
     <if cond="TOOLKIT=='WINCE'">src/msw/wince/time.cpp</if>
 </set>
+<set var="BASE_WINCE_SRC" hints="files">
+    src/msw/wince/filefnwce.cpp
+    src/msw/wince/crt.cpp
+</set>
 <set var="BASE_WIN32_HDR" hints="files">
     wx/msw/apptrait.h
     wx/msw/apptbase.h
@@ -1788,9 +1792,7 @@
     src/generic/fontdlgg.cpp
     src/msw/wince/checklst.cpp
     src/msw/wince/choicece.cpp
-    src/msw/wince/crt.cpp
     src/msw/wince/filedlgwce.cpp
-    src/msw/wince/filefnwce.cpp
     src/msw/wince/helpwce.cpp
     src/msw/wince/menuce.cpp
     src/msw/wince/tbarwce.cpp
Index: src/zlib/zutil.h
===================================================================
--- src/zlib/zutil.h    (revision 49149)
+++ src/zlib/zutil.h    (working copy)
@@ -151,7 +151,7 @@
 #  define fdopen(fd,mode) NULL /* No fdopen() */
 #endif
 
-#if (defined(_MSC_VER) && (_MSC_VER > 600))
+#if (defined(_MSC_VER) && (_MSC_VER > 600)) || defined(_WIN32_WCE)
 #  if defined(_WIN32_WCE)
 #    define fdopen(fd,mode) NULL /* No fdopen() */
 #    ifndef _PTRDIFF_T_DEFINED
Index: src/jpeg/jconfig.vc
===================================================================
--- src/jpeg/jconfig.vc (revision 49149)
+++ src/jpeg/jconfig.vc (working copy)
@@ -43,3 +43,8 @@
 #undef PROGRESS_REPORT         /* optional */
 
 #endif /* JPEG_CJPEG_DJPEG */
+
+#ifdef _WIN32_WCE
+#define NO_GETENV 1
+#endif
+
Index: src/common/appbase.cpp
===================================================================
--- src/common/appbase.cpp      (revision 49149)
+++ src/common/appbase.cpp      (working copy)
@@ -54,7 +54,9 @@
   #include  <signal.h>      // for SIGTRAP used by wxTrap()
 #endif  //Win/Unix
 
-#include <locale.h>
+#ifndef __WXWINCE__
+    #include <locale.h>
+#endif
 
 #if wxUSE_FONTMAP
     #include "wx/fontmap.h"
Index: src/common/filename.cpp
===================================================================
--- src/common/filename.cpp     (revision 49149)
+++ src/common/filename.cpp     (working copy)
@@ -90,6 +90,7 @@
 
 #ifdef __WXWINCE__
 #include "wx/msw/private.h"
+#include <fcntl.h>
 #endif
 
 #if defined(__WXMAC__)
Index: src/common/wxcrt.cpp
===================================================================
--- src/common/wxcrt.cpp	(revision 49149)
+++ src/common/wxcrt.cpp	(working copy)
@@ -1243,7 +1255,7 @@
 // wxScanf() and friends
 // ----------------------------------------------------------------------------
 
-#ifndef __VISUALC__
+#if !defined(__VISUALC__) && !defined(_WIN32_WCE)
 int wxVsscanf(const char *str, const char *format, va_list ap)
     { return wxCRT_VsscanfA(str, format, ap); }
 int wxVsscanf(const wchar_t *str, const wchar_t *format, va_list ap)
Index: src/common/filefn.cpp
===================================================================
--- src/common/filefn.cpp       (revision 49149)
+++ src/common/filefn.cpp       (working copy)
@@ -50,7 +50,7 @@
 #include <stdlib.h>
 #include <string.h>
 #if !wxONLY_WATCOM_EARLIER_THAN(1,4)
-    #if !(defined(_MSC_VER) && (_MSC_VER > 800))
+    #if !(defined(_MSC_VER) && (_MSC_VER > 800)) && !defined(__WXWINCE__)
         #include <errno.h>
     #endif
 #endif
Index: src/common/datetime.cpp
===================================================================
--- src/common/datetime.cpp     (revision 49149)
+++ src/common/datetime.cpp     (working copy)
@@ -148,7 +148,7 @@
 #if !defined(WX_TIMEZONE) && !defined(WX_GMTOFF_IN_TM)
     #if defined(__WXPALMOS__)
         #define WX_GMTOFF_IN_TM
-    #elif defined(__BORLANDC__) || defined(__MINGW32__) || defined(__VISAGECPP__)
+    #elif defined(__BORLANDC__) || (defined(__MINGW32__) && !defined(__WXWINCE__)) || defined(__VISAGECPP__)
         #define WX_TIMEZONE _timezone
     #elif defined(__MWERKS__)
         long wxmw_timezone = 28800;
@@ -170,7 +170,7 @@
         #define WX_TIMEZONE wxGetTimeZone()
     #elif defined(__DARWIN__)
         #define WX_GMTOFF_IN_TM
-    #elif defined(__WXWINCE__) && defined(__VISUALC8__)
+    #elif defined(__WXWINCE__)
         // _timezone is not present in dynamic run-time library
         #if 0
         // Solution (1): use the function equivalent of _timezone
Index: src/common/utilscmn.cpp
===================================================================
--- src/common/utilscmn.cpp     (revision 49149)
+++ src/common/utilscmn.cpp     (working copy)
@@ -63,7 +63,7 @@
 #include <string.h>
 
 #if !wxONLY_WATCOM_EARLIER_THAN(1,4)
-    #if !(defined(_MSC_VER) && (_MSC_VER > 800))
+    #if !(defined(_MSC_VER) && (_MSC_VER > 800)) && !defined(__WXWINCE__)
         #include <errno.h>
     #endif
 #endif
Index: src/msw/dcprint.cpp
===================================================================
--- src/msw/dcprint.cpp	(revision 49149)
+++ src/msw/dcprint.cpp	(working copy)
@@ -324,14 +324,14 @@
 
     HGLOBAL hDevMode = (HGLOBAL)(DWORD) data->GetDevMode();
 
-    DEVMODE *lpDevMode = hDevMode ? (DEVMODE *)::GlobalLock(hDevMode) : NULL;
+    DEVMODE *lpDevMode = hDevMode ? (DEVMODE *)GlobalLock(hDevMode) : NULL;
 
     HDC hDC = ::CreateDC(NULL, deviceName.wx_str(), NULL, lpDevMode);
     if ( !hDC )
         wxLogLastError(_T("CreateDC(printer)"));
 
     if ( lpDevMode )
-        ::GlobalUnlock(hDevMode);
+        GlobalUnlock(hDevMode);
 
     return (WXHDC) hDC;
 #endif // PostScript/Windows printing
Index: src/msw/window.cpp
===================================================================
--- src/msw/window.cpp	(revision 49149)
+++ src/msw/window.cpp	(working copy)
@@ -133,7 +133,7 @@
     #define ETS_ASSIST          7
 #endif
 
-#if defined(TME_LEAVE) && defined(WM_MOUSELEAVE) && wxUSE_DYNLIB_CLASS
+#if defined(TME_LEAVE) && defined(WM_MOUSELEAVE) && wxUSE_DYNLIB_CLASS && !defined(__WXWINCE__)
     #define HAVE_TRACKMOUSEEVENT
 #endif // everything needed for TrackMouseEvent()
 
@@ -2105,7 +2105,7 @@
     }
 #endif // __WXWINCE__/!__WXWINCE__
 
-    ::TrackPopupMenu(hMenu, flags, point.x, point.y, 0, hWnd, NULL);
+    TrackPopupMenu(hMenu, flags, point.x, point.y, 0, hWnd, NULL);
 
     // we need to do it right now as otherwise the events are never going to be
     // sent to wxCurrentPopupMenu from HandleCommand()
Index: src/msw/toplevel.cpp
===================================================================
--- src/msw/toplevel.cpp        (revision 49149)
+++ src/msw/toplevel.cpp        (working copy)
@@ -671,7 +671,7 @@
 
     DoShowWindow(nShowCmd);
 
-#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(__POCKETPC__) && !defined(__SMARTPHONE__))
+#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(__POCKETPC__) && !defined(__SMARTPHONE__) && !defined(__MINGW32__))
     // Addornments have to be added when the frame is the correct size
     wxFrame* frame = wxDynamicCast(this, wxFrame);
     if (frame && frame->GetMenuBar())
--- src/msw/toplevel.cpp	(revision 49149)
+++ src/msw/toplevel.cpp	(working copy)
@@ -726,7 +726,7 @@
 bool wxTopLevelWindowMSW::IsMaximized() const
 {
     return IsAlwaysMaximized() ||
-#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__) && !defined(__WINCE_STANDARDSDK__)
+#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__) && !defined(__WINCE_STANDARDSDK__) && !defined(_WIN32_WCE)
 
            (::IsZoomed(GetHwnd()) != 0) ||
 #endif
@@ -1068,6 +1068,9 @@
 
 void wxTopLevelWindowMSW::RequestUserAttention(int flags)
 {
+#ifdef __WXWINCE__
+    return;
+#else
     // check if we can use FlashWindowEx(): unfortunately a simple test for
     // FLASHW_STOP doesn't work because MSVC6 headers do #define it but don't
     // provide FlashWindowEx() declaration, so try to detect whether we have
@@ -1109,17 +1112,16 @@
 #endif // FlashWindowEx() defined
     {
         wxUnusedVar(flags);
-#ifndef __WXWINCE__
         ::FlashWindow(GetHwnd(), TRUE);
-#endif // __WXWINCE__
     }
+#endif
 }
 
 // ---------------------------------------------------------------------------
 
 bool wxTopLevelWindowMSW::SetTransparent(wxByte alpha)
 {
-#if wxUSE_DYNLIB_CLASS
+#if wxUSE_DYNLIB_CLASS && !defined(__WXWINCE__)
     typedef DWORD (WINAPI *PSETLAYEREDWINDOWATTR)(HWND, DWORD, BYTE, DWORD);
     static PSETLAYEREDWINDOWATTR pSetLayeredWindowAttributes = NULL;
 
@@ -1143,7 +1145,7 @@
         return true;
     }
 
-#if wxUSE_DYNLIB_CLASS
+#if wxUSE_DYNLIB_CLASS && !defined(__WXWINCE__)
     // Otherwise, set the layered style if needed and set the alpha value
     if ((exstyle & WS_EX_LAYERED) == 0 )
         SetWindowLong(GetHwnd(), GWL_EXSTYLE, exstyle | WS_EX_LAYERED);
Index: src/msw/utilsgui.cpp
===================================================================
--- src/msw/utilsgui.cpp	(revision 49149)
+++ src/msw/utilsgui.cpp	(working copy)
@@ -117,7 +117,7 @@
     if ( hData == 0 )
         return NULL;
 
-    wxChar *theText = (wxChar *)::LockResource(hData);
+    wxChar *theText = (wxChar *)LockResource(hData);
     if ( !theText )
         return NULL;
 
Index: src/msw/gsocket.cpp
===================================================================
--- src/msw/gsocket.cpp	(revision 49149)
+++ src/msw/gsocket.cpp	(working copy)
@@ -45,7 +45,7 @@
 
 #endif /* _MSC_VER */
 
-#if defined(__CYGWIN__)
+#if defined(__CYGWIN__) || defined(_WIN32_WCE)
     //CYGWIN gives annoying warning about runtime stuff if we don't do this
 #   define USE_SYS_TYPES_FD_SET
 #   include <sys/types.h>
Index: src/msw/menu.cpp
===================================================================
--- src/msw/menu.cpp	(revision 49149)
+++ src/msw/menu.cpp	(working copy)
@@ -453,7 +453,7 @@
         {
             // try to use InsertMenuItem() as it's guaranteed to look correct
             // while our owner-drawn code is not
-#ifndef __DMC__
+#if !defined(__DMC__) && !defined(__WXWINCE__)
             // DMC at march 2007 doesn't have HBITMAP hbmpItem tagMENUITEMINFOA /W
             // MIIM_BITMAP only works under WinME/2000+
             WinStruct<MENUITEMINFO> mii;
Index: src/msw/thread.cpp
===================================================================
--- src/msw/thread.cpp	(revision 49149)
+++ src/msw/thread.cpp	(working copy)
@@ -905,7 +905,7 @@
 
 bool wxThread::IsMain()
 {
-    return ::GetCurrentThreadId() == gs_idMainThread || gs_idMainThread == 0;
+    return GetCurrentThreadId() == gs_idMainThread || gs_idMainThread == 0;
 }
 
 void wxThread::Yield()
@@ -930,7 +930,7 @@
 
 unsigned long wxThread::GetCurrentId()
 {
-    return (unsigned long)::GetCurrentThreadId();
+    return (unsigned long) GetCurrentThreadId();
 }
 
 bool wxThread::SetConcurrency(size_t WXUNUSED_IN_WINCE(level))
@@ -1230,7 +1230,7 @@
 bool wxThreadModule::OnInit()
 {
     // allocate TLS index for storing the pointer to the current thread
-    gs_tlsThisThread = ::TlsAlloc();
+    gs_tlsThisThread = TlsAlloc();
     if ( gs_tlsThisThread == 0xFFFFFFFF )
     {
         // in normal circumstances it will only happen if all other
@@ -1245,7 +1245,7 @@
     // TLS instead
     if ( !::TlsSetValue(gs_tlsThisThread, (LPVOID)0) )
     {
-        ::TlsFree(gs_tlsThisThread);
+        TlsFree(gs_tlsThisThread);
         gs_tlsThisThread = 0xFFFFFFFF;
 
         wxLogSysError(_("Thread module initialization failed: can not store value in thread local storage"));
@@ -1261,14 +1261,14 @@
     gs_critsectThreadDelete = new wxCriticalSection;
 
     // no error return for GetCurrentThreadId()
-    gs_idMainThread = ::GetCurrentThreadId();
+    gs_idMainThread = GetCurrentThreadId();
 
     return true;
 }
 
 void wxThreadModule::OnExit()
 {
-    if ( !::TlsFree(gs_tlsThisThread) )
+    if ( !TlsFree(gs_tlsThisThread) )
     {
         wxLogLastError(wxT("TlsFree failed."));
     }
Index: src/msw/ownerdrw.cpp
===================================================================
--- src/msw/ownerdrw.cpp	(revision 49149)
+++ src/msw/ownerdrw.cpp	(working copy)
@@ -357,6 +357,7 @@
 
         SIZE sizeRect;
         ::GetTextExtentPoint32(hdc, strMenuText.c_str(), strMenuText.length(), &sizeRect);
+#ifndef _WIN32_WCE
         ::DrawState(hdc, NULL, NULL,
                     (LPARAM)strMenuText.wx_str(),
                     strMenuText.length(),
@@ -365,6 +366,7 @@
                     DST_PREFIXTEXT |
                     (((st & wxODDisabled) && !(st & wxODSelected)) ? DSS_DISABLED : 0) |
                     (((st & wxODHidePrefix) && !wxMSWSystemMenuFontModule::ms_showCues) ? 512 : 0)); // 512 == DSS_HIDEPREFIX
+#endif
 
         // ::SetTextAlign(hdc, TA_RIGHT) doesn't work with DSS_DISABLED or DSS_MONO
         // as the last parameter in DrawState() (at least with Windows98). So we have
@@ -375,6 +377,7 @@
             dc.GetTextExtent(m_strAccel, &accel_width, &accel_height);
             // right align accel string with right edge of menu ( offset by the
             // margin width )
+#ifndef _WIN32_WCE
             ::DrawState(hdc, NULL, NULL,
                     (LPARAM)m_strAccel.wx_str(),
                     m_strAccel.length(),
@@ -382,6 +385,7 @@
                     0, 0,
                     DST_TEXT |
                     (((st & wxODDisabled) && !(st & wxODSelected)) ? DSS_DISABLED : 0));
+#endif
         }
 
         (void)SetBkMode(hdc, nPrevMode);
Index: src/msw/display.cpp
===================================================================
--- src/msw/display.cpp (revision 49149)
+++ src/msw/display.cpp (working copy)
@@ -509,6 +509,9 @@
 
 wxDisplayFactoryWin32Base::wxDisplayFactoryWin32Base()
 {
+#ifdef __WXWINCE__
+   return;
+#else
     if ( ms_supportsMultimon == -1 )
     {
         ms_supportsMultimon = 0;
@@ -527,6 +530,7 @@
         // we can safely let dllUser32 go out of scope, the DLL itself will
         // still remain loaded as all Win32 programs use it
     }
+#endif
 }
 
 void wxDisplayFactoryWin32Base::Clear()
@@ -581,6 +585,9 @@
 
 wxDisplayFactoryMultimon::wxDisplayFactoryMultimon()
 {
+#ifdef __WXWINCE__
+    return;
+#else
     if ( !ms_supportsMultimon )
         return;
 
@@ -600,6 +607,7 @@
     {
         wxLogLastError(wxT("EnumDisplayMonitors"));
     }
+#endif
 }
 
 /* static */
@@ -735,21 +743,27 @@
     static ChangeDisplaySettingsEx_t pfnChangeDisplaySettingsEx = NULL;
     if ( !pfnChangeDisplaySettingsEx )
     {
+#ifdef __WXWINCE__
         wxDynamicLibrary dllUser32(_T("user32.dll"));
         if ( dllUser32.IsLoaded() )
         {
+            wxDL_INIT_FUNC(pfn, ChangeDisplaySettingsEx, dllUser32);
+        }
+#else
+        wxDynamicLibrary dllUser32(_T("user32.dll"));
+        if ( dllUser32.IsLoaded() )
+        {
             wxDL_INIT_FUNC_AW(pfn, ChangeDisplaySettingsEx, dllUser32);
         }
         //else: huh, no user32.dll??
 
-#ifndef __WXWINCE__
         if ( !pfnChangeDisplaySettingsEx )
         {
             // we must be under Win95 and so there is no multiple monitors
             // support anyhow
             pfnChangeDisplaySettingsEx = ChangeDisplaySettingsExForWin95;
         }
-#endif // !__WXWINCE__
+#endif
     }
 
     // do change the mode
Index: src/msw/utilsexc.cpp
===================================================================
--- src/msw/utilsexc.cpp        (revision 49149)
+++ src/msw/utilsexc.cpp        (working copy)
@@ -70,7 +70,7 @@
 #include <stdlib.h>
 #include <string.h>
 #ifndef __WATCOMC__
-    #if !(defined(_MSC_VER) && (_MSC_VER > 800))
+    #if !(defined(_MSC_VER) && (_MSC_VER > 800)) && !defined(__WXWINCE__)
         #include <errno.h>
     #endif
 #endif
Index: src/msw/wince/time.cpp
===================================================================
--- src/msw/wince/time.cpp	(revision 49149)
+++ src/msw/wince/time.cpp	(working copy)
@@ -583,7 +583,7 @@
     else
     {
         i64 = *t;
-        i64 = i64 * 10000000 + 116444736000000000;
+        i64 = (i64 * 10000000 + (1164447360) * 100000000);
 
         ft.dwLowDateTime  = i64.GetLo();
         ft.dwHighDateTime = i64.GetHi();
Index: src/msw/wince/net.cpp
===================================================================
--- src/msw/wince/net.cpp	(revision 49149)
+++ src/msw/wince/net.cpp	(working copy)
@@ -42,11 +42,11 @@
 
 static struct protoent RgProtoEnt[] =
 {
- { "tcp", {NULL}, 6 },
- { "udp", {NULL}, 17 },
- { "icmp", {NULL}, 1 },
- { "ip", {NULL}, 0 },
- { NULL, {NULL}, 0 }
+ { "tcp", NULL, 6 },
+ { "udp", NULL, 17 },
+ { "icmp", NULL, 1 },
+ { "ip", NULL, 0 },
+ { NULL, NULL, 0 }
 };
 
 
@@ -62,32 +62,32 @@
 
 static struct servent RgServEnt[] =
 {
- { "ftp", {NULL}, 21, "tcp" },
- { "ftp-data", {NULL}, 20, "tcp" },
- { "telnet", {NULL}, 23, "tcp" },
- { "smtp", {NULL}, 25, "tcp" },
- { "http", {NULL}, 80, "tcp" },
- { "http", {NULL}, 80, "udp" },
- { "pop", {NULL}, 109, "tcp" },
- { "pop2", {NULL}, 109, "tcp" },
- { "pop3", {NULL}, 110, "tcp" },
- { "nntp", {NULL}, 119, "tcp" },
- { "finger", {NULL}, 79, "tcp" },
+ { "ftp", NULL, 21, "tcp" },
+ { "ftp-data", NULL, 20, "tcp" },
+ { "telnet", NULL, 23, "tcp" },
+ { "smtp", NULL, 25, "tcp" },
+ { "http", NULL, 80, "tcp" },
+ { "http", NULL, 80, "udp" },
+ { "pop", NULL, 109, "tcp" },
+ { "pop2", NULL, 109, "tcp" },
+ { "pop3", NULL, 110, "tcp" },
+ { "nntp", NULL, 119, "tcp" },
+ { "finger", NULL, 79, "tcp" },
  /* include most of the simple TCP services for testing */
- { "echo", {NULL}, 7, "tcp" },
- { "echo", {NULL}, 7, "udp" },
- { "discard", {NULL}, 9, "tcp" },
- { "discard", {NULL}, 9, "udp" },
- { "chargen", {NULL}, 19, "tcp" },
- { "chargen", {NULL}, 19, "udp" },
- { "systat", {NULL}, 11, "tcp" },
- { "systat", {NULL}, 11, "udp" },
- { "daytime", {NULL}, 13, "tcp" },
- { "daytime", {NULL}, 13, "udp" },
- { "netstat", {NULL}, 15, "tcp" },
- { "qotd", {NULL}, 17, "tcp" },
- { "qotd", {NULL}, 17, "udp" },
- { NULL, {NULL}, 0, NULL }
+ { "echo", NULL, 7, "tcp" },
+ { "echo", NULL, 7, "udp" },
+ { "discard", NULL, 9, "tcp" },
+ { "discard", NULL, 9, "udp" },
+ { "chargen", NULL, 19, "tcp" },
+ { "chargen", NULL, 19, "udp" },
+ { "systat", NULL, 11, "tcp" },
+ { "systat", NULL, 11, "udp" },
+ { "daytime", NULL, 13, "tcp" },
+ { "daytime", NULL, 13, "udp" },
+ { "netstat", NULL, 15, "tcp" },
+ { "qotd", NULL, 17, "tcp" },
+ { "qotd", NULL, 17, "udp" },
+ { NULL, NULL, 0, NULL }
 };
 
 // Since table kept in host byte order,
@@ -108,7 +108,7 @@
 }
 
 
-struct servent * WINSOCKAPI getservbyport(int port, const char * proto)
+struct servent * WINAPI getservbyport(int port, const char * proto)
 {
 
  port = ntohs((unsigned short)port); // arrives in network byte order
@@ -140,7 +140,7 @@
 }
 
 
-struct servent * WINSOCKAPI getservbyname(const char * name,
+struct servent * WINAPI getservbyname(const char * name,
                                           const char * proto)
 {
  struct servent *ps = &RgServEnt[0];
@@ -173,7 +173,7 @@
 }
 
 
-struct protoent * WINSOCKAPI getprotobynumber(int proto)
+struct protoent * WINAPI getprotobynumber(int proto)
 {
  struct protoent *pr = &RgProtoEnt[0];
  while (NULL != pr->p_name)
Index: src/msw/wince/filefnwce.cpp
===================================================================
--- src/msw/wince/filefnwce.cpp (revision 49149)
+++ src/msw/wince/filefnwce.cpp (working copy)
@@ -163,7 +163,7 @@
     int method;
     switch ( origin ) {
         default:
-            wxFAIL_MSG(_("unknown seek origin"));
+            wxFAIL_MSG(wxT("unknown seek origin"));
 
         case SEEK_SET:
             method = FILE_BEGIN;
@@ -182,7 +182,7 @@
     DWORD res = SetFilePointer((HANDLE) fd, offset, &high, method) ;
     if (res == 0xFFFFFFFF && GetLastError() != NO_ERROR)
     {
-        wxLogSysError(_("can't seek on file descriptor %d"), fd);
+        wxLogSysError(wxT("can't seek on file descriptor %d"), fd);
         return wxInvalidOffset;
     }
     else
@@ -195,7 +195,7 @@
     DWORD res = SetFilePointer((HANDLE) fd, 0, &high, FILE_CURRENT) ;
     if (res == 0xFFFFFFFF && GetLastError() != NO_ERROR)
     {
-        wxLogSysError(_("can't get seek position on file descriptor %d"), fd);
+        wxLogSysError(wxT("can't get seek position on file descriptor %d"), fd);
         return wxInvalidOffset;
     }
     else
Index: src/msw/wince/helpwce.cpp
===================================================================
--- src/msw/wince/helpwce.cpp   (revision 49149)
+++ src/msw/wince/helpwce.cpp   (working copy)
@@ -116,7 +116,7 @@
         url = url + wxT("#") + topic;
 
     return CreateProcess(wxT("peghelp.exe"),
-        url, NULL, NULL, FALSE, 0, NULL,
+        (WCHAR *) (const wchar_t *) url, NULL, NULL, FALSE, 0, NULL,
         NULL, NULL, NULL) != 0 ;
 }
 
Index: src/msw/stdpaths.cpp
===================================================================
--- src/msw/stdpaths.cpp        (revision 49149)
+++ src/msw/stdpaths.cpp        (working copy)
@@ -131,7 +131,7 @@
 
 #if wxUSE_UNICODE
     #ifdef __WXWINCE__
-        static const wchar_t UNICODE_SUFFIX = L''; // WinCE SH functions don't seem to have 'W'
+        static const wchar_t UNICODE_SUFFIX = L'\0'; // WinCE SH functions don't seem to have 'W'
     #else
         static const wchar_t UNICODE_SUFFIX = L'W';
     #endif
Index: src/msw/dib.cpp
===================================================================
--- src/msw/dib.cpp     (revision 49149)
+++ src/msw/dib.cpp     (working copy)
@@ -52,6 +52,7 @@
 #include "wx/msw/dib.h"
 
 #ifdef __WXWINCE__
+    #include <aygshell.h>
     #include <shellapi.h>       // for SHLoadDIBitmap()
 #endif
 
Index: src/msw/gsockmsw.cpp
===================================================================
--- src/msw/gsockmsw.cpp	(revision 49149)
+++ src/msw/gsockmsw.cpp	(working copy)
@@ -121,10 +121,12 @@
 #else
 /* Typedef the needed function prototypes and the WSANETWORKEVENTS structure
 */
+#ifdef __VISUALC__
 typedef struct _WSANETWORKEVENTS {
        long lNetworkEvents;
        int iErrorCode[10];
 } WSANETWORKEVENTS, FAR * LPWSANETWORKEVENTS;
+#endif
 typedef HANDLE (PASCAL *WSACreateEventFunc)(void);
 typedef int (PASCAL *WSAEventSelectFunc)(SOCKET,HANDLE,long);
 typedef int (PASCAL *WSAWaitForMultipleEventsFunc)(long,HANDLE,BOOL,long,BOOL);
Index: src/msw/utils.cpp
===================================================================
--- src/msw/utils.cpp   (revision 49149)
+++ src/msw/utils.cpp   (working copy)
@@ -96,7 +96,7 @@
 #endif
 
 #ifndef __WATCOMC__
-    #if !(defined(_MSC_VER) && (_MSC_VER > 800))
+    #if !(defined(_MSC_VER) && (_MSC_VER > 800)) && !defined(__WXWINCE__)
         #include <errno.h>
     #endif
 #endif
@@ -1035,7 +1035,7 @@
 
 unsigned long wxGetProcessId()
 {
-    return ::GetCurrentProcessId();
+    return GetCurrentProcessId();
 }
 
 // Emit a beeeeeep
@@ -1187,7 +1187,7 @@
     BOOL wow64 = FALSE;
     if ( pfnIsWow64Process )
     {
-        pfnIsWow64Process(::GetCurrentProcess(), &wow64);
+        pfnIsWow64Process(GetCurrentProcess(), &wow64);
     }
     //else: running under a system without Win64 support
 
Index: src/generic/fontdlgg.cpp
===================================================================
--- src/generic/fontdlgg.cpp    (revision 49149)
+++ src/generic/fontdlgg.cpp    (working copy)
@@ -34,6 +34,7 @@
     #include "wx/settings.h"
     #include "wx/cmndata.h"
     #include "wx/sizer.h"
+    #include "wx/textctrl.h"
 #endif
 
 #include <string.h>
Index: include/wx/wxcrtvararg.h
===================================================================
--- include/wx/wxcrtvararg.h	(revision 49149)
+++ include/wx/wxcrtvararg.h	(working copy)
@@ -188,7 +188,6 @@
     #define wxNEED_WPRINTF
 #endif
 
-
 #if defined(wxNEED_WPRINTF)
     /*
         we need to implement all wide character printf functions either because
@@ -217,7 +216,9 @@
 #define wxCRT_ScanfA     scanf
 #define wxCRT_SscanfA    sscanf
 #define wxCRT_FscanfA    fscanf
+#if !defined(__WXWINCE__)
 #define wxCRT_VsscanfA   vsscanf
+#endif
 
 #if defined(wxNEED_WPRINTF)
     int wxCRT_ScanfW(const wchar_t *format, ...);
@@ -442,7 +443,7 @@
                    wxCRT_SscanfW, (str.AsWCharBuf(), wxScanfConvertFormatW(format)))
 
 // Visual C++ doesn't provide vsscanf()
-#ifndef __VISUALC___
+#if !defined(__VISUALC___) && !defined(__WXWINCE__)
 int WXDLLIMPEXP_BASE wxVsscanf(const char *str, const char *format, va_list ap);
 int WXDLLIMPEXP_BASE wxVsscanf(const wchar_t *str, const wchar_t *format, va_list ap);
 int WXDLLIMPEXP_BASE wxVsscanf(const wxCharBuffer& str, const char *format, va_list ap);
Index: include/wx/msw/wince/net.h
===================================================================
--- include/wx/msw/wince/net.h	(revision 49149)
+++ include/wx/msw/wince/net.h	(working copy)
@@ -12,9 +12,9 @@
 
 */
 
-struct servent * WINSOCKAPI getservbyport(int port, const char * proto) ;
+struct servent * WINAPI getservbyport(int port, const char * proto) ;
 
-struct servent * WINSOCKAPI getservbyname(const char * name,
+struct servent * WINAPI getservbyname(const char * name,
                                           const char * proto) ;
-struct protoent * WINSOCKAPI getprotobynumber(int proto) ;
+struct protoent * WINAPI getprotobynumber(int proto) ;
 
Index: include/wx/wxcrtbase.h
===================================================================
--- include/wx/wxcrtbase.h	(revision 49149)
+++ include/wx/wxcrtbase.h	(working copy)
@@ -504,8 +504,8 @@
 /* there are no env vars at all under CE, so no _tgetenv neither */
 #ifdef __WXWINCE__
     /* can't define as inline function as this is a C file... */
-    #define wxCRT_GetenvA(name)     (name, NULL)
-    #define wxCRT_GetenvW(name)     (name, NULL)
+    #define wxCRT_GetenvA(name)     (char *) (name, NULL)
+    #define wxCRT_GetenvW(name)     (wchar_t *) (name, NULL)
 #else
     #define wxCRT_GetenvA           getenv
     #ifdef _tgetenv
@@ -517,12 +517,18 @@
 WXDLLIMPEXP_BASE wchar_t * wxCRT_GetenvW(const wchar_t *name);
 #endif
 
-
+/* wince doesn't have system(), but ShellExecuteEx() */
+#ifdef __WXWINCE__
+// FIXME: Implement a macro which translates the system() argument to a argument recognized by ShellExecuteEx()
+#define wxCRT_SystemA(x)              ((int) 0)
+#define wxCRT_SystemW(x)              ((int) 0)
+#else
 #define wxCRT_SystemA               system
 /* mingw32 doesn't provide _tsystem() or _wsystem(): */
 #if defined(_tsystem)
     #define  wxCRT_SystemW          _wsystem
 #endif
+#endif
 
 #define wxCRT_AtofA                 atof
 #define wxCRT_AtoiA                 atoi
@@ -535,7 +541,7 @@
         #define wxCRT_AtolW         watol
     /* else: use ANSI versions */
     #endif
-#elif defined(wxHAVE_TCHAR_SUPPORT)
+#elif defined(wxHAVE_TCHAR_SUPPORT) && !defined(__WXWINCE__)
     #define  wxCRT_AtoiW           _wtoi
     #define  wxCRT_AtolW           _wtol
     /* _wtof doesn't exist */
Index: include/wx/defs.h
===================================================================
--- include/wx/defs.h	(revision 49149)
+++ include/wx/defs.h	(working copy)
@@ -37,6 +37,7 @@
          !defined(__WXMGL__)   && \
          !defined(__WXDFB__)   && \
          !defined(__WXX11__)   && \
+         !defined(__WXWINCE__) && \
           wxUSE_GUI
 #       ifdef __UNIX__
 #           error "No Target! You should use wx-config program for compilation flags!"
Index: mingw/include/sys/time.h
===================================================================
--- mingw/include/sys/time.h	(revision 1062)
+++ mingw/include/sys/time.h	(working copy)
@@ -36,10 +36,8 @@
 
    The timezone pointer arg is ignored.  Errors are ignored.
 */ 
-#ifndef __COREDLL__
 int __cdecl gettimeofday(struct timeval *__restrict__,
 			 void *__restrict__  /*	tzp (unused) */);
-#endif
 
 #ifdef	__cplusplus
 }
Index: w32api/include/commdlg.h
===================================================================
--- w32api/include/commdlg.h	(revision 1062)
+++ w32api/include/commdlg.h	(working copy)
@@ -525,8 +525,12 @@
 } PRINTDLGEXW, *LPPRINTDLGEXW;
 #endif /* WINVER >= 0x0500 */
 
+#ifdef _WIN32_WCE
+BOOL WINAPI ChooseColor(LPCHOOSECOLORW);
+#else
 BOOL WINAPI ChooseColorA(LPCHOOSECOLORA);
 BOOL WINAPI ChooseColorW(LPCHOOSECOLORW);
+#endif
 BOOL WINAPI ChooseFontA(LPCHOOSEFONTA);
 BOOL WINAPI ChooseFontW(LPCHOOSEFONTW);
 DWORD WINAPI CommDlgExtendedError(void);
@@ -568,7 +572,9 @@
 typedef OFNOTIFYW OFNOTIFY,*LPOFNOTIFY;
 typedef PAGESETUPDLGW PAGESETUPDLG,*LPPAGESETUPDLG;
 typedef PRINTDLGW PRINTDLG,*LPPRINTDLG;
+#ifndef _WIN32_WCE
 #define ChooseColor ChooseColorW
+#endif
 #define ChooseFont ChooseFontW
 #define FindText FindTextW
 #define GetFileTitle GetFileTitleW
@@ -598,7 +604,9 @@
 typedef OFNOTIFYA OFNOTIFY,*LPOFNOTIFY;
 typedef PAGESETUPDLGA PAGESETUPDLG,*LPPAGESETUPDLG;
 typedef PRINTDLGA PRINTDLG,*LPPRINTDLG;
+#ifndef _WIN32_WCE
 #define ChooseColor ChooseColorA
+#endif
 #define ChooseFont ChooseFontA
 #define FindText FindTextA
 #define GetFileTitle GetFileTitleA
Index: w32api/include/shellapi.h
===================================================================
--- w32api/include/shellapi.h	(revision 1062)
+++ w32api/include/shellapi.h	(working copy)
@@ -326,6 +326,7 @@
 #ifdef _WIN32_WCE
 BOOL WINAPI SHGetShortcutTarget(LPCTSTR,LPTSTR,int); 
 BOOL WINAPI SHCreateShortcut(LPTSTR,LPTSTR);
+HBITMAP WINAPI SHLoadDIBitmap(LPCTSTR);
 #endif
 
 #ifdef UNICODE
Index: w32api/include/wingdi.h
===================================================================
--- w32api/include/wingdi.h	(revision 1062)
+++ w32api/include/wingdi.h	(working copy)
@@ -1319,6 +1319,14 @@
 #define GGI_MARK_NONEXISTING_GLYPHS 1
 #endif
 
+// FIXME: find out the real values these defines: http://msdn2.microsoft.com/en-us/library/ms901140.aspx
+#define ANTIALIASED_QUALITY      0x0
+#define NONANTIALIASED_QUALITY   0x0
+#define CLEARTYPE_COMPAT_QUALITY 0x0
+#define CLEARTYPE_QUALITY        0x0
+#define DEFAULT_QUALITY          0x0
+#define DRAFT_QUALITY            0x0
+
 #ifndef RC_INVOKED
 typedef struct _ABC {
 	int abcA;
Index: w32api/include/winbase.h
===================================================================
--- w32api/include/winbase.h	(revision 1062)
+++ w32api/include/winbase.h	(working copy)
@@ -900,6 +900,7 @@
 	WORD wProcessorLevel;
 	WORD wProcessorRevision;
 } SYSTEM_INFO,*LPSYSTEM_INFO;
+#ifndef _WIN32_WCE
 typedef struct _SYSTEM_POWER_STATUS {
 	BYTE ACLineStatus;
 	BYTE BatteryFlag;
@@ -908,6 +909,7 @@
 	DWORD BatteryLifeTime;
 	DWORD BatteryFullLifeTime;
 } SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS;
+#endif
 typedef struct _TIME_ZONE_INFORMATION {
 	LONG Bias;
 	WCHAR StandardName[32];
@@ -1589,8 +1591,9 @@
 WINBASEAPI UINT WINAPI GetSystemDirectoryA(LPSTR,UINT);
 WINBASEAPI UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT);
 WINBASEAPI VOID WINAPI GetSystemInfo(LPSYSTEM_INFO);
+#ifndef _WIN32_WCE
 WINBASEAPI BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
-#ifdef _WIN32_WCE
+#else
 WINBASEAPI DWORD GetSystemPowerStatusEx2(PSYSTEM_POWER_STATUS_EX2,DWORD,BOOL);
 WINBASEAPI BOOL GetSystemPowerStatusEx(PSYSTEM_POWER_STATUS_EX,BOOL);
 #endif
Index: w32api/include/winuser.h
===================================================================
--- w32api/include/winuser.h	(revision 1062)
+++ w32api/include/winuser.h	(working copy)
@@ -2452,6 +2452,11 @@
 #define RIDEV_APPKEYS      0x00000400
 #endif
 
+#ifdef __COREDLL__
+// Found at http://kickjava.com/src/org/eclipse/swt/internal/win32/OS.java.htm
+#define SYS_COLOR_INDEX_FLAG 0x40000000
+#endif
+
 #ifndef RC_INVOKED
 typedef BOOL(CALLBACK *DLGPROC)(HWND,UINT,WPARAM,LPARAM);
 typedef VOID(CALLBACK *TIMERPROC)(HWND,UINT,UINT,DWORD);
@@ -3554,6 +3559,10 @@
 WINUSERAPI BOOL WINAPI EnumDesktopWindows(HDESK,ENUMWINDOWSPROC,LPARAM);
 WINUSERAPI BOOL WINAPI EnumDisplayMonitors(HDC,LPCRECT,MONITORENUMPROC,LPARAM);
 #ifndef NOGDI
+#ifdef _WIN32_WCE
+WINUSERAPI BOOL WINAPI EnumDisplaySettings(LPCWSTR,DWORD,PDEVMODEW);
+WINUSERAPI BOOL WINAPI EnumDisplayDevices(LPCWSTR,DWORD,PDISPLAY_DEVICEW,DWORD);
+#else
 WINUSERAPI BOOL WINAPI EnumDisplaySettingsA(LPCSTR,DWORD,PDEVMODEA);
 WINUSERAPI BOOL WINAPI EnumDisplaySettingsW(LPCWSTR,DWORD,PDEVMODEW);
 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
@@ -3563,6 +3572,7 @@
 WINUSERAPI BOOL WINAPI EnumDisplayDevicesA(LPCSTR,DWORD,PDISPLAY_DEVICEA,DWORD);
 WINUSERAPI BOOL WINAPI EnumDisplayDevicesW(LPCWSTR,DWORD,PDISPLAY_DEVICEW,DWORD);
 #endif
+#endif
 WINUSERAPI int WINAPI EnumPropsA(HWND,PROPENUMPROCA);
 WINUSERAPI int WINAPI EnumPropsW(HWND,PROPENUMPROCW);
 WINUSERAPI int WINAPI EnumPropsExA(HWND,PROPENUMPROCEXA,LPARAM);
@@ -4029,7 +4039,12 @@
 WINUSERAPI int WINAPI ToUnicode(UINT,UINT,PBYTE,LPWSTR,int,UINT);
 WINUSERAPI int WINAPI ToUnicodeEx(UINT,UINT,PBYTE,LPWSTR,int,UINT,HKL);
 WINUSERAPI BOOL WINAPI TrackMouseEvent(LPTRACKMOUSEEVENT);
+#ifdef _WIN32_WCE
+#define TrackPopupMenu(hmenu, uFlags, x, y, nReserved, hWnd, rect) \
+    TrackPopupMenuEx(hmenu, uFlags, x, y, hWnd, NULL)
+#else
 WINUSERAPI BOOL WINAPI TrackPopupMenu(HMENU,UINT,int,int,int,HWND,LPCRECT);
+#endif
 WINUSERAPI BOOL WINAPI TrackPopupMenuEx(HMENU,UINT,int,int,HWND,LPTPMPARAMS);
 WINUSERAPI int WINAPI TranslateAcceleratorA(HWND,HACCEL,LPMSG);
 WINUSERAPI int WINAPI TranslateAcceleratorW(HWND,HACCEL,LPMSG);
@@ -4243,9 +4258,11 @@
 #define ChangeDisplaySettings ChangeDisplaySettingsW
 #define ChangeDisplaySettingsEx ChangeDisplaySettingsExW
 #define CreateDesktop CreateDesktopW
+#ifndef _WIN32_WCE
 #define EnumDisplaySettings EnumDisplaySettingsW
 #define EnumDisplaySettingsEx EnumDisplaySettingsExW
 #define EnumDisplayDevices EnumDisplayDevicesW
+#endif
 #endif /* NOGDI */
 #else /* UNICODE */
 #define EDITWORDBREAKPROC EDITWORDBREAKPROCA
@@ -4408,9 +4425,11 @@
 #define ChangeDisplaySettings ChangeDisplaySettingsA
 #define ChangeDisplaySettingsEx ChangeDisplaySettingsExA
 #define CreateDesktop CreateDesktopA
+#ifndef _WIN32_WCE_
 #define EnumDisplaySettings EnumDisplaySettingsA
 #define EnumDisplaySettingsEx EnumDisplaySettingsExA
 #define EnumDisplayDevices EnumDisplayDevicesA
+#endif
 #endif /* NOGDI */
 #endif /* UNICODE */
 #endif /* RC_INVOKED */
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to