From 3a5bcc4db0851bf8cd3063917511b0b17c7f9679 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Sun, 28 Mar 2004 13:10:14 +0000
Subject: [PATCH] removed Win16 code (patch 905241), last version with remains
 of Win16 support tagged with BEFORE_WIN16_REMOVAL

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 demos/dbbrowse/dummy.cpp      |    6 -
 demos/dbbrowse/pgmctrl.cpp    |    7 -
 demos/forty/scorefil.h        |    7 -
 demos/life/game.cpp           |    4 -
 docs/html/index.htm           |    2 +-
 docs/latex/wx/config.tex      |    2 +-
 docs/latex/wx/function.tex    |    2 +-
 docs/latex/wx/tdb.tex         |    2 -
 include/wx/confbase.h         |    8 +-
 include/wx/dc.h               |    2 -
 include/wx/defs.h             |   24 +-
 include/wx/dragimag.h         |   32 +-
 include/wx/event.h            |    4 -
 include/wx/filefn.h           |    2 -
 include/wx/generic/imaglist.h |    4 +-
 include/wx/generic/listctrl.h |    6 +-
 include/wx/generic/treectlg.h |    4 +-
 include/wx/isql.h             |    9 +-
 include/wx/mac/setup0.h       |    2 +-
 include/wx/metafile.h         |    4 +-
 include/wx/msw/ole/uuid.h     |    2 -
 include/wx/msw/private.h      |   10 +-
 include/wx/msw/statbmp.h      |    3 -
 include/wx/msw/tbarmsw.h      |    4 +-
 include/wx/msw/textctrl.h     |    6 -
 include/wx/platform.h         |    2 +-
 include/wx/spinctrl.h         |    4 +-
 include/wx/treectrl.h         |    4 -
 include/wx/wxchar.h           |    5 +-
 samples/controls/controls.cpp |   14 +-
 samples/notebook/notebook.cpp |    2 +-
 src/common/cmndata.cpp        |    4 -
 src/common/config.cpp         |    4 -
 src/common/filename.cpp       |    8 +-
 src/common/log.cpp            |   14 +-
 src/common/valgen.cpp         |   12 +-
 src/common/variant.cpp        |   13 -
 src/common/xpmdecod.cpp       |    4 -
 src/common/zstream.cpp        |    4 -
 src/generic/dragimgg.cpp      |    4 -
 src/generic/imaglist.cpp      |    2 +-
 src/generic/logg.cpp          |    6 -
 src/generic/notebook.cpp      |   54 +-
 src/generic/numdlgg.cpp       |    4 +-
 src/generic/sashwin.cpp       |    8 -
 src/generic/treectlg.cpp      |    2 +-
 src/msw/accel.cpp             |   13 -
 src/msw/app.cpp               |   14 -
 src/msw/bitmap.cpp            |   36 --
 src/msw/caret.cpp             |    8 +-
 src/msw/checklst.cpp          |   24 -
 src/msw/clipbrd.cpp           |    4 +-
 src/msw/combobox.cpp          |    8 +-
 src/msw/dc.cpp                |   12 +-
 src/msw/dcprint.cpp           |    2 -
 src/msw/dialup.cpp            |    6 -
 src/msw/dir.cpp               |  151 +----
 src/msw/dummy.cpp             |    6 -
 src/msw/fontdlg.cpp           |    4 -
 src/msw/fontenum.cpp          |   12 +-
 src/msw/mdi.cpp               |    8 -
 src/msw/menuitem.cpp          |    6 -
 src/msw/mimetype.cpp          |    6 -
 src/msw/printdlg.cpp          |    5 -
 src/msw/radiobut.cpp          |    4 +-
 src/msw/regconf.cpp           |    5 -
 src/msw/region.cpp            |   12 -
 src/msw/registry.cpp          |   62 +-
 src/msw/settings.cpp          |    5 -
 src/msw/statbmp.cpp           |   62 +-
 src/msw/tbarmsw.cpp           | 1080 ---------------------------------
 src/msw/textctrl.cpp          |   41 --
 src/msw/toplevel.cpp          |    2 -
 src/msw/utils.cpp             |   51 +-
 src/msw/utilsexc.cpp          |    2 -
 src/msw/utilsgui.cpp          |    6 +-
 utils/tex2rtf/src/tex2rtf.cpp |   10 -
 77 files changed, 116 insertions(+), 1883 deletions(-)

diff --git a/demos/dbbrowse/dummy.cpp b/demos/dbbrowse/dummy.cpp
index 6a35911113..5d4ce56ab0 100644
--- a/demos/dbbrowse/dummy.cpp
+++ b/demos/dbbrowse/dummy.cpp
@@ -28,9 +28,3 @@
 
 #include "wx/msw/msvcrt.h"
 
-// Foils optimizations in Visual C++ (see also app.cpp). Without it,
-// dummy.obj isn't linked and we get a linker error.
-#if defined(__VISUALC__) && defined(__WIN16__)
-    char wxDummyChar = 0;
-#endif
-
diff --git a/demos/dbbrowse/pgmctrl.cpp b/demos/dbbrowse/pgmctrl.cpp
index c7b2ec0663..786b0dea8f 100644
--- a/demos/dbbrowse/pgmctrl.cpp
+++ b/demos/dbbrowse/pgmctrl.cpp
@@ -74,12 +74,6 @@ PgmCtrl::PgmCtrl(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const
     // Make an image list containing small icons
     p_imageListNormal = new wxImageList(image_size, image_size, TRUE);
     // should correspond to TreeIc_xxx enum
-#if defined(__WXMSW__) && defined(__WIN16__)
-    // This is required in 16-bit Windows mode only because we can't load a specific (16x16)
-    // icon image, so it comes out stretched
-    p_imageListNormal->Add(wxBitmap(wxBitmap("bitmap1", wxBITMAP_TYPE_BMP_RESOURCE).ConvertToImage().Rescale(image_size, image_size)));
-    p_imageListNormal->Add(wxBitmap(wxBitmap("bitmap2", wxBITMAP_TYPE_BMP_RESOURCE).ConvertToImage().Rescale(image_size, image_size)));
-#else
     p_imageListNormal->Add(wxBitmap(wxBitmap(wxICON(aLogo)).ConvertToImage().Rescale(image_size, image_size)));
     p_imageListNormal->Add(wxBitmap(wxBitmap(wxICON(DsnClosed)).ConvertToImage().Rescale(image_size, image_size)));
     p_imageListNormal->Add(wxBitmap(wxBitmap(wxICON(DsnOpen)).ConvertToImage().Rescale(image_size, image_size)));
@@ -87,7 +81,6 @@ PgmCtrl::PgmCtrl(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const
     p_imageListNormal->Add(wxBitmap(wxBitmap(wxICON(DocOpen)).ConvertToImage().Rescale(image_size, image_size)));
     p_imageListNormal->Add(wxBitmap(wxBitmap(wxICON(FolderClosed)).ConvertToImage().Rescale(image_size, image_size)));
     p_imageListNormal->Add(wxBitmap(wxBitmap(wxICON(FolderOpen)).ConvertToImage().Rescale(image_size, image_size)));
-#endif
     SetImageList(p_imageListNormal);
 }
 
diff --git a/demos/forty/scorefil.h b/demos/forty/scorefil.h
index d73bb62540..9e91de438e 100644
--- a/demos/forty/scorefil.h
+++ b/demos/forty/scorefil.h
@@ -15,13 +15,6 @@
 
 #include <wx/config.h>
 
-#ifdef __WIN16__
-#include <wx/fileconf.h>
-
-#undef wxConfig
-#define wxConfig wxFileConfig
-#endif
-
 class ScoreFile {
 public:
 	ScoreFile(const wxString& appName);
diff --git a/demos/life/game.cpp b/demos/life/game.cpp
index 681e12449e..a8be0b96e8 100644
--- a/demos/life/game.cpp
+++ b/demos/life/game.cpp
@@ -9,10 +9,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __WIN16__
-#error "Sorry, Life! will not work in 16-bit Windows"
-#endif
-
 // ==========================================================================
 // headers, declarations, constants
 // ==========================================================================
diff --git a/docs/html/index.htm b/docs/html/index.htm
index 8d8b45bb99..a78e86c31a 100644
--- a/docs/html/index.htm
+++ b/docs/html/index.htm
@@ -295,7 +295,7 @@ wxWindows dialogs by replacing default bitmaps/icons with your own versions.
 <li><a href="../../samples/checklst">checklst</a>: demonstrates wxCheckListBox on
 supported platforms (currently Windows and GTK only).
 <li><a href="../../samples/config">config</a>: demonstrates use of wxConfig, which
-defaults to wxRegConfig on WIN32, wxIniConfig on WIN16, and wxFileConfig on other platforms.
+defaults to wxRegConfig on WIN32 (optionally wxIniConfig), and wxFileConfig on other platforms.
 <li><a href="../../samples/console">console</a>: demonstrates a console application using
 console-mode (no-GUI) compilation of wxWindows.
 <li><a href="../../samples/controls">controls</a>: sample showing a variety of controls, including
diff --git a/docs/latex/wx/config.tex b/docs/latex/wx/config.tex
index 03b3a89223..f1bdd6b723 100644
--- a/docs/latex/wx/config.tex
+++ b/docs/latex/wx/config.tex
@@ -11,7 +11,7 @@ the registry under Win32 or text-based config files under Unix (or even
 Windows 3.1 .INI files if you're really unlucky). To make writing the portable
 code even easier, wxWindows provides a typedef wxConfig
 which is mapped onto the native wxConfigBase implementation on the given
-platform: i.e. wxRegConfig under Win32, wxIniConfig under Win16 and
+platform: i.e. wxRegConfig under Win32 (optionally wxIniConfig) and
 wxFileConfig otherwise.
 
 See \helpref{config overview}{wxconfigoverview} for the descriptions of all
diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex
index 9af8616778..545b103690 100644
--- a/docs/latex/wx/function.tex
+++ b/docs/latex/wx/function.tex
@@ -969,7 +969,7 @@ directory doesn't exist).
 
 \wxheading{Portability}
 
-This function is implemented for Win16 (only for drives less than 2Gb), Win32,
+This function is implemented for Win32,
 Mac OS and generic Unix provided the system has {\tt statfs()} function.
 
 This function first appeared in wxWindows 2.3.2.
diff --git a/docs/latex/wx/tdb.tex b/docs/latex/wx/tdb.tex
index 7a2d7be7fc..e72687c568 100644
--- a/docs/latex/wx/tdb.tex
+++ b/docs/latex/wx/tdb.tex
@@ -291,8 +291,6 @@ in the list of external libraries to be linked in. If using the makefiles
 supplied with wxWindows, this library should already be included for use with 
 makefile.b32, makefile.vc, and makefile.g95. 
 
-You cannot compile the wxODBC classes under Win16 - sorry.
-
 \normalbox{MORE TO COME}
 
 {\it Under Unix}
diff --git a/include/wx/confbase.h b/include/wx/confbase.h
index 6ce5b907a4..699a9e0ace 100644
--- a/include/wx/confbase.h
+++ b/include/wx/confbase.h
@@ -49,8 +49,7 @@ class WXDLLIMPEXP_BASE wxArrayString;
 
 /// should we use registry instead of configuration files under Windows?
 // (i.e. whether wxConfigBase::Create() will create a wxFileConfig (if it's
-//  FALSE) or wxRegConfig (if it's true and we're under Win32) or wxIniConfig
-//  (under Win16))
+//  FALSE) or wxRegConfig (if it's true and we're under Win32))
 #ifndef   wxUSE_CONFIG_NATIVE
   #define wxUSE_CONFIG_NATIVE 1
 #endif
@@ -320,12 +319,9 @@ private:
 // ----------------------------------------------------------------------------
 
 // under Windows we prefer to use the native implementation
+// wxIniConfig isn't native anywhere after droping win16 in wxWidgets 2.6
 #if defined(__WXMSW__) && wxUSE_CONFIG_NATIVE
-  #ifdef __WIN32__
     #define wxConfig  wxRegConfig
-  #else  //WIN16
-    #define wxConfig  wxIniConfig
-  #endif
 #else // either we're under Unix or wish to use files even under Windows
   #define wxConfig  wxFileConfig
 #endif
diff --git a/include/wx/dc.h b/include/wx/dc.h
index 777ee31702..f805dd61ac 100644
--- a/include/wx/dc.h
+++ b/include/wx/dc.h
@@ -596,7 +596,6 @@ public:
     // ------------------
 
     // for compatibility with the old code when wxCoord was long everywhere
-#ifndef __WIN16__
     void GetTextExtent(const wxString& string,
                        long *x, long *y,
                        long *descent = NULL,
@@ -645,7 +644,6 @@ public:
         if (w) *w = ww;
         if (h) *h = hh;
     }
-#endif // !Win16
 
 protected:
     // the pure virtual functions which should be implemented by wxDC
diff --git a/include/wx/defs.h b/include/wx/defs.h
index 27199b41b3..d2bd046176 100644
--- a/include/wx/defs.h
+++ b/include/wx/defs.h
@@ -234,11 +234,7 @@ typedef int wxWindowID;
 /*  general, but there are places where you can use them to advantage */
 /*  without totally breaking ports that cannot use them.  If you do, then */
 /*  wrap it in this guard, but such cases should still be relatively rare. */
-#ifndef __WIN16__
-    #define wxUSE_NESTED_CLASSES    1
-#else
-    #define wxUSE_NESTED_CLASSES    0
-#endif
+#define wxUSE_NESTED_CLASSES    1
 
 /*  check for explicit keyword support */
 #ifndef HAVE_EXPLICIT
@@ -566,14 +562,8 @@ enum
     /*  to ensure compatibility with 2.0, we must use long */
     #define wxCoord long
 #else  /*  !wxUSE_COMPATIBLE_COORD_TYPES */
-    #ifdef __WIN16__
-        /*  under Win16, int is too small, so use long to allow for bigger */
-        /*  virtual canvases */
-        typedef long wxCoord;
-    #else /*  !Win16 */
         /*  other platforms we support have at least 32bit int - quite enough */
         typedef int wxCoord;
-    #endif /*  Win16/!Win16 */
 #endif /*  wxUSE_COMPATIBLE_COORD_TYPES/!wxUSE_COMPATIBLE_COORD_TYPES */
 
 
@@ -2158,17 +2148,9 @@ typedef WX_NSView WXWidget; /*  wxWindows BASE definition */
 #ifdef __WXMSW__
 
 /*  the keywords needed for WinMain() declaration */
-#ifdef __WIN16__
-#  ifdef __VISUALC__
-#    define WXFAR __far
-#  else
-#    define WXFAR _far
-#  endif
-#else  /*  Win32 */
-#  ifndef WXFAR
+#ifndef WXFAR
 #    define WXFAR
-#  endif
-#endif /*  Win16/32 */
+#endif
 
 /*  Stand-ins for Windows types to avoid #including all of windows.h */
 typedef void *          WXHWND;
diff --git a/include/wx/dragimag.h b/include/wx/dragimag.h
index 6cea95e034..2563a895fd 100644
--- a/include/wx/dragimag.h
+++ b/include/wx/dragimag.h
@@ -8,32 +8,32 @@ class WXDLLEXPORT wxMemoryDC;
 class WXDLLEXPORT wxDC;
 
 #if defined(__WXMSW__)
-#if defined(__WIN16__)  || defined(__WXUNIVERSAL__)
-#include "wx/generic/dragimgg.h"
-#define wxDragImage wxGenericDragImage
+#   if defined(__WXUNIVERSAL__)
+#       include "wx/generic/dragimgg.h"
+#       define wxDragImage wxGenericDragImage
+#   else
+#       include "wx/msw/dragimag.h"
+#   endif
 
-#else
-#include "wx/msw/dragimag.h"
-#endif
 #elif defined(__WXMOTIF__)
-#include "wx/generic/dragimgg.h"
-#define wxDragImage wxGenericDragImage
+#   include "wx/generic/dragimgg.h"
+#   define wxDragImage wxGenericDragImage
 
 #elif defined(__WXGTK__)
-#include "wx/generic/dragimgg.h"
-#define wxDragImage wxGenericDragImage
+#   include "wx/generic/dragimgg.h"
+#   define wxDragImage wxGenericDragImage
 
 #elif defined(__WXX11__)
-#include "wx/generic/dragimgg.h"
-#define wxDragImage wxGenericDragImage
+#   include "wx/generic/dragimgg.h"
+#   define wxDragImage wxGenericDragImage
 
 #elif defined(__WXMAC__)
-#include "wx/generic/dragimgg.h"
-#define wxDragImage wxGenericDragImage
+#   include "wx/generic/dragimgg.h"
+#   define wxDragImage wxGenericDragImage
 
 #elif defined(__WXPM__)
-#include "wx/generic/dragimgg.h"
-#define wxDragImage wxGenericDragImage
+#   include "wx/generic/dragimgg.h"
+#   define wxDragImage wxGenericDragImage
 
 #endif
 
diff --git a/include/wx/event.h b/include/wx/event.h
index 17d67521a9..29100ac661 100644
--- a/include/wx/event.h
+++ b/include/wx/event.h
@@ -754,7 +754,6 @@ public:
             *ypos = m_y;
     }
 
-#ifndef __WIN16__
     void GetPosition(long *xpos, long *ypos) const
     {
         if (xpos)
@@ -762,7 +761,6 @@ public:
         if (ypos)
             *ypos = (long)m_y;
     }
-#endif
 
     // Find the position of the event
     wxPoint GetPosition() const { return wxPoint(m_x, m_y); }
@@ -905,13 +903,11 @@ public:
         if (ypos) *ypos = m_y;
     }
 
-#ifndef __WIN16__
     void GetPosition(long *xpos, long *ypos) const
     {
         if (xpos) *xpos = (long)m_x;
         if (ypos) *ypos = (long)m_y;
     }
-#endif
 
     wxPoint GetPosition() const
         { return wxPoint(m_x, m_y); }
diff --git a/include/wx/filefn.h b/include/wx/filefn.h
index eb714186e3..65e3396aa0 100644
--- a/include/wx/filefn.h
+++ b/include/wx/filefn.h
@@ -39,8 +39,6 @@
 
 #if defined(__VISUALC__) || ( defined(__MWERKS__) && defined( __INTEL__) )
     typedef _off_t off_t;
-#elif defined(__BORLANDC__) && defined(__WIN16__)
-    typedef long off_t;
 #elif defined(__SYMANTEC__)
     typedef long off_t;
 #elif defined(__MWERKS__) && !defined(__INTEL__) && !defined(__MACH__)
diff --git a/include/wx/generic/imaglist.h b/include/wx/generic/imaglist.h
index 72c4f68694..3eef4e40cc 100644
--- a/include/wx/generic/imaglist.h
+++ b/include/wx/generic/imaglist.h
@@ -86,7 +86,7 @@ private:
     DECLARE_DYNAMIC_CLASS(wxGenericImageList)
 };
 
-#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
+#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
 /*
  * wxImageList has to be a real class or we have problems with
  * the run-time information.
@@ -104,7 +104,7 @@ public:
     {
     }
 };
-#endif // !__WXMSW__ || __WIN16__ || __WXUNIVERSAL__
+#endif // !__WXMSW__ || __WXUNIVERSAL__
 
 #endif  // __IMAGELISTH_G__
 
diff --git a/include/wx/generic/listctrl.h b/include/wx/generic/listctrl.h
index 5eb658e02c..47ba79defe 100644
--- a/include/wx/generic/listctrl.h
+++ b/include/wx/generic/listctrl.h
@@ -37,7 +37,7 @@ class WXDLLEXPORT wxDropTarget;
 class WXDLLEXPORT wxListItem;
 class WXDLLEXPORT wxListEvent;
 
-#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
+#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
 class WXDLLEXPORT wxListCtrl;
 #define wxImageListType wxImageList
 #else
@@ -247,7 +247,7 @@ private:
     DECLARE_DYNAMIC_CLASS(wxGenericListCtrl);
 };
 
-#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
+#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
 /*
  * wxListCtrl has to be a real class or we have problems with
  * the run-time information.
@@ -270,6 +270,6 @@ public:
     {
     }
 };
-#endif // !__WXMSW__ || __WIN16__ || __WXUNIVERSAL__
+#endif // !__WXMSW__ || __WXUNIVERSAL__
 
 #endif // __LISTCTRLH_G__
diff --git a/include/wx/generic/treectlg.h b/include/wx/generic/treectlg.h
index f82e154ac7..db05419223 100644
--- a/include/wx/generic/treectlg.h
+++ b/include/wx/generic/treectlg.h
@@ -495,7 +495,7 @@ private:
     DECLARE_NO_COPY_CLASS(wxGenericTreeCtrl)
 };
 
-#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
+#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
 /*
  * wxTreeCtrl has to be a real class or we have problems with
  * the run-time information.
@@ -518,7 +518,7 @@ public:
     {
     }
 };
-#endif // !__WXMSW__ || __WIN16__ || __WXUNIVERSAL__
+#endif // !__WXMSW__ || __WXUNIVERSAL__
 
 #endif // wxUSE_TREECTRL
 
diff --git a/include/wx/isql.h b/include/wx/isql.h
index 5d4bb72fe2..fd2f4c1ad8 100644
--- a/include/wx/isql.h
+++ b/include/wx/isql.h
@@ -26,14 +26,7 @@
 #ifndef _ISQL_H
 #define _ISQL_H
 
-#if defined(__WIN16__)
-
-#define SQL_API EXPORT CALLBACK
-#ifndef EXPORT
-#define EXPORT _export
-#endif
-
-#elif defined(WIN32)
+#if defined(WIN32)
 #define SQL_API				__stdcall
 
 #ifndef FAR
diff --git a/include/wx/mac/setup0.h b/include/wx/mac/setup0.h
index c0b2f7642e..3d2dfd0864 100644
--- a/include/wx/mac/setup0.h
+++ b/include/wx/mac/setup0.h
@@ -226,7 +226,7 @@
 // library without it if you have no use for it - this will result in a
 // somewhat smaller and faster operation.
 //
-// This is ignored under Win16, threads are only supported under Win32.
+// Threads are only supported under Win32.
 //
 // Default is 1
 //
diff --git a/include/wx/metafile.h b/include/wx/metafile.h
index 78908d8df4..ba83cfa3e2 100644
--- a/include/wx/metafile.h
+++ b/include/wx/metafile.h
@@ -20,7 +20,7 @@
 #define wxMakeMetaFilePlaceable wxMakeMetafilePlaceable
 
 #if defined(__WXMSW__)
-    #if defined(__WIN32__) && wxUSE_ENH_METAFILE
+    #if wxUSE_ENH_METAFILE
         #include "wx/msw/enhmeta.h"
 
         // map all metafile classes to enh metafile
@@ -33,7 +33,7 @@
             // this flag will be set if wxMetafile class is wxEnhMetaFile
             #define wxMETAFILE_IS_ENH
         #endif // wxUSE_WIN_METAFILES_ALWAYS
-    #else // Win16
+    #else // !wxUSE_ENH_METAFILE
         #include "wx/msw/metafile.h"
     #endif
 #elif defined(__WXPM__)
diff --git a/include/wx/msw/ole/uuid.h b/include/wx/msw/ole/uuid.h
index 5b0875fe32..c194a4e417 100644
--- a/include/wx/msw/ole/uuid.h
+++ b/include/wx/msw/ole/uuid.h
@@ -32,8 +32,6 @@
       unsigned short  Data3;
       unsigned char   Data4[8];
     } UUID;                     // UUID = GUID = CLSID = LIBID = IID
-  #else   // WIN16
-    #error "Don't know about UUIDs on this platform"
   #endif  // WIN32
 #endif  // UUID_DEFINED
 
diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h
index 8337606c22..528a5ba437 100644
--- a/include/wx/msw/private.h
+++ b/include/wx/msw/private.h
@@ -299,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;
 }
@@ -314,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;
 }
diff --git a/include/wx/msw/statbmp.h b/include/wx/msw/statbmp.h
index 7aed8c8b12..e778d2e373 100644
--- a/include/wx/msw/statbmp.h
+++ b/include/wx/msw/statbmp.h
@@ -74,9 +74,6 @@ public:
     // -------------------------------
 
     // implement base class virtuals
-#ifdef __WIN16__
-    virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
-#endif // __WIN16__
     virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
 
 protected:
diff --git a/include/wx/msw/tbarmsw.h b/include/wx/msw/tbarmsw.h
index aa0b9dc33d..388b501c08 100644
--- a/include/wx/msw/tbarmsw.h
+++ b/include/wx/msw/tbarmsw.h
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        wx/msw/tbarmsw.h
-// Purpose:     wxToolBar for Win16
+// Purpose:     wxToolBar for older Windowses
 // Author:      Julian Smart
 // Modified by: 13.12.99 by VZ during toolbar classes reorganization
 // Created:     01/02/97
@@ -25,7 +25,7 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxButtonBarNameStr;
 class WXDLLEXPORT wxMemoryDC;
 
 // ----------------------------------------------------------------------------
-// wxToolBar for Win16
+// wxToolBar for older Windowses
 // ----------------------------------------------------------------------------
 
 class WXDLLEXPORT wxToolBar : public wxToolBarBase
diff --git a/include/wx/msw/textctrl.h b/include/wx/msw/textctrl.h
index 71ac994ad9..e0928b1174 100644
--- a/include/wx/msw/textctrl.h
+++ b/include/wx/msw/textctrl.h
@@ -147,12 +147,6 @@ public:
     virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
             WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
 
-    // In WIN16, need to override normal erasing because
-    // Ctl3D doesn't use the wxWindows background colour.
-#ifdef __WIN16__
-    void OnEraseBackground(wxEraseEvent& event);
-#endif
-
 #if wxUSE_RICHEDIT
     virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
 
diff --git a/include/wx/platform.h b/include/wx/platform.h
index 91f11101ec..6085934aa8 100644
--- a/include/wx/platform.h
+++ b/include/wx/platform.h
@@ -311,7 +311,7 @@
 
     /* to be changed for Win64! */
 #    ifndef __WIN32__
-#        define __WIN16__
+#        error "__WIN32__ should be defined for Win32 and Win64, Win16 is not supported"
 #    endif
 
     /*
diff --git a/include/wx/spinctrl.h b/include/wx/spinctrl.h
index 4f3f067d26..7910a98de3 100644
--- a/include/wx/spinctrl.h
+++ b/include/wx/spinctrl.h
@@ -55,7 +55,7 @@ protected:
 
 #if defined(__WXUNIVERSAL__)
     #include "wx/generic/spinctlg.h"
-#elif defined(__WXMSW__) && defined(__WIN32__)
+#elif defined(__WXMSW__)
     #include "wx/msw/spinctrl.h"
 #elif defined(__WXPM__)
     #include "wx/os2/spinctrl.h"
@@ -65,8 +65,6 @@ protected:
     #include "wx/generic/spinctlg.h"
 #elif defined(__WXMAC__)
     #include "wx/mac/spinctrl.h"
-#else // Win16 || !Win
-    #include "wx/generic/spinctlg.h"
 #endif // platform
 
 #define EVT_SPINCTRL(id, fn) \
diff --git a/include/wx/treectrl.h b/include/wx/treectrl.h
index 5f2c44557a..080de6b24d 100644
--- a/include/wx/treectrl.h
+++ b/include/wx/treectrl.h
@@ -10,11 +10,7 @@
 #if defined(__WXUNIVERSAL__)
     #include "wx/generic/treectlg.h"
 #elif defined(__WXMSW__)
-    #ifdef __WIN16__
-        #include "wx/generic/treectlg.h"
-    #else
         #include "wx/msw/treectrl.h"
-    #endif
 #elif defined(__WXMOTIF__)
     #include "wx/generic/treectlg.h"
 #elif defined(__WXGTK__)
diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h
index 6a047fe88a..f0eea9f373 100644
--- a/include/wx/wxchar.h
+++ b/include/wx/wxchar.h
@@ -22,10 +22,7 @@
 
 /* check whether we have wchar_t and which size it is if we do */
 #if !defined(wxUSE_WCHAR_T)
-    #if defined(__WIN16__)
-        /* no wchar_t under Win16 regadrless of compiler used */
-        #define wxUSE_WCHAR_T 0
-    #elif defined(__UNIX__)
+    #if defined(__UNIX__)
         #if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) || defined(__DARWIN__)
             #define wxUSE_WCHAR_T 1
         #else
diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp
index 489ed36f65..f85667d24b 100644
--- a/samples/controls/controls.cpp
+++ b/samples/controls/controls.cpp
@@ -45,17 +45,9 @@
     #include "icons/gauge.xpm"
 #endif
 
-#ifdef __WIN16__
-    // Win16 doesn't have them
-    #ifdef wxUSE_SPINBTN
-    #undef wxUSE_SPINBTN
-    #endif
-    #define wxUSE_SPINBTN 0
-#else
-    #ifndef wxUSE_SPINBTN
+#ifndef wxUSE_SPINBTN
     #define wxUSE_SPINBTN 1
-    #endif
-#endif // __WIN16__
+#endif
 
 #include "wx/progdlg.h"
 
@@ -793,7 +785,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
 
     panel = new wxPanel(m_notebook);
 
-#if !defined(__WXMOTIF__) && !defined(__WIN16__)  // wxStaticBitmap not working under Motif yet; and icons not allowed under WIN16.
+#if !defined(__WXMOTIF__) // wxStaticBitmap not working under Motif yet.
     wxIcon icon = wxArtProvider::GetIcon(wxART_INFORMATION);
     (void) new wxStaticBitmap( panel, wxID_ANY, icon, wxPoint(10, 10) );
 
diff --git a/samples/notebook/notebook.cpp b/samples/notebook/notebook.cpp
index c2f40aa6d6..1328a8fe7b 100644
--- a/samples/notebook/notebook.cpp
+++ b/samples/notebook/notebook.cpp
@@ -33,7 +33,7 @@ bool MyApp::OnInit()
 
     // Problem with generic wxNotebook implementation whereby it doesn't size
     // properly unless you set the size again
-#if defined(__WIN16__) || defined(__WXMOTIF__)
+#if defined(__WXMOTIF__)
     int width, height;
     frame->GetSize(& width, & height);
     frame->SetSize(-1, -1, width, height);
diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp
index dfad53794b..53667862aa 100644
--- a/src/common/cmndata.cpp
+++ b/src/common/cmndata.cpp
@@ -390,10 +390,8 @@ void wxPrintData::ConvertToNative()
 
         //// Collation
 
-#ifndef __WIN16__
         devMode->dmCollate = (m_printCollate ? DMCOLLATE_TRUE : DMCOLLATE_FALSE);
         devMode->dmFields |= DM_COLLATE;
-#endif
 
         //// Number of copies
 
@@ -516,7 +514,6 @@ void wxPrintData::ConvertFromNative()
 
         //// Collation
 
-#ifndef __WIN16__
         if (devMode->dmFields & DM_COLLATE)
         {
             if (devMode->dmCollate == DMCOLLATE_TRUE)
@@ -524,7 +521,6 @@ void wxPrintData::ConvertFromNative()
             else
                 m_printCollate = FALSE;
         }
-#endif
 
         //// Number of copies
 
diff --git a/src/common/config.cpp b/src/common/config.cpp
index 9b5612a4b0..535a272f1e 100644
--- a/src/common/config.cpp
+++ b/src/common/config.cpp
@@ -88,11 +88,7 @@ wxConfigBase *wxConfigBase::Create()
   if ( ms_bAutoCreate && ms_pConfig == NULL ) {
     ms_pConfig =
     #if defined(__WXMSW__) && wxUSE_CONFIG_NATIVE
-      #ifdef __WIN32__
         new wxRegConfig(wxTheApp->GetAppName(), wxTheApp->GetVendorName());
-      #else  //WIN16
-        new wxIniConfig(wxTheApp->GetAppName(), wxTheApp->GetVendorName());
-      #endif
     #else // either we're under Unix or wish to use files even under Windows
       new wxFileConfig(wxTheApp->GetAppName());
     #endif
diff --git a/src/common/filename.cpp b/src/common/filename.cpp
index 02e83a3506..0659a8b565 100644
--- a/src/common/filename.cpp
+++ b/src/common/filename.cpp
@@ -585,7 +585,7 @@ wxFileName::CreateTempFileName(const wxString& prefix, wxFile *fileTemp)
     }
 
 #elif defined(__WINDOWS__) && !defined(__WXMICROWIN__)
-#ifdef __WIN32__
+
     if ( dir.empty() )
     {
         if ( !::GetTempPath(MAX_PATH, wxStringBuffer(dir, MAX_PATH + 1)) )
@@ -612,12 +612,6 @@ wxFileName::CreateTempFileName(const wxString& prefix, wxFile *fileTemp)
 
         path.clear();
     }
-#else // Win16
-    if ( !::GetTempFileName(NULL, prefix, 0, wxStringBuffer(path, 1025)) )
-    {
-        path.clear();
-    }
-#endif // Win32/16
 
 #else // !Windows
     if ( dir.empty() )
diff --git a/src/common/log.cpp b/src/common/log.cpp
index 4da49d8fe9..9ec3b7ae46 100644
--- a/src/common/log.cpp
+++ b/src/common/log.cpp
@@ -721,12 +721,7 @@ static void wxLogWrap(FILE *f, const char *pszPrefix, const char *psz)
 unsigned long wxSysErrorCode()
 {
 #if defined(__WXMSW__) && !defined(__WXMICROWIN__)
-#ifdef  __WIN32__
     return ::GetLastError();
-#else   //WIN16
-    // TODO what to do on Windows 3.1?
-    return 0;
-#endif  //WIN16/32
 #else   //Unix
     return errno;
 #endif  //Win/Unix
@@ -739,7 +734,6 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode)
         nErrCode = wxSysErrorCode();
 
 #if defined(__WXMSW__) && !defined(__WXMICROWIN__)
-#ifdef  __WIN32__
     static wxChar s_szBuf[LOG_BUFFER_SIZE / 2];
 
     // get error message from system
@@ -771,11 +765,7 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode)
     }
 
     return s_szBuf;
-#else   //Win16
-    // TODO
-    return NULL;
-#endif // Win16/32
-#else   // Unix
+#else   // Unix-WXMICROWIN
 #if wxUSE_UNICODE
     static wxChar s_szBuf[LOG_BUFFER_SIZE / 2];
     wxConvCurrent->MB2WC(s_szBuf, strerror(nErrCode), WXSIZEOF(s_szBuf) -1);
@@ -783,7 +773,7 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode)
 #else
     return strerror((int)nErrCode);
 #endif
-#endif  // Win/Unix
+#endif  // Win/Unix-WXMICROWIN
 }
 
 #endif // wxUSE_LOG
diff --git a/src/common/valgen.cpp b/src/common/valgen.cpp
index 4cf521922f..b4d296e619 100644
--- a/src/common/valgen.cpp
+++ b/src/common/valgen.cpp
@@ -168,7 +168,7 @@ bool wxGenericValidator::TransferToWindow(void)
         }
     } else
 #endif
-#if wxUSE_SPINCTRL && !defined(__WIN16__) && !defined(__WXMOTIF__)
+#if wxUSE_SPINCTRL && !defined(__WXMOTIF__)
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
@@ -179,7 +179,7 @@ bool wxGenericValidator::TransferToWindow(void)
         }
     } else
 #endif
-#if wxUSE_SPINBTN && !defined(__WIN16__)
+#if wxUSE_SPINBTN
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
     {
         wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
@@ -284,7 +284,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
     // array controls
-#if wxUSE_CHECKLISTBOX && !defined(__WIN16__)
+#if wxUSE_CHECKLISTBOX
     // NOTE: wxCheckListBox is a wxListBox, so wxCheckListBox MUST come first:
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
     {
@@ -398,7 +398,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     }
   } else
 #endif
-#if wxUSE_SPINCTRL && !defined(__WIN16__) && !defined(__WXMOTIF__)
+#if wxUSE_SPINCTRL && !defined(__WXMOTIF__)
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
@@ -409,7 +409,7 @@ bool wxGenericValidator::TransferFromWindow(void)
         }
     } else
 #endif
-#if wxUSE_SPINBTN && !defined(__WIN16__)
+#if wxUSE_SPINBTN
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
   {
     wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
@@ -502,7 +502,6 @@ bool wxGenericValidator::TransferFromWindow(void)
 #endif
   // array controls
 #if wxUSE_CHECKLISTBOX
-#ifndef __WIN16__
   // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox MUST come first:
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
   {
@@ -527,7 +526,6 @@ bool wxGenericValidator::TransferFromWindow(void)
       return FALSE;
   } else
 #endif
-#endif
 #if wxUSE_LISTBOX
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
   {
diff --git a/src/common/variant.cpp b/src/common/variant.cpp
index 9d85126a32..79f7c116a7 100644
--- a/src/common/variant.cpp
+++ b/src/common/variant.cpp
@@ -713,18 +713,9 @@ bool wxVariantDataChar::Read(wxString& str)
  * wxVariantDataString
  */
 
-#if defined(__BORLANDC__) && defined(__WIN16__)
-// Change name because of truncation
-#define wxVariantDataString wxVariantStringData
-#endif
-
 class WXDLLIMPEXP_BASE wxVariantDataString: public wxVariantData
 {
-#if defined(__BORLANDC__) && defined(__WIN16__)
-DECLARE_DYNAMIC_CLASS(wxVariantStringData)
-#else
 DECLARE_DYNAMIC_CLASS(wxVariantDataString)
-#endif
 public:
     wxVariantDataString() { }
     wxVariantDataString(const wxString& value) { m_value = value; }
@@ -816,11 +807,7 @@ bool wxVariantDataString::Read(wxString& str)
     return TRUE;
 }
 
-#if defined(__BORLANDC__) && defined(__WIN16__)
-IMPLEMENT_DYNAMIC_CLASS(wxVariantStringData, wxVariantData)
-#else
 IMPLEMENT_DYNAMIC_CLASS(wxVariantDataString, wxVariantData)
-#endif
 
 /*
  * wxVariantDataVoidPtr
diff --git a/src/common/xpmdecod.cpp b/src/common/xpmdecod.cpp
index cc0e2bad48..358131f241 100644
--- a/src/common/xpmdecod.cpp
+++ b/src/common/xpmdecod.cpp
@@ -236,11 +236,7 @@ wxImage wxXPMDecoder::ReadFile(wxInputStream& stream)
      */
     wxImage img = ReadData(xpm_lines);
 
-#ifdef __WIN16__
-    delete[] (char**) xpm_lines;
-#else
     delete[] xpm_lines;
-#endif
 
     return img;
 }
diff --git a/src/common/zstream.cpp b/src/common/zstream.cpp
index 678b0d7485..6c1a0c423d 100644
--- a/src/common/zstream.cpp
+++ b/src/common/zstream.cpp
@@ -38,11 +38,7 @@
 #endif
 
 enum {
-#ifdef __WIN16__
-    ZSTREAM_BUFFER_SIZE = 4096
-#else
     ZSTREAM_BUFFER_SIZE = 16384
-#endif
 };
 
 //////////////////////
diff --git a/src/generic/dragimgg.cpp b/src/generic/dragimgg.cpp
index 20e90cf378..5890d2dc9a 100644
--- a/src/generic/dragimgg.cpp
+++ b/src/generic/dragimgg.cpp
@@ -44,11 +44,7 @@
 #include "wx/log.h"
 #include "wx/intl.h"
 
-#ifdef __WIN16__
-#define wxUSE_IMAGE_IN_DRAGIMAGE 0
-#else
 #define wxUSE_IMAGE_IN_DRAGIMAGE 1
-#endif
 
 #if wxUSE_IMAGE_IN_DRAGIMAGE
 #include "wx/image.h"
diff --git a/src/generic/imaglist.cpp b/src/generic/imaglist.cpp
index 8aac4fa72e..ea69fbfaf2 100644
--- a/src/generic/imaglist.cpp
+++ b/src/generic/imaglist.cpp
@@ -29,7 +29,7 @@
 
 IMPLEMENT_DYNAMIC_CLASS(wxGenericImageList, wxObject)
 
-#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
+#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
 /*
  * wxImageList has to be a real class or we have problems with
  * the run-time information.
diff --git a/src/generic/logg.cpp b/src/generic/logg.cpp
index c3d62b8f29..6dafd5d079 100644
--- a/src/generic/logg.cpp
+++ b/src/generic/logg.cpp
@@ -754,7 +754,6 @@ wxLogDialog::wxLogDialog(wxWindow *parent,
     m_btnDetails = new wxButton(this, wxID_MORE, ms_details + EXPAND_SUFFIX);
     sizerButtons->Add(m_btnDetails, 0, wxCENTRE | wxTOP, MARGIN/2 - 1);
 
-#ifndef __WIN16__
     wxBitmap bitmap;
     switch ( style & wxICON_MASK )
     {
@@ -783,7 +782,6 @@ wxLogDialog::wxLogDialog(wxWindow *parent,
             wxFAIL_MSG(_T("incorrect log style"));
     }
     sizerAll->Add(new wxStaticBitmap(this, -1, bitmap), 0);
-#endif // !Win16
 
     const wxString& message = messages.Last();
     sizerAll->Add(CreateTextSizer(message), 1,
@@ -862,7 +860,6 @@ void wxLogDialog::CreateDetailsControls()
 
     bool loadedIcons = TRUE;
 
-#ifndef __WIN16__
     for ( size_t icon = 0; icon < WXSIZEOF(icons); icon++ )
     {
         wxBitmap bmp = wxArtProvider::GetBitmap(icons[icon], wxART_MESSAGE_BOX,
@@ -881,7 +878,6 @@ void wxLogDialog::CreateDetailsControls()
     }
 
     m_listctrl->SetImageList(imageList, wxIMAGE_LIST_SMALL);
-#endif // !Win16
 
     // and fill it
     wxString fmt = wxLog::GetTimestamp();
@@ -896,7 +892,6 @@ void wxLogDialog::CreateDetailsControls()
     {
         int image;
 
-#ifndef __WIN16__
         if ( loadedIcons )
         {
             switch ( m_severity[n] )
@@ -914,7 +909,6 @@ void wxLogDialog::CreateDetailsControls()
             }
         }
         else // failed to load images
-#endif // !Win16
         {
             image = -1;
         }
diff --git a/src/generic/notebook.cpp b/src/generic/notebook.cpp
index 756369436e..719d8bba0d 100644
--- a/src/generic/notebook.cpp
+++ b/src/generic/notebook.cpp
@@ -162,13 +162,10 @@ int wxNotebook::SetSelection(size_t nPage)
 {
     wxASSERT( IS_VALID_PAGE(nPage) );
 
-#if defined (__WIN16__)
-    m_tabView->SetTabSelection(nPage);
-#else
     wxNotebookPage* pPage = GetPage(nPage);
 
     m_tabView->SetTabSelection((int) (long) pPage);
-#endif
+
     // TODO
     return 0;
 }
@@ -188,11 +185,7 @@ void wxNotebook::AdvanceSelection(bool bForward)
 bool wxNotebook::SetPageText(size_t nPage, const wxString& strText)
 {
     wxASSERT( IS_VALID_PAGE(nPage) );
-#if defined (__WIN16__)
-	m_tabView->SetTabText(nPage, strText);
-    Refresh();
-    return TRUE;
-#else
+
     wxNotebookPage* page = GetPage(nPage);
     if (page)
     {
@@ -200,7 +193,7 @@ bool wxNotebook::SetPageText(size_t nPage, const wxString& strText)
         Refresh();
         return TRUE;
     }
-#endif
+
     return FALSE;
 }
 
@@ -208,15 +201,11 @@ wxString wxNotebook::GetPageText(size_t nPage) const
 {
     wxASSERT( IS_VALID_PAGE(nPage) );
 
-#if defined (__WIN16__)
-    return m_tabView->GetTabText(nPage);
-#else
     wxNotebookPage* page = ((wxNotebook*)this)->GetPage(nPage);
     if (page)
         return m_tabView->GetTabText((int) (long) page);
     else
         return wxEmptyString;
-#endif
 }
 
 int wxNotebook::GetPageImage(size_t nPage) const
@@ -269,11 +258,8 @@ bool wxNotebook::DeletePage(size_t nPage)
     }
 
     wxNotebookPage* pPage = GetPage(nPage);
-#if defined (__WIN16__)
-    m_tabView->RemoveTab(nPage);
-#else
+
     m_tabView->RemoveTab((int) (long) pPage);
-#endif
 
     m_pages.Remove(pPage);
     delete pPage;
@@ -286,11 +272,9 @@ bool wxNotebook::DeletePage(size_t nPage)
     else if (m_nSelection > -1)
     {
       m_nSelection = -1;
-#if defined (__WIN16__)
-      m_tabView->SetTabSelection(0, FALSE);
-#else
+
       m_tabView->SetTabSelection((int) (long) GetPage(0), FALSE);
-#endif
+
       if (m_nSelection != 0)
         ChangePage(-1, 0);
     }
@@ -323,11 +307,8 @@ wxWindow* wxNotebook::DoRemovePage(size_t nPage)
     //    m_pages[nPage]->Lower();
 
     wxNotebookPage* pPage = GetPage(nPage);
-#if defined (__WIN16__)
-    m_tabView->RemoveTab(nPage);
-#else
+
     m_tabView->RemoveTab((int) (long) pPage);
-#endif
 
     m_pages.Remove(pPage);
 
@@ -406,12 +387,8 @@ bool wxNotebook::InsertPage(size_t nPage,
     wxASSERT( pPage != NULL );
     wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE );
 
-// For 16 bit integers (tabs limited to 32768)
-#if defined (__WIN16__)
-    m_tabView->AddTab(nPage, strText);
-#else
     m_tabView->AddTab((int) (long) pPage, strText);
-#endif
+
     if (!bSelect)
       pPage->Show(FALSE);
 
@@ -421,11 +398,8 @@ bool wxNotebook::InsertPage(size_t nPage,
     if (bSelect)
     {
         // This will cause ChangePage to be called, via OnSelPage
-#if defined (__WIN16__)
-        m_tabView->SetTabSelection(nPage, TRUE);
-#else
+
         m_tabView->SetTabSelection((int) (long) pPage, TRUE);
-#endif
     }
 
     // some page must be selected: either this one or the first one if there is
@@ -689,10 +663,6 @@ void wxNotebookTabView::OnTabActivate(int activateId, int deactivateId)
 
   wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_notebook->GetId());
 
-#if defined (__WIN16__)
-  int activatePos = activateId;
-  int deactivatePos = deactivateId;
-#else
   // Translate from wxTabView's ids (which aren't position-dependent)
   // to wxNotebook's (which are).
   wxNotebookPage* pActive = (wxNotebookPage*) activateId;
@@ -701,7 +671,6 @@ void wxNotebookTabView::OnTabActivate(int activateId, int deactivateId)
   int activatePos = m_notebook->FindPagePosition(pActive);
   int deactivatePos = m_notebook->FindPagePosition(pDeactive);
 
-#endif
   event.SetEventObject(m_notebook);
   event.SetSelection(activatePos);
   event.SetOldSelection(deactivatePos);
@@ -717,10 +686,6 @@ bool wxNotebookTabView::OnTabPreActivate(int activateId, int deactivateId)
   {
     wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_notebook->GetId());
 
-#if defined (__WIN16__)
-    int activatePos = activateId;
-    int deactivatePos = deactivateId;
-#else
     // Translate from wxTabView's ids (which aren't position-dependent)
     // to wxNotebook's (which are).
     wxNotebookPage* pActive = (wxNotebookPage*) activateId;
@@ -729,7 +694,6 @@ bool wxNotebookTabView::OnTabPreActivate(int activateId, int deactivateId)
     int activatePos = m_notebook->FindPagePosition(pActive);
     int deactivatePos = m_notebook->FindPagePosition(pDeactive);
 
-#endif
     event.SetEventObject(m_notebook);
     event.SetSelection(activatePos);
     event.SetOldSelection(deactivatePos);
diff --git a/src/generic/numdlgg.cpp b/src/generic/numdlgg.cpp
index e9ef27266a..624a2f4c7b 100644
--- a/src/generic/numdlgg.cpp
+++ b/src/generic/numdlgg.cpp
@@ -46,7 +46,7 @@
   #include "wx/statline.h"
 #endif
 
-#if !defined(__WIN16__) && wxUSE_SPINCTRL
+#if wxUSE_SPINCTRL
 #include "wx/spinctrl.h"
 #endif
 
@@ -105,7 +105,7 @@ wxNumberEntryDialog::wxNumberEntryDialog(wxWindow *parent,
     wxString valStr;
     valStr.Printf(wxT("%ld"), m_value);
     m_spinctrl = new wxSpinCtrl(this, -1, valStr, wxDefaultPosition, wxSize( 140, -1 ) );
-#if !defined(__WIN16__) && wxUSE_SPINCTRL
+#if wxUSE_SPINCTRL
     m_spinctrl->SetRange((int)m_min, (int)m_max);
 #endif
     inputsizer->Add( m_spinctrl, 1, wxCENTER | wxLEFT | wxRIGHT, 10 );
diff --git a/src/generic/sashwin.cpp b/src/generic/sashwin.cpp
index f026ed1b74..b713f12752 100644
--- a/src/generic/sashwin.cpp
+++ b/src/generic/sashwin.cpp
@@ -670,19 +670,11 @@ void wxSashWindow::SizeWindows()
 void wxSashWindow::InitColours()
 {
     // Shadow colours
-#ifndef __WIN16__
     m_faceColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE);
     m_mediumShadowColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW);
     m_darkShadowColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DDKSHADOW);
     m_lightShadowColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DLIGHT);
     m_hilightColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DHILIGHT);
-#else
-    m_faceColour = wxTheColourDatabase->Find("LIGHT GREY");
-    m_mediumShadowColour = wxTheColourDatabase->Find("GREY");
-    m_darkShadowColour = wxTheColourDatabase->Find("BLACK");
-    m_lightShadowColour = wxTheColourDatabase->Find("LIGHT GREY");
-    m_hilightColour = wxTheColourDatabase->Find("WHITE");
-#endif
 }
 
 void wxSashWindow::SetSashVisible(wxSashEdgePosition edge, bool sash)
diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp
index ee996625f1..97c309222a 100644
--- a/src/generic/treectlg.cpp
+++ b/src/generic/treectlg.cpp
@@ -681,7 +681,7 @@ BEGIN_EVENT_TABLE(wxGenericTreeCtrl,wxScrolledWindow)
     EVT_TREE_ITEM_GETTOOLTIP(-1, wxGenericTreeCtrl::OnGetToolTip)
 END_EVENT_TABLE()
 
-#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
+#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
 /*
  * wxTreeCtrl has to be a real class or we have problems with
  * the run-time information.
diff --git a/src/msw/accel.cpp b/src/msw/accel.cpp
index b25c03c146..5f82d74601 100644
--- a/src/msw/accel.cpp
+++ b/src/msw/accel.cpp
@@ -59,10 +59,7 @@ wxAcceleratorRefData::~wxAcceleratorRefData()
 {
   if (m_hAccel)
   {
-    // This function not available in WIN16
-#if !defined(__WIN16__)
     DestroyAcceleratorTable((HACCEL) m_hAccel);
-#endif
   }
   m_hAccel = 0 ;
 }
@@ -98,10 +95,8 @@ wxAcceleratorTable::wxAcceleratorTable(const wxString& resource)
 extern int wxCharCodeWXToMSW(int id, bool *isVirtual);
 
 // Create from an array
-#if !defined(__WIN16__)
 wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[])
 {
-    // Not available in WIN16
     m_refData = new wxAcceleratorRefData;
 
     ACCEL* arr = new ACCEL[n];
@@ -133,14 +128,6 @@ wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]
 
     M_ACCELDATA->m_ok = (M_ACCELDATA->m_hAccel != 0);
 }
-#else // Win16
-wxAcceleratorTable::wxAcceleratorTable(int WXUNUSED(n), const wxAcceleratorEntry WXUNUSED(entries)[])
-{
-    // No, we simply gracefully degrade; we don't expect the
-    // developer to pepper their code with #ifdefs just for this.
-    // wxFAIL_MSG("not implemented");
-}
-#endif // Win32/16
 
 bool wxAcceleratorTable::Ok() const
 {
diff --git a/src/msw/app.cpp b/src/msw/app.cpp
index d689dfa1e6..6143dbb852 100644
--- a/src/msw/app.cpp
+++ b/src/msw/app.cpp
@@ -276,13 +276,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 
 #if wxUSE_OLE || wxUSE_DRAG_AND_DROP
 
-#ifdef __WIN16__
-    // for OLE, enlarge message queue to be as large as possible
-    int iMsg = 96;
-    while (!SetMessageQueue(iMsg) && (iMsg -= 8))
-        ;
-#endif // Win16
-
 #if wxUSE_OLE
     // we need to initialize OLE library
 #ifdef __WXWINCE__
@@ -326,13 +319,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 
     wxWinHandleHash = new wxWinHashTable(wxKEY_INTEGER, 100);
 
-    // This is to foil optimizations in Visual C++ that throw out dummy.obj.
-    // PLEASE DO NOT ALTER THIS.
-#if defined(__VISUALC__) && defined(__WIN16__) && !defined(WXMAKINGDLL)
-    extern char wxDummyChar;
-    if (wxDummyChar) wxDummyChar++;
-#endif
-
 #if !defined(__WXMICROWIN__) && !defined(__WXWINCE__)
     wxSetKeyboardHook(TRUE);
 #endif
diff --git a/src/msw/bitmap.cpp b/src/msw/bitmap.cpp
index 6a2c74a221..37e69a0e5c 100644
--- a/src/msw/bitmap.cpp
+++ b/src/msw/bitmap.cpp
@@ -275,13 +275,7 @@ bool wxBitmap::CopyFromCursor(const wxCursor& cursor)
     if ( !cursor.Ok() )
         return FALSE;
 
-#ifdef __WIN16__
-    wxFAIL_MSG( _T("don't know how to convert cursor to bitmap") );
-
-    return FALSE;
-#else
     return CopyFromIconOrCursor(cursor);
-#endif // Win16
 }
 
 bool wxBitmap::CopyFromIcon(const wxIcon& icon)
@@ -291,37 +285,7 @@ bool wxBitmap::CopyFromIcon(const wxIcon& icon)
     if ( !icon.Ok() )
         return FALSE;
 
-    // GetIconInfo() doesn't exist under Win16 and I don't know any other way
-    // to create a bitmap from icon there - but using this way we won't have
-    // the mask (FIXME)
-#ifdef __WIN16__
-    int width = icon.GetWidth(),
-        height = icon.GetHeight();
-
-    // copy the icon to the bitmap
-    ScreenHDC hdcScreen;
-    HDC hdc = ::CreateCompatibleDC(hdcScreen);
-    HBITMAP hbitmap = ::CreateCompatibleBitmap(hdcScreen, width, height);
-    HBITMAP hbmpOld = (HBITMAP)::SelectObject(hdc, hbitmap);
-
-    ::DrawIcon(hdc, 0, 0, GetHiconOf(icon));
-
-    ::SelectObject(hdc, hbmpOld);
-    ::DeleteDC(hdc);
-
-    wxBitmapRefData *refData = new wxBitmapRefData;
-    m_refData = refData;
-
-    refData->m_width = width;
-    refData->m_height = height;
-    refData->m_depth = wxDisplayDepth();
-
-    refData->m_hBitmap = (WXHBITMAP)hbitmap;
-
-    return TRUE;
-#else // Win32
     return CopyFromIconOrCursor(icon);
-#endif // Win16/Win32
 }
 
 #if wxUSE_WXDIB
diff --git a/src/msw/caret.cpp b/src/msw/caret.cpp
index 63fc43ac08..a043aa174a 100644
--- a/src/msw/caret.cpp
+++ b/src/msw/caret.cpp
@@ -43,15 +43,9 @@
 // macros
 // ---------------------------------------------------------------------------
 
-// under Win16 the caret APIs are void but under Win32 they may return an
-// error code which we want to check - this macro does just this
-#ifdef __WIN16__
-    #define CALL_CARET_API(api, args)   api args
-#else // Win32
-    #define CALL_CARET_API(api, args)   \
+#define CALL_CARET_API(api, args)   \
         if ( !api args )                \
             wxLogLastError(_T(#api))
-#endif // Win16/32
 
 // ===========================================================================
 // implementation
diff --git a/src/msw/checklst.cpp b/src/msw/checklst.cpp
index 47867f2de0..3474192705 100644
--- a/src/msw/checklst.cpp
+++ b/src/msw/checklst.cpp
@@ -171,14 +171,6 @@ wxCheckListBoxItem::wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex)
   SetMarginWidth(GetDefaultMarginWidth());
 }
 
-/*
- * JACS - I've got the owner-draw stuff partially working with WIN16,
- * with a really horrible-looking cross for wxCheckListBox instead of a
- * check - could use a bitmap check-mark instead, defined in wx.rc.
- * Also there's a refresh problem whereby it doesn't always draw the
- * check until you click to the right of it, which is OK for WIN32.
- */
-
 bool wxCheckListBoxItem::OnDrawItem(wxDC& dc, const wxRect& rc,
                                     wxODAction act, wxODStatus stat)
 {
@@ -285,7 +277,6 @@ void wxCheckListBoxItem::Check(bool check)
 
     HWND hwndListbox = (HWND)m_pParent->GetHWND();
 
-    #ifdef __WIN32__
         RECT rcUpdate;
 
         if ( ::SendMessage(hwndListbox, LB_GETITEMRECT,
@@ -293,16 +284,6 @@ void wxCheckListBoxItem::Check(bool check)
         {
             wxLogDebug(wxT("LB_GETITEMRECT failed"));
         }
-    #else // Win16
-        // FIXME this doesn't work if the listbox is scrolled!
-        size_t nHeight = m_pParent->GetItemHeight();
-        size_t y = m_nIndex * nHeight;
-        RECT rcUpdate ;
-        rcUpdate.left   = 0 ;
-        rcUpdate.top    = y ;
-        rcUpdate.right  = GetDefaultMarginWidth() ;
-        rcUpdate.bottom = y + nHeight ;
-    #endif  // Win32/16
 
     InvalidateRect(hwndListbox, &rcUpdate, FALSE);
 }
@@ -555,7 +536,6 @@ void wxCheckListBox::OnLeftClick(wxMouseEvent& event)
 
 int wxCheckListBox::DoHitTestItem(wxCoord x, wxCoord y) const
 {
-  #ifdef __WIN32__
     int nItem = (int)::SendMessage
                              (
                               (HWND)GetHWND(),
@@ -563,10 +543,6 @@ int wxCheckListBox::DoHitTestItem(wxCoord x, wxCoord y) const
                               0,
                               MAKELPARAM(x, y)
                              );
-  #else // Win16
-    // FIXME this doesn't work when the listbox is scrolled!
-    int nItem = y / m_nItemHeight;
-  #endif // Win32/16
 
   return nItem >= m_noItems ? wxNOT_FOUND : nItem;
 }
diff --git a/src/msw/clipbrd.cpp b/src/msw/clipbrd.cpp
index 5c06269c92..842a9c94aa 100644
--- a/src/msw/clipbrd.cpp
+++ b/src/msw/clipbrd.cpp
@@ -161,7 +161,7 @@ bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat)
         case CF_BITMAP:
             return ::IsClipboardFormatAvailable(CF_DIB) != 0;
 
-#if wxUSE_ENH_METAFILE && !defined(__WIN16__) && !defined(__WXWINCE__)
+#if wxUSE_ENH_METAFILE && !defined(__WXWINCE__)
         case CF_METAFILEPICT:
             return ::IsClipboardFormatAvailable(CF_ENHMETAFILE) != 0;
 #endif // wxUSE_ENH_METAFILE
@@ -252,7 +252,7 @@ bool wxSetClipboardData(wxDataFormat dataFormat,
             }
 #endif // wxUSE_METAFILE
 
-#if wxUSE_ENH_METAFILE && !defined(__WIN16__) && !defined(__WXWINCE__)
+#if wxUSE_ENH_METAFILE && !defined(__WXWINCE__)
         case wxDF_ENHMETAFILE:
             {
                 wxEnhMetaFile *emf = (wxEnhMetaFile *)data;
diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp
index 7c60aa5121..26ef863e24 100644
--- a/src/msw/combobox.cpp
+++ b/src/msw/combobox.cpp
@@ -581,13 +581,7 @@ void wxComboBox::SetSelection(long from, long to)
       toChar = -1;
     }
 
-    if (
-#ifdef __WIN32__
-    SendMessage(hWnd, CB_SETEDITSEL, (WPARAM)0, (LPARAM)MAKELONG(fromChar, toChar))
-#else // Win16
-    SendMessage(hWnd, CB_SETEDITSEL, (WPARAM)fromChar, (LPARAM)toChar)
-#endif
-        == CB_ERR )
+    if ( SendMessage(hWnd, CB_SETEDITSEL, (WPARAM)0, (LPARAM)MAKELONG(fromChar, toChar)) == CB_ERR )
     {
         wxLogDebug(_T("CB_SETEDITSEL failed"));
     }
diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp
index 92af78fd53..343ed9d7a0 100644
--- a/src/msw/dc.cpp
+++ b/src/msw/dc.cpp
@@ -389,7 +389,7 @@ void wxDC::SetClippingHrgn(WXHRGN hrgn)
     // note that we combine the new clipping region with the existing one: this
     // is compatible with what the other ports do and is the documented
     // behaviour now (starting with 2.3.3)
-#if defined(__WIN16__) || defined(__WXWINCE__)
+#if defined(__WXWINCE__)
     RECT rectClip;
     if ( !::GetClipBox(GetHdc(), &rectClip) )
         return;
@@ -405,14 +405,14 @@ void wxDC::SetClippingHrgn(WXHRGN hrgn)
 
     ::DeleteObject(hrgnClipOld);
     ::DeleteObject(hrgnDest);
-#else // Win32
+#else // !WinCE
     if ( ::ExtSelectClipRgn(GetHdc(), (HRGN)hrgn, RGN_AND) == ERROR )
     {
         wxLogLastError(_T("ExtSelectClipRgn"));
 
         return;
     }
-#endif // Win16/32
+#endif // WinCE/!WinCE
 
     m_clipping = true;
 
@@ -699,8 +699,8 @@ void wxDC::DoDrawCheckMark(wxCoord x1, wxCoord y1,
 #else
     DrawFrameControl(GetHdc(), &rect, DFC_MENU, DFCS_MENUCHECK);
 #endif
-#else // Win16
-    // In WIN16, draw a cross
+#else // Symantec-MicroWin
+    // draw a cross
     HPEN blackPen = ::CreatePen(PS_SOLID, 1, RGB(0, 0, 0));
     HPEN whiteBrush = (HPEN)::GetStockObject(WHITE_BRUSH);
     HPEN hPenOld = (HPEN)::SelectObject(GetHdc(), blackPen);
@@ -714,7 +714,7 @@ void wxDC::DoDrawCheckMark(wxCoord x1, wxCoord y1,
     ::SelectObject(GetHdc(), hPenOld);
     ::SelectObject(GetHdc(), hBrushOld);
     ::DeleteObject(blackPen);
-#endif // Win32/16
+#endif // Win32/Symantec-MicroWin
 
     CalcBoundingBox(x1, y1);
     CalcBoundingBox(x2, y2);
diff --git a/src/msw/dcprint.cpp b/src/msw/dcprint.cpp
index 53542de5ea..819514bb60 100644
--- a/src/msw/dcprint.cpp
+++ b/src/msw/dcprint.cpp
@@ -195,13 +195,11 @@ bool wxPrinterDC::StartDoc(const wxString& message)
 
     int ret = ::StartDoc(GetHdc(), &docinfo);
 
-#ifndef __WIN16__
     if (ret <= 0)
     {
         DWORD lastError = GetLastError();
         wxLogDebug(wxT("wxDC::StartDoc failed with error: %ld\n"), lastError);
     }
-#endif
 
     return (ret > 0);
 }
diff --git a/src/msw/dialup.cpp b/src/msw/dialup.cpp
index c9eb8937e2..3ef963a5f5 100644
--- a/src/msw/dialup.cpp
+++ b/src/msw/dialup.cpp
@@ -24,12 +24,6 @@
     #pragma hdrstop
 #endif
 
-// these functions require Win32
-#if defined(__WIN16__) && wxUSE_DIALUP_MANAGER
-    #undef wxUSE_DIALUP_MANAGER
-    #define wxUSE_DIALUP_MANAGER 0
-#endif // wxUSE_DIALUP_MANAGER && Win16
-
 #if wxUSE_DIALUP_MANAGER
 
 #ifndef WX_PRECOMP
diff --git a/src/msw/dir.cpp b/src/msw/dir.cpp
index 156147b0ae..fc9c933185 100644
--- a/src/msw/dir.cpp
+++ b/src/msw/dir.cpp
@@ -28,11 +28,6 @@
     #pragma hdrstop
 #endif
 
-// For _A_SUBDIR, etc.
-#if defined(__BORLANDC__) && defined(__WIN16__)
-#include <dos.h>
-#endif
-
 #ifndef WX_PRECOMP
     #include "wx/intl.h"
     #include "wx/log.h"
@@ -49,141 +44,55 @@
 // define the types and functions used for file searching
 // ----------------------------------------------------------------------------
 
-// under Win16 use compiler-specific functions
-#ifdef __WIN16__
-    #ifdef __VISUALC__
-        #include <dos.h>
-        #include <errno.h>
-
-        typedef struct _find_t FIND_STRUCT;
-    #elif defined(__BORLANDC__)
-        #include <dir.h>
-
-        typedef struct ffblk FIND_STRUCT;
-    #else
-        #error "No directory searching functions for this compiler"
-    #endif
-
-    typedef FIND_STRUCT *FIND_DATA;
-    typedef char FIND_ATTR;
-
-    static inline FIND_DATA InitFindData() { return (FIND_DATA)NULL; }
-    static inline bool IsFindDataOk(FIND_DATA fd) { return fd != NULL; }
-    static inline void FreeFindData(FIND_DATA fd) { free(fd); }
-
-    static inline FIND_DATA FindFirst(const wxString& spec,
-                                      FIND_STRUCT * WXUNUSED(finddata))
-    {
-        // attribute to find all files
-        static const FIND_ATTR attr = 0x3F;
-
-        FIND_DATA fd = (FIND_DATA)malloc(sizeof(FIND_STRUCT));
-
-        if (
-        #ifdef __VISUALC__
-            _dos_findfirst(spec, attr, fd) == 0
-        #else // Borland
-            findfirst(spec, fd, attr) == 0
-        #endif
-           )
-        {
-            return fd;
-        }
-        else
-        {
-            free(fd);
-
-            return NULL;
-        }
-    }
-
-    static inline bool FindNext(FIND_DATA fd, FIND_STRUCT * WXUNUSED(finddata))
-    {
-        #ifdef __VISUALC__
-            return _dos_findnext(fd) == 0;
-        #else // Borland
-            return findnext(fd) == 0;
-        #endif
-    }
-
-    static const wxChar *GetNameFromFindData(FIND_STRUCT *finddata)
-    {
-        #ifdef __VISUALC__
-            return finddata->name;
-        #else // Borland
-            return finddata->ff_name;
-        #endif
-    }
-
-    static const FIND_ATTR GetAttrFromFindData(FIND_STRUCT *finddata)
-    {
-        #ifdef __VISUALC__
-            return finddata->attrib;
-        #else // Borland
-            return finddata->ff_attrib;
-        #endif
-    }
+typedef WIN32_FIND_DATA FIND_STRUCT;
+typedef HANDLE FIND_DATA;
+typedef DWORD FIND_ATTR;
 
-    static inline bool IsDir(FIND_ATTR attr)
-    {
-        return (attr & _A_SUBDIR) != 0;
-    }
-
-    static inline bool IsHidden(FIND_ATTR attr)
-    {
-        return (attr & (_A_SYSTEM | _A_HIDDEN)) != 0;
-    }
-#else // Win32
-    typedef WIN32_FIND_DATA FIND_STRUCT;
-    typedef HANDLE FIND_DATA;
-    typedef DWORD FIND_ATTR;
-
-    static inline FIND_DATA InitFindData() { return INVALID_HANDLE_VALUE; }
+static inline FIND_DATA InitFindData() { return INVALID_HANDLE_VALUE; }
 
-    static inline bool IsFindDataOk(FIND_DATA fd)
-    {
+static inline bool IsFindDataOk(FIND_DATA fd)
+{
         return fd != INVALID_HANDLE_VALUE;
-    }
+}
 
-    static inline void FreeFindData(FIND_DATA fd)
-    {
+static inline void FreeFindData(FIND_DATA fd)
+{
         if ( !::FindClose(fd) )
         {
             wxLogLastError(_T("FindClose"));
         }
-    }
+}
 
-    static inline FIND_DATA FindFirst(const wxString& spec,
+static inline FIND_DATA FindFirst(const wxString& spec,
                                       FIND_STRUCT *finddata)
-    {
+{
         return ::FindFirstFile(spec, finddata);
-    }
+}
 
-    static inline bool FindNext(FIND_DATA fd, FIND_STRUCT *finddata)
-    {
+static inline bool FindNext(FIND_DATA fd, FIND_STRUCT *finddata)
+{
         return ::FindNextFile(fd, finddata) != 0;
-    }
+}
 
-    static const wxChar *GetNameFromFindData(FIND_STRUCT *finddata)
-    {
+static const wxChar *GetNameFromFindData(FIND_STRUCT *finddata)
+{
         return finddata->cFileName;
-    }
+}
 
-    static const FIND_ATTR GetAttrFromFindData(FIND_STRUCT *finddata)
-    {
+static const FIND_ATTR GetAttrFromFindData(FIND_STRUCT *finddata)
+{
         return finddata->dwFileAttributes;
-    }
+}
 
-    static inline bool IsDir(FIND_ATTR attr)
-    {
+static inline bool IsDir(FIND_ATTR attr)
+{
         return (attr & FILE_ATTRIBUTE_DIRECTORY) != 0;
-    }
+}
 
-    static inline bool IsHidden(FIND_ATTR attr)
-    {
+static inline bool IsHidden(FIND_ATTR attr)
+{
         return (attr & (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM)) != 0;
-    }
-#endif // __WIN16__
+}
 
 // ----------------------------------------------------------------------------
 // constants
@@ -268,12 +177,8 @@ bool wxDirData::Read(wxString *filename)
 {
     bool first = FALSE;
 
-#ifdef __WIN32__
     WIN32_FIND_DATA finddata;
     #define PTR_TO_FINDDATA (&finddata)
-#else // Win16
-    #define PTR_TO_FINDDATA (m_finddata)
-#endif
 
     if ( !IsFindDataOk(m_finddata) )
     {
diff --git a/src/msw/dummy.cpp b/src/msw/dummy.cpp
index 4829376c7c..b4a58ed66a 100644
--- a/src/msw/dummy.cpp
+++ b/src/msw/dummy.cpp
@@ -28,9 +28,3 @@
 
 #include "wx/msw/msvcrt.h"
 
-// Foils optimizations in Visual C++ (see also app.cpp). Without it,
-// dummy.obj isn't linked and we get a linker error.
-#if defined(__VISUALC__) && defined(__WIN16__)
-    char wxDummyChar = 0;
-#endif
-
diff --git a/src/msw/fontdlg.cpp b/src/msw/fontdlg.cpp
index ee3382628c..bffa169a38 100644
--- a/src/msw/fontdlg.cpp
+++ b/src/msw/fontdlg.cpp
@@ -95,12 +95,8 @@ int wxFontDialog::ShowModal()
     // CF_ANSIONLY flag is obsolete for Win32
     if ( !m_fontData.GetAllowSymbols() )
     {
-#ifdef __WIN16__
-      flags |= CF_ANSIONLY;
-#else // Win32
       flags |= CF_SELECTSCRIPT;
       logFont.lfCharSet = ANSI_CHARSET;
-#endif // Win16/32
     }
 
     if ( m_fontData.GetEnableEffects() )
diff --git a/src/msw/fontenum.cpp b/src/msw/fontenum.cpp
index 68c3e999f8..7ee7852e02 100644
--- a/src/msw/fontenum.cpp
+++ b/src/msw/fontenum.cpp
@@ -163,22 +163,14 @@ void wxFontEnumeratorHelper::DoEnumerate()
 #ifdef __WXWINCE__
     ::EnumFontFamilies(hDC, m_facename, (wxFONTENUMPROC)wxFontEnumeratorProc,
                          (LPARAM)this) ;
-#elif defined(__WIN32__)
+#else // __WIN32__
     LOGFONT lf;
     lf.lfCharSet = m_charset;
     wxStrncpy(lf.lfFaceName, m_facename, WXSIZEOF(lf.lfFaceName));
     lf.lfPitchAndFamily = 0;
     ::EnumFontFamiliesEx(hDC, &lf, (wxFONTENUMPROC)wxFontEnumeratorProc,
                          (LPARAM)this, 0 /* reserved */) ;
-#else // Win16
-    ::EnumFonts(hDC, (LPTSTR)NULL, (FONTENUMPROC)wxFontEnumeratorProc,
-    #ifdef STRICT
-               (LPARAM)
-    #else
-               (LPSTR)
-    #endif
-               this);
-#endif // Win32/16
+#endif // Win32/CE
 
     ::ReleaseDC(NULL, hDC);
 #endif
diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp
index 3f3754a68b..72ba895be8 100644
--- a/src/msw/mdi.cpp
+++ b/src/msw/mdi.cpp
@@ -1306,9 +1306,7 @@ static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow)
     wxWindow *parent = win->GetParent();
     wxCHECK_RET( parent, wxT("MDI client without parent frame? weird...") );
 
-#ifndef __WIN16__
     ::SendMessage(GetWinHwnd(win), WM_MDIREFRESHMENU, 0, 0L);
-#endif
 
     ::DrawMenuBar(GetWinHwnd(parent));
 }
@@ -1396,15 +1394,9 @@ static void RemoveWindowMenu(wxWindow *win, WXHMENU menu)
 static void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam,
                               WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact)
 {
-#ifdef __WIN32__
     *activate = true;
     *hwndAct = (WXHWND)lParam;
     *hwndDeact = (WXHWND)wParam;
-#else // Win16
-    *activate = (WXWORD)wParam;
-    *hwndAct = (WXHWND)LOWORD(lParam);
-    *hwndDeact = (WXHWND)HIWORD(lParam);
-#endif // Win32/Win16
 }
 
 #endif
diff --git a/src/msw/menuitem.cpp b/src/msw/menuitem.cpp
index 4a17c4579b..0703b51244 100644
--- a/src/msw/menuitem.cpp
+++ b/src/msw/menuitem.cpp
@@ -321,12 +321,6 @@ void wxMenuItem::Check(bool check)
                 node->GetData()->m_isChecked = FALSE;
             }
 
-            // we also have to do it in the menu for Win16 (under Win32
-            // CheckMenuRadioItem() does it for us)
-#ifndef __WIN32__
-            ::CheckMenuItem(hmenu, n, n == pos ? MF_CHECKED : MF_UNCHECKED);
-#endif // Win16
-
             node = node->GetNext();
         }
     }
diff --git a/src/msw/mimetype.cpp b/src/msw/mimetype.cpp
index 78eb544ea9..bd6edf88f5 100644
--- a/src/msw/mimetype.cpp
+++ b/src/msw/mimetype.cpp
@@ -22,9 +22,6 @@
 
 #if wxUSE_MIMETYPE
 
-// Doesn't compile in WIN16 mode
-#ifndef __WIN16__
-
 #ifndef WX_PRECOMP
     #include "wx/string.h"
     #if wxUSE_GUI
@@ -822,7 +819,4 @@ bool wxFileTypeImpl::RemoveDescription()
     return !rkey.Exists() || rkey.DeleteSelf();
 }
 
-#endif
-  // __WIN16__
-
 #endif // wxUSE_MIMETYPE
diff --git a/src/msw/printdlg.cpp b/src/msw/printdlg.cpp
index d7387012f2..d3210c96b9 100644
--- a/src/msw/printdlg.cpp
+++ b/src/msw/printdlg.cpp
@@ -39,11 +39,6 @@
 #include "wx/printdlg.h"
 #include "wx/dcprint.h"
 
-// Have to emulate page setup dialog for Win16
-#if !defined(__WIN95__)
-    #include "wx/generic/prntdlgg.h"
-#endif
-
 #include <stdlib.h>
 
 #include "wx/msw/private.h"
diff --git a/src/msw/radiobut.cpp b/src/msw/radiobut.cpp
index 96f4803110..3cf326adf7 100644
--- a/src/msw/radiobut.cpp
+++ b/src/msw/radiobut.cpp
@@ -158,9 +158,7 @@ bool wxRadioButton::Create(wxWindow *parent,
 
 void wxRadioButton::SetValue(bool value)
 {
-    // BST_CHECKED is defined as 1, BST_UNCHECKED as 0, so we can just pass
-    // value as is (we don't use BST_XXX here as they're not defined for Win16)
-    (void)::SendMessage(GetHwnd(), BM_SETCHECK, (WPARAM)value, 0L);
+    (void)::SendMessage(GetHwnd(), BM_SETCHECK, (value?BST_CHECKED:BST_UNCHECKED), 0L);
 
     m_isChecked = value;
 
diff --git a/src/msw/regconf.cpp b/src/msw/regconf.cpp
index 39a13a4bc4..cb302531f9 100644
--- a/src/msw/regconf.cpp
+++ b/src/msw/regconf.cpp
@@ -33,8 +33,6 @@
 
 #include "wx/config.h"
 
-#ifndef __WIN16__
-
 #include "wx/msw/registry.h"
 #include "wx/msw/regconf.h"
 
@@ -729,8 +727,5 @@ bool wxRegConfig::DeleteAll()
   return bOk;
 }
 
-#endif
-  // __WIN16__
-
 #endif
   // wxUSE_CONFIG
diff --git a/src/msw/region.cpp b/src/msw/region.cpp
index 4ff31ef0f7..a5edd5cb49 100644
--- a/src/msw/region.cpp
+++ b/src/msw/region.cpp
@@ -421,7 +421,6 @@ void wxRegionIterator::Reset(const wxRegion& region)
         m_numRects = 0;
     else
     {
-#if defined(__WIN32__)
         DWORD noBytes = ::GetRegionData(((wxRegionRefData*)region.m_refData)->m_region, 0, NULL);
         RGNDATA *rgnData = (RGNDATA*) new char[noBytes];
         ::GetRegionData(((wxRegionRefData*)region.m_refData)->m_region, noBytes, rgnData);
@@ -442,17 +441,6 @@ void wxRegionIterator::Reset(const wxRegion& region)
         m_numRects = header->nCount;
 
         delete[] (char*) rgnData;
-#else // Win16
-        RECT rect;
-        ::GetRgnBox(((wxRegionRefData*)region.m_refData)->m_region, &rect);
-        m_rects = new wxRect[1];
-        m_rects[0].x = rect.left;
-        m_rects[0].y = rect.top;
-        m_rects[0].width = rect.right - rect.left;
-        m_rects[0].height = rect.bottom - rect.top;
-
-        m_numRects = 1;
-#endif // Win32/16
     }
 }
 
diff --git a/src/msw/registry.cpp b/src/msw/registry.cpp
index 72515030b0..b2a25f4391 100644
--- a/src/msw/registry.cpp
+++ b/src/msw/registry.cpp
@@ -28,8 +28,6 @@
 #include  "wx/intl.h"
 #include  "wx/log.h"
 
-#ifndef __WIN16__
-
 // Windows headers
 /*
 #define   STRICT
@@ -321,8 +319,6 @@ bool wxRegKey::GetKeyInfo(size_t *pnSubKeys,
                           size_t *pnValues,
                           size_t *pnMaxValueLen) const
 {
-#if defined(__WIN32__)
-
     // old gcc headers incorrectly prototype RegQueryInfoKey()
 #if defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__)
     #define REG_PARAM   (size_t *)
@@ -362,11 +358,6 @@ bool wxRegKey::GetKeyInfo(size_t *pnSubKeys,
   }
 
   return TRUE;
-#else // Win16
-  wxFAIL_MSG("GetKeyInfo() not implemented");
-
-  return FALSE;
-#endif
 }
 
 // ----------------------------------------------------------------------------
@@ -708,7 +699,6 @@ bool wxRegKey::DeleteValue(const wxChar *szValue)
   if ( !Open() )
     return FALSE;
 
-#if defined(__WIN32__)
     m_dwLastError = RegDeleteValue((HKEY) m_hKey, WXSTRINGCAST szValue);
 
     // deleting a value which doesn't exist is not considered an error
@@ -718,18 +708,6 @@ bool wxRegKey::DeleteValue(const wxChar *szValue)
                     szValue, GetName().c_str());
       return FALSE;
     }
-#else   //WIN16
-    // named registry values don't exist in Win16 world
-    wxASSERT( IsEmpty(szValue) );
-
-    // just set the (default and unique) value of the key to ""
-    m_dwLastError = RegSetValue((HKEY) m_hKey, NULL, REG_SZ, "", RESERVED);
-    if ( m_dwLastError != ERROR_SUCCESS ) {
-      wxLogSysError(m_dwLastError, _("Can't delete value of key '%s'"),
-                    GetName().c_str());
-      return FALSE;
-    }
-#endif  //WIN16/32
 
   return TRUE;
 }
@@ -744,7 +722,6 @@ bool wxRegKey::HasValue(const wxChar *szValue) const
   // this function should be silent, so suppress possible messages from Open()
   wxLogNull nolog;
 
-  #ifdef  __WIN32__
     if ( !CONST_CAST Open() )
         return FALSE;
 
@@ -753,10 +730,6 @@ bool wxRegKey::HasValue(const wxChar *szValue) const
                                    RESERVED,
                                    NULL, NULL, NULL);
     return dwRet == ERROR_SUCCESS;
-  #else   // WIN16
-    // only unnamed value exists
-    return IsEmpty(szValue);
-  #endif  // WIN16/32
 }
 
 // returns TRUE if this key has any values
@@ -797,7 +770,6 @@ bool wxRegKey::HasSubKey(const wxChar *szKey) const
 
 wxRegKey::ValueType wxRegKey::GetValueType(const wxChar *szValue) const
 {
-  #ifdef  __WIN32__
     if ( ! CONST_CAST Open() )
       return Type_None;
 
@@ -811,9 +783,6 @@ wxRegKey::ValueType wxRegKey::GetValueType(const wxChar *szValue) const
     }
 
     return (ValueType)dwType;
-  #else   //WIN16
-    return IsEmpty(szValue) ? Type_String : Type_None;
-  #endif  //WIN16/32
 }
 
 #ifdef  __WIN32__
@@ -862,7 +831,7 @@ bool wxRegKey::QueryValue(const wxChar *szValue,
                           bool raw) const
 {
   if ( CONST_CAST Open() ) {
-    #ifdef  __WIN32__
+
       // first get the type and size of the data
       DWORD dwType, dwSize;
       m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST szValue, RESERVED,
@@ -916,15 +885,6 @@ bool wxRegKey::QueryValue(const wxChar *szValue,
           return TRUE;
         }
       }
-    #else   //WIN16
-      // named registry values don't exist in Win16
-      wxASSERT( IsEmpty(szValue) );
-
-      m_dwLastError = RegQueryValue((HKEY) m_hKey, 0, strValue.GetWriteBuf(256), &l);
-      strValue.UngetWriteBuf();
-      if ( m_dwLastError == ERROR_SUCCESS )
-        return TRUE;
-    #endif  //WIN16/32
   }
 
   wxLogSysError(m_dwLastError, _("Can't read value of '%s'"),
@@ -935,20 +895,11 @@ bool wxRegKey::QueryValue(const wxChar *szValue,
 bool wxRegKey::SetValue(const wxChar *szValue, const wxString& strValue)
 {
   if ( CONST_CAST Open() ) {
-#if defined( __WIN32__)
       m_dwLastError = RegSetValueEx((HKEY) m_hKey, szValue, (DWORD) RESERVED, REG_SZ,
                                     (RegString)strValue.c_str(),
                                     (strValue.Len() + 1)*sizeof(wxChar));
       if ( m_dwLastError == ERROR_SUCCESS )
         return TRUE;
-#else   //WIN16
-      // named registry values don't exist in Win16
-      wxASSERT( IsEmpty(szValue) );
-
-      m_dwLastError = RegSetValue((HKEY) m_hKey, NULL, REG_SZ, strValue, NULL);
-      if ( m_dwLastError == ERROR_SUCCESS )
-        return TRUE;
-#endif  //WIN16/32
   }
 
   wxLogSysError(m_dwLastError, _("Can't set value of '%s'"),
@@ -986,7 +937,6 @@ bool wxRegKey::GetNextValue(wxString& strValueName, long& lIndex) const
   if ( lIndex == -1 )
     return FALSE;
 
-#if defined( __WIN32__)
     wxChar  szValueName[1024];                  // @@ use RegQueryInfoKey...
     DWORD dwValueLen = WXSIZEOF(szValueName);
 
@@ -1011,13 +961,6 @@ bool wxRegKey::GetNextValue(wxString& strValueName, long& lIndex) const
     }
 
     strValueName = szValueName;
-#else   //WIN16
-    // only one unnamed value
-    wxASSERT( lIndex == 0 );
-
-    lIndex = -1;
-    strValueName.Empty();
-#endif
 
   return TRUE;
 }
@@ -1125,6 +1068,3 @@ void RemoveTrailingSeparator(wxString& str)
     str.Truncate(str.Len() - 1);
 }
 
-#endif
-  // __WIN16__
-
diff --git a/src/msw/settings.cpp b/src/msw/settings.cpp
index 13dbf8e2d2..a2c3447c99 100644
--- a/src/msw/settings.cpp
+++ b/src/msw/settings.cpp
@@ -141,8 +141,6 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
         // all Windows version, for the other ones we have to check
         bool useDefault;
 
-        // none of the is supported under Win16 anyhow
-#ifdef __WIN32__
         int verMaj, verMin;
         wxGetOsVersion(&verMaj, &verMin);
         if ( verMaj < 4 )
@@ -175,9 +173,6 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
 				}
 			}
        }
-#else
-        useDefault = TRUE;
-#endif // __WIN32__
 
         if ( useDefault )
         {
diff --git a/src/msw/statbmp.cpp b/src/msw/statbmp.cpp
index a367e2df50..1d6bfd0c7c 100644
--- a/src/msw/statbmp.cpp
+++ b/src/msw/statbmp.cpp
@@ -111,8 +111,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl)
 // note that this function will create a new object every time
 // it is called even if the image needs no conversion
 
-#ifndef __WIN16__
-
 static wxGDIImage* ConvertImage( const wxGDIImage& bitmap )
 {
     bool isIcon = bitmap.IsKindOf( CLASSINFO(wxIcon) );
@@ -139,8 +137,6 @@ static wxGDIImage* ConvertImage( const wxGDIImage& bitmap )
     return new wxIcon( (const wxIcon&)bitmap );
 }
 
-#endif
-
 bool wxStaticBitmap::Create(wxWindow *parent,
                             wxWindowID id,
                             const wxGDIImage& bitmap,
@@ -158,25 +154,14 @@ bool wxStaticBitmap::Create(wxWindow *parent,
     wxGDIImage *image = (wxGDIImage *)NULL;
     m_isIcon = bitmap.IsKindOf(CLASSINFO(wxIcon));
 
-#ifdef __WIN16__
-    wxASSERT_MSG( !m_isIcon, "Icons are not supported in wxStaticBitmap under WIN16." );
-    image = &bitmap;
-#else // Win32
     image = ConvertImage( bitmap );
     m_isIcon = image->IsKindOf( CLASSINFO(wxIcon) );
-#endif // Win16/32
 
     // create the native control
-    if ( !MSWCreateControl(
-#ifdef __WIN32__
-                           _T("STATIC"),
-#else // Win16
-                           _T("BUTTON"),
-#endif // Win32/16
-                           wxEmptyString, pos, size) )
+    if ( !MSWCreateControl(_T("STATIC"), wxEmptyString, pos, size) )
     {
         // control creation failed
-        return FALSE;
+        return false;
     }
 
     // no need to delete the new image
@@ -194,16 +179,12 @@ WXDWORD wxStaticBitmap::MSWGetStyle(long style, WXDWORD *exstyle) const
 {
     WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle);
 
-#ifdef __WIN32__
     // what kind of control are we?
     msStyle |= m_isIcon ? SS_ICON : SS_BITMAP;
 
     // we use SS_CENTERIMAGE to prevent the control from resizing the bitmap to
     // fit to its size -- this is unexpected and doesn't happen in other ports
     msStyle |= SS_CENTERIMAGE;
-#else // Win16
-    msStyle |= BS_OWNERDRAW;
-#endif // Win32/16
 
     return msStyle;
 }
@@ -276,45 +257,6 @@ void wxStaticBitmap::SetImageNoCopy( wxGDIImage* image)
     InvalidateRect(GetHwndOf(GetParent()), &rect, TRUE);
 }
 
-// under Win32 we use the standard static control style for this
-#ifdef __WIN16__
-bool wxStaticBitmap::MSWOnDraw(WXDRAWITEMSTRUCT *item)
-{
-    LPDRAWITEMSTRUCT lpDIS = (LPDRAWITEMSTRUCT) item;
-
-    wxCHECK_MSG( !m_isIcon, FALSE, _T("icons not supported in wxStaticBitmap") );
-
-    wxBitmap* bitmap = (wxBitmap *)m_image;
-    if ( !bitmap->Ok() )
-        return FALSE;
-
-    HDC hDC = lpDIS->hDC;
-    HDC memDC = ::CreateCompatibleDC(hDC);
-
-    HBITMAP old = (HBITMAP) ::SelectObject(memDC, (HBITMAP) bitmap->GetHBITMAP());
-
-    if (!old)
-        return FALSE;
-
-    int x = lpDIS->rcItem.left;
-    int y = lpDIS->rcItem.top;
-    int width = lpDIS->rcItem.right - x;
-    int height = lpDIS->rcItem.bottom - y;
-
-    // Centre the bitmap in the control area
-    int x1 = (int) (x + ((width - bitmap->GetWidth()) / 2));
-    int y1 = (int) (y + ((height - bitmap->GetHeight()) / 2));
-
-    ::BitBlt(hDC, x1, y1, bitmap->GetWidth(), bitmap->GetHeight(), memDC, 0, 0, SRCCOPY);
-
-    ::SelectObject(memDC, old);
-
-    ::DeleteDC(memDC);
-
-    return TRUE;
-}
-#endif // Win16
-
 // We need this or the control can never be moved e.g. in Dialog Editor.
 WXLRESULT wxStaticBitmap::MSWWindowProc(WXUINT nMsg,
                                    WXWPARAM wParam,
diff --git a/src/msw/tbarmsw.cpp b/src/msw/tbarmsw.cpp
index f558a94b80..ad62237f60 100644
--- a/src/msw/tbarmsw.cpp
+++ b/src/msw/tbarmsw.cpp
@@ -32,1083 +32,3 @@
     #include "wx/wx.h"
 #endif
 
-#if wxUSE_TOOLBAR && defined(__WIN16__)
-
-#if !defined(__GNUWIN32__) && !defined(__SALFORDC__)
-    #include "malloc.h"
-#endif
-
-#if !defined(__MWERKS__) && !defined(__SALFORDC__)
-    #include <memory.h>
-#endif
-
-#include <stdlib.h>
-
-#include "wx/msw/tbarmsw.h"
-#include "wx/event.h"
-#include "wx/app.h"
-#include "wx/bitmap.h"
-#include "wx/msw/private.h"
-#include "wx/msw/dib.h"
-
-// ----------------------------------------------------------------------------
-// constants
-// ----------------------------------------------------------------------------
-
-#define DEFAULTBITMAPX   16
-#define DEFAULTBITMAPY   15
-#define DEFAULTBUTTONX   24
-#define DEFAULTBUTTONY   22
-#define DEFAULTBARHEIGHT 27
-
-//
-// States (not all of them currently used)
-//
-#define wxTBSTATE_CHECKED         0x01    // radio button is checked
-#define wxTBSTATE_PRESSED         0x02    // button is being depressed (any style)
-#define wxTBSTATE_ENABLED         0x04    // button is enabled
-#define wxTBSTATE_HIDDEN          0x08    // button is hidden
-#define wxTBSTATE_INDETERMINATE   0x10    // button is indeterminate
-
-// ----------------------------------------------------------------------------
-// private classes
-// ----------------------------------------------------------------------------
-
-class WXDLLEXPORT wxToolBarTool : public wxToolBarToolBase
-{
-public:
-    wxToolBarTool(wxToolBar *tbar,
-                  int id,
-                  const wxBitmap& bmpNormal,
-                  const wxBitmap& bmpDisabled,
-                  bool toggle,
-                  wxObject *clientData,
-                  const wxString& shortHelp,
-                  const wxString& longHelp)
-        : wxToolBarToolBase(tbar, id, bmpNormal, bmpDisabled, toggle,
-                            clientData, shortHelp, longHelp)
-    {
-    }
-
-    wxToolBarTool(wxToolBar *tbar, wxControl *control)
-        : wxToolBarToolBase(tbar, control)
-    {
-    }
-
-    void SetSize(const wxSize& size)
-    {
-        m_width = size.x;
-        m_height = size.y;
-    }
-
-    long GetWidth() const { return m_width; }
-    long GetHeight() const { return m_height; }
-
-    wxCoord               m_x;
-    wxCoord               m_y;
-    wxCoord               m_width;
-    wxCoord               m_height;
-};
-
-// ----------------------------------------------------------------------------
-// wxWin macros
-// ----------------------------------------------------------------------------
-
-#if !USE_SHARED_LIBRARY
-IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase)
-
-BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase)
-	EVT_PAINT(wxToolBar::OnPaint)
-	EVT_MOUSE_EVENTS(wxToolBar::OnMouseEvent)
-END_EVENT_TABLE()
-#endif
-
-// ============================================================================
-// implementation
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// wxToolBarTool
-// ----------------------------------------------------------------------------
-
-wxToolBarToolBase *wxToolBar::CreateTool(int id,
-                                         const wxString& label,
-                                         const wxBitmap& bmpNormal,
-                                         const wxBitmap& bmpDisabled,
-                                         wxItemKind kind,
-                                         wxObject *clientData,
-                                         const wxString& shortHelp,
-                                         const wxString& longHelp)
-{
-    return new wxToolBarTool(this, id, label, bmpNormal, bmpDisabled, kind,
-                             clientData, shortHelp, longHelp);
-}
-
-wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control)
-{
-    return new wxToolBarTool(this, control);
-}
-
-// ----------------------------------------------------------------------------
-// wxToolBar
-// ----------------------------------------------------------------------------
-
-void wxToolBar::Init()
-{
-    m_hbrDither = 0;
-    m_rgbFace = 0;
-    m_rgbShadow = 0;
-    m_rgbHilight = 0;
-    m_rgbFrame = 0;
-    m_hdcMono = 0;
-    m_hbmMono = 0;
-    m_hbmDefault = 0;
-
-    m_defaultWidth = DEFAULTBITMAPX;
-    m_defaultHeight = DEFAULTBITMAPY;
-
-    m_xPos =
-    m_yPos = -1;
-
-    m_maxWidth = m_maxHeight = 0;
-    m_pressedTool = m_currentTool = -1;
-    m_toolPacking = 1;
-    m_toolSeparation = 5;
-}
-
-bool wxToolBar::Create(wxWindow *parent,
-                       wxWindowID id,
-                       const wxPoint& pos,
-                       const wxSize& size,
-                       long style,
-                       const wxString& name)
-{
-    if ( !wxWindow::Create(parent, id, pos, size, style, name) )
-        return FALSE;
-
-    if ( style & wxTB_HORIZONTAL )
-    {
-        m_lastX = 3;
-        m_lastY = 7;
-    }
-    else
-    {
-        m_lastX = 7;
-        m_lastY = 3;
-    }
-
-    // Set it to grey
-    SetBackgroundColour(wxColour(192, 192, 192));
-
-    InitGlobalObjects();
-
-    return TRUE;
-}
-
-wxToolBar::~wxToolBar()
-{
-    FreeGlobalObjects();
-}
-
-void wxToolBar::SetToolBitmapSize(const wxSize& size)
-{
-    m_defaultWidth = size.x;
-    m_defaultHeight = size.y;
-
-    FreeGlobalObjects();
-    InitGlobalObjects();
-}
-
-// The button size is bigger than the bitmap size
-wxSize wxToolBar::GetToolSize() const
-{
-    return wxSize(m_defaultWidth + 8, m_defaultHeight + 7);
-}
-
-wxToolBarToolBase *wxToolBar::FindToolForPosition(wxCoord x, wxCoord y) const
-{
-    wxToolBarToolsList::Node *node = m_tools.GetFirst();
-    while (node)
-    {
-        wxToolBarTool *tool = (wxToolBarTool *)node->GetData();
-        if ((x >= tool->m_x) && (y >= tool->m_y) &&
-            (x <= (tool->m_x + tool->GetWidth())) &&
-            (y <= (tool->m_y + tool->GetHeight())))
-        {
-            return tool;
-        }
-
-        node = node->GetNext();
-    }
-
-    return (wxToolBarToolBase *)NULL;
-}
-
-wxToolBarToolBase *wxToolBar::AddTool(int id,
-                                      const wxBitmap& bitmap,
-                                      const wxBitmap& pushedBitmap,
-                                      bool toggle,
-                                      wxCoord xPos,
-                                      wxCoord yPos,
-                                      wxObject *clientData,
-                                      const wxString& helpString1,
-                                      const wxString& helpString2)
-{
-    // rememeber the position for DoInsertTool()
-    m_xPos = xPos;
-    m_yPos = yPos;
-
-    return wxToolBarBase::AddTool(id, bitmap, pushedBitmap, toggle,
-                                  xPos, yPos, clientData,
-                                  helpString1, helpString2);
-}
-
-void wxToolBar::OnPaint(wxPaintEvent& event)
-{
-    wxPaintDC dc(this);
-
-    static int wxOnPaintCount = 0;
-
-    // Prevent reentry of OnPaint which would cause
-    // wxMemoryDC errors.
-    if (wxOnPaintCount > 0)
-        return;
-    wxOnPaintCount++;
-
-    wxToolBarToolsList::Node *node = m_tools.GetFirst();
-    while (node)
-    {
-        wxToolBarToolBase *tool = node->GetData();
-        if ( tool->GetStyle()!= wxTOOL_STYLE_BUTTON )
-        {
-            int state = tool->IsEnabled() ? wxTBSTATE_ENABLED : 0;
-            if ( tool->IsToggled() )
-                state |= wxTBSTATE_CHECKED;
-
-            DrawTool(dc, tool, state);
-        }
-
-        node = node->GetNext();
-    }
-
-    wxOnPaintCount--;
-}
-
-// If a Button is disabled, then NO function (besides leaving
-// or entering) should be carried out. Therefore the additions
-// of 'enabled' testing (Stefan Hammes).
-void wxToolBar::OnMouseEvent(wxMouseEvent& event)
-{
-    static wxToolBarToolBase *eventCurrentTool = NULL;
-    wxClientDC dc(this);
-
-    if (event.Leaving())
-    {
-        m_currentTool = -1;
-        if (eventCurrentTool && eventCurrentTool->IsEnabled())
-        {
-            ::ReleaseCapture();
-            int state = wxTBSTATE_ENABLED;
-            if (eventCurrentTool->IsToggled())
-                state |= wxTBSTATE_CHECKED;
-            DrawTool(dc, eventCurrentTool, state);
-            eventCurrentTool = NULL;
-        }
-        OnMouseEnter(-1);
-        return;
-    }
-
-    wxCoord x, y;
-    event.GetPosition(&x, &y);
-    wxToolBarToolBase *tool = FindToolForPosition(x, y);
-
-    if (!tool)
-    {
-        if (eventCurrentTool && eventCurrentTool->IsEnabled())
-        {
-            ::ReleaseCapture();
-
-            int state = wxTBSTATE_ENABLED;
-            if (eventCurrentTool->IsToggled())
-                state |= wxTBSTATE_CHECKED;
-            DrawTool(dc, eventCurrentTool, state);
-            eventCurrentTool = NULL;
-        }
-        if (m_currentTool > -1)
-        {
-            m_currentTool = -1;
-            OnMouseEnter(-1);
-        }
-        return;
-    }
-
-    if (!event.Dragging() && !event.IsButton())
-    {
-        if (tool->GetId() != m_currentTool)
-        {
-            OnMouseEnter(m_currentTool = tool->GetId());
-            return;
-        }
-    }
-    if (event.Dragging() && tool->IsEnabled())
-    {
-        if (eventCurrentTool)
-        {
-            // Might have dragged outside tool
-            if (eventCurrentTool != tool)
-            {
-                int state = wxTBSTATE_ENABLED;
-                if (tool->IsToggled())
-                    state |= wxTBSTATE_CHECKED;
-                DrawTool(dc, tool, state);
-                eventCurrentTool = NULL;
-                return;
-            }
-        }
-        else
-        {
-            if (tool && event.LeftIsDown() && tool->IsEnabled())
-            {
-                eventCurrentTool = tool;
-                ::SetCapture((HWND) GetHWND());
-                int state = wxTBSTATE_ENABLED|wxTBSTATE_PRESSED;
-                if (tool->IsToggled())
-                    state |= wxTBSTATE_CHECKED;
-                DrawTool(dc, tool, state);
-            }
-        }
-    }
-    if (event.LeftDown() && tool->IsEnabled())
-    {
-        eventCurrentTool = tool;
-        ::SetCapture((HWND) GetHWND());
-        int state = wxTBSTATE_ENABLED|wxTBSTATE_PRESSED;
-        if (tool->IsToggled())
-            state |= wxTBSTATE_CHECKED;
-        DrawTool(dc, tool, state);
-    }
-    else if (event.LeftUp() && tool->IsEnabled())
-    {
-        if (eventCurrentTool)
-            ::ReleaseCapture();
-        if (eventCurrentTool == tool)
-        {
-            if (tool->CanBeToggled())
-            {
-                tool->Toggle();
-                if (!OnLeftClick(tool->GetId(), tool->IsToggled()))
-                {
-                    tool->Toggle();
-                }
-                int state = wxTBSTATE_ENABLED;
-                if (tool->IsToggled())
-                    state |= wxTBSTATE_CHECKED;
-                DrawTool(dc, tool, state);
-            }
-            else
-            {
-                int state = wxTBSTATE_ENABLED;
-                if (tool->IsToggled())
-                    state |= wxTBSTATE_CHECKED;
-                DrawTool(dc, tool, state);
-                OnLeftClick(tool->GetId(), tool->IsToggled());
-            }
-        }
-        eventCurrentTool = NULL;
-    }
-    else if (event.RightDown() && tool->IsEnabled())
-    {
-        OnRightClick(tool->GetId(), x, y);
-    }
-}
-
-void wxToolBar::DoEnableTool(wxToolBarToolBase *tool, bool WXUNUSED(enable))
-{
-    DoRedrawTool(tool);
-}
-
-void wxToolBar::DoToggleTool(wxToolBarToolBase *tool, bool WXUNUSED(toggle))
-{
-    DoRedrawTool(tool);
-}
-
-void wxToolBar::DoSetToggle(wxToolBarToolBase * WXUNUSED(tool),
-                            bool WXUNUSED(toggle))
-{
-    // nothing to do
-}
-
-void wxToolBar::DoRedrawTool(wxToolBarToolBase *tool)
-{
-    wxClientDC dc(this);
-
-    DrawTool(dc, tool);
-}
-
-void wxToolBar::DrawTool(wxDC& dc, wxToolBarToolBase *toolBase, int state)
-{
-    wxToolBarTool *tool = (wxToolBarTool *)toolBase;
-
-    DrawButton(dc.GetHDC(),
-               tool->m_x, tool->m_y,
-               tool->GetWidth(), tool->GetHeight(),
-               tool, state);
-}
-
-void wxToolBar::DrawTool(wxDC& dc, wxToolBarToolBase *tool)
-{
-    int state = 0;
-    if (tool->IsEnabled())
-        state |= wxTBSTATE_ENABLED;
-    if (tool->IsToggled())
-        state |= wxTBSTATE_CHECKED;
-    // how can i access the PRESSED state???
-
-    DrawTool(dc, tool, state);
-}
-
-bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos),
-                             wxToolBarToolBase *tool)
-{
-    // VZ: didn't test whether it works, but why not...
-    tool->Detach();
-
-    Refresh();
-
-    return TRUE;
-}
-
-bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
-{
-    wxToolBarTool *tool = (wxToolBarTool *)toolBase;
-
-    wxCHECK_MSG( !tool->IsControl(), FALSE,
-                 _T("generic wxToolBar doesn't support controls") );
-
-    // TODO: use the mapping code from wxToolBar95 to get it right in this class
-#if !defined(__WIN32__) && !defined(__WIN386__)
-    wxBitmap bmpDisabled;
-    if (tool->CanBeToggled())
-    {
-        HBITMAP hbmp = CreateMappedBitmap((WXHINSTANCE)wxGetInstance(),
-                                          GetHbitmapOf(tool->GetBitmap1()));
-
-        wxBitmap bmp;
-        bmp.SetHBITMAP((WXHBITMAP)hbmp);
-        tool->SetBitmap2(bmp);
-    }
-#endif
-
-    tool->m_x = m_xPos;
-    if ( tool->m_x == -1 )
-        tool->m_x = m_xMargin;
-
-    tool->m_y = m_yPos;
-    if ( tool->m_y == -1 )
-        tool->m_y = m_yMargin;
-
-    tool->SetSize(GetToolSize());
-
-    if ( tool->IsButton() )
-    {
-        // Calculate reasonable max size in case Layout() not called
-        if ((tool->m_x + tool->GetBitmap1().GetWidth() + m_xMargin) > m_maxWidth)
-            m_maxWidth = (tool->m_x + tool->GetWidth() + m_xMargin);
-
-        if ((tool->m_y + tool->GetBitmap1().GetHeight() + m_yMargin) > m_maxHeight)
-            m_maxHeight = (tool->m_y + tool->GetHeight() + m_yMargin);
-    }
-
-    return TRUE;
-}
-
-bool wxToolBar::Realize()
-{
-    m_currentRowsOrColumns = 0;
-    m_lastX = m_xMargin;
-    m_lastY = m_yMargin;
-    int maxToolWidth = 0;
-    int maxToolHeight = 0;
-    m_maxWidth = 0;
-    m_maxHeight = 0;
-
-    // Find the maximum tool width and height
-    wxToolBarToolsList::Node *node = m_tools.GetFirst();
-    while (node)
-    {
-        wxToolBarTool *tool = (wxToolBarTool *)node->GetData();
-        if (tool->GetWidth() > maxToolWidth)
-            maxToolWidth = tool->GetWidth();
-        if (tool->GetHeight() > maxToolHeight)
-            maxToolHeight = tool->GetHeight();
-        node = node->GetNext();
-    }
-
-    int separatorSize = m_toolSeparation;
-
-    node = m_tools.GetFirst();
-    while (node)
-    {
-        wxToolBarTool *tool = (wxToolBarTool *)node->GetData();
-        if (tool->GetStyle() == wxTOOL_STYLE_SEPARATOR)
-        {
-            if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
-            {
-                if (m_currentRowsOrColumns >= m_maxCols)
-                    m_lastY += separatorSize;
-                else
-                    m_lastX += separatorSize;
-            }
-            else
-            {
-                if (m_currentRowsOrColumns >= m_maxRows)
-                    m_lastX += separatorSize;
-                else
-                    m_lastY += separatorSize;
-            }
-        }
-        else if (tool->GetStyle() == wxTOOL_STYLE_BUTTON)
-        {
-            if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
-            {
-                if (m_currentRowsOrColumns >= m_maxCols)
-                {
-                    m_currentRowsOrColumns = 0;
-                    m_lastX = m_xMargin;
-                    m_lastY += maxToolHeight + m_toolPacking;
-                }
-                tool->m_x = (long) (m_lastX + (maxToolWidth - tool->GetWidth())/2.0);
-                tool->m_y = (long) (m_lastY + (maxToolHeight - tool->GetHeight())/2.0);
-
-                m_lastX += maxToolWidth + m_toolPacking;
-            }
-            else
-            {
-                if (m_currentRowsOrColumns >= m_maxRows)
-                {
-                    m_currentRowsOrColumns = 0;
-                    m_lastX += (maxToolWidth + m_toolPacking);
-                    m_lastY = m_yMargin;
-                }
-                tool->m_x = (long) (m_lastX + (maxToolWidth - tool->GetWidth())/2.0);
-                tool->m_y = (long) (m_lastY + (maxToolHeight - tool->GetHeight())/2.0);
-
-                m_lastY += maxToolHeight + m_toolPacking;
-            }
-            m_currentRowsOrColumns ++;
-        }
-
-        if (m_lastX > m_maxWidth)
-            m_maxWidth = m_lastX;
-        if (m_lastY > m_maxHeight)
-            m_maxHeight = m_lastY;
-
-        node = node->GetNext();
-    }
-
-    if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
-    {
-        m_maxWidth += maxToolWidth;
-        m_maxHeight += maxToolHeight;
-    }
-    else
-    {
-        m_maxWidth += maxToolWidth;
-        m_maxHeight += maxToolHeight;
-    }
-
-    m_maxWidth += m_xMargin;
-    m_maxHeight += m_yMargin;
-
-    SetSize(m_maxWidth, m_maxHeight);
-
-    return TRUE;
-}
-
-bool wxToolBar::InitGlobalObjects()
-{
-    GetSysColors();      
-    if (!CreateDitherBrush())
-        return FALSE;
-
-    m_hdcMono = (WXHDC) CreateCompatibleDC(NULL);
-    if (!m_hdcMono)
-        return FALSE;
-
-    m_hbmMono = (WXHBITMAP) CreateBitmap((int)GetToolSize().x, (int)GetToolSize().y, 1, 1, NULL);
-    if (!m_hbmMono)
-        return FALSE;
-
-    m_hbmDefault = (WXHBITMAP) SelectObject((HDC) m_hdcMono, (HBITMAP) m_hbmMono);
-    return TRUE;
-}
-
-void wxToolBar::FreeGlobalObjects()
-{
-    FreeDitherBrush();
-
-    if (m_hdcMono) {
-        if (m_hbmDefault)
-        {
-            SelectObject((HDC) m_hdcMono, (HBITMAP) m_hbmDefault);
-            m_hbmDefault = 0;
-        }
-        DeleteDC((HDC) m_hdcMono);		// toast the DCs
-    }
-    m_hdcMono = 0;
-
-    if (m_hbmMono)
-        DeleteObject((HBITMAP) m_hbmMono);
-    m_hbmMono = 0;
-}
-
-// ----------------------------------------------------------------------------
-// drawing routines
-// ----------------------------------------------------------------------------
-
-void wxToolBar::PatB(WXHDC hdc,int x,int y,int dx,int dy, long rgb)
-{
-    RECT    rc;
-
-    rc.left   = x;
-    rc.top    = y;
-    rc.right  = x + dx;
-    rc.bottom = y + dy;
-
-    SetBkColor((HDC) hdc,rgb);
-    ExtTextOut((HDC) hdc,0,0,ETO_OPAQUE,&rc,NULL,0,NULL);
-}
-
-
-// create a mono bitmap mask:
-//   1's where color == COLOR_BTNFACE || COLOR_HILIGHT
-//   0's everywhere else
-
-void wxToolBar::CreateMask(WXHDC hdc, int xoffset, int yoffset, int dx, int dy)
-{
-    HDC globalDC = ::GetDC(NULL);
-    HDC hdcGlyphs = CreateCompatibleDC((HDC) globalDC);
-    ReleaseDC(NULL, (HDC) globalDC);
-
-    // krj - create a new bitmap and copy the image from hdc.
-    //HBITMAP bitmapOld = SelectObject(hdcGlyphs, hBitmap);
-    HBITMAP hBitmap = CreateCompatibleBitmap((HDC) hdc, dx, dy);
-    HBITMAP bitmapOld = (HBITMAP) SelectObject(hdcGlyphs, hBitmap);
-    BitBlt(hdcGlyphs, 0,0, dx, dy, (HDC) hdc, 0, 0, SRCCOPY);
-
-    // initalize whole area with 1's
-    PatBlt((HDC) m_hdcMono, 0, 0, dx, dy, WHITENESS);
-
-    // create mask based on color bitmap
-    // convert this to 1's
-    SetBkColor(hdcGlyphs, m_rgbFace);
-    BitBlt((HDC) m_hdcMono, xoffset, yoffset, (int)GetToolBitmapSize().x, (int)GetToolBitmapSize().y,
-        hdcGlyphs, 0, 0, SRCCOPY);
-    // convert this to 1's
-    SetBkColor(hdcGlyphs, m_rgbHilight);
-    // OR in the new 1's
-    BitBlt((HDC) m_hdcMono, xoffset, yoffset, (int)GetToolBitmapSize().x, (int)GetToolBitmapSize().y,
-        hdcGlyphs, 0, 0, SRCPAINT);
-
-    SelectObject(hdcGlyphs, bitmapOld);
-    DeleteObject(hBitmap);
-    DeleteDC(hdcGlyphs);
-}
-
-void wxToolBar::DrawBlankButton(WXHDC hdc, int x, int y, int dx, int dy, int state)
-{
-    // face color
-    PatB(hdc, x, y, dx, dy, m_rgbFace);
-
-    if (state & wxTBSTATE_PRESSED) {
-        PatB(hdc, x + 1, y, dx - 2, 1, m_rgbFrame);
-        PatB(hdc, x + 1, y + dy - 1, dx - 2, 1, m_rgbFrame);
-        PatB(hdc, x, y + 1, 1, dy - 2, m_rgbFrame);
-        PatB(hdc, x + dx - 1, y +1, 1, dy - 2, m_rgbFrame);
-        PatB(hdc, x + 1, y + 1, 1, dy-2, m_rgbShadow);
-        PatB(hdc, x + 1, y + 1, dx-2, 1, m_rgbShadow);
-    }
-    else {
-        PatB(hdc, x + 1, y, dx - 2, 1, m_rgbFrame);
-        PatB(hdc, x + 1, y + dy - 1, dx - 2, 1, m_rgbFrame);
-        PatB(hdc, x, y + 1, 1, dy - 2, m_rgbFrame);
-        PatB(hdc, x + dx - 1, y + 1, 1, dy - 2, m_rgbFrame);
-        dx -= 2;
-        dy -= 2;
-        PatB(hdc, x + 1, y + 1, 1, dy - 1, m_rgbHilight);
-        PatB(hdc, x + 1, y + 1, dx - 1, 1, m_rgbHilight);
-        PatB(hdc, x + dx, y + 1, 1, dy, m_rgbShadow);
-        PatB(hdc, x + 1, y + dy, dx, 1,   m_rgbShadow);
-        PatB(hdc, x + dx - 1, y + 2, 1, dy - 2, m_rgbShadow);
-        PatB(hdc, x + 2, y + dy - 1, dx - 2, 1,   m_rgbShadow);
-    }
-}
-
-void wxToolBar::DrawButton(WXHDC hdc, int x, int y, int dx, int dy,
-                           wxToolBarToolBase *toolBase, int state)
-{
-    wxToolBarTool *tool = (wxToolBarTool *)toolBase;
-
-    int yOffset;
-    HBRUSH hbrOld, hbr;
-    BOOL bMaskCreated = FALSE;
-    int xButton = 0;		// assume button is down
-    int dxFace, dyFace;
-    int xCenterOffset;
-
-    dxFace = dx;
-    dyFace = dy;
-
-//    HBITMAP hBitmap = (HBITMAP) tool->m_bitmap1.GetHBITMAP();
-    HDC globalDC = ::GetDC(NULL);
-    HDC hdcGlyphs = CreateCompatibleDC(globalDC);
-    ReleaseDC(NULL, globalDC);
-
-    // get the proper button look - up or down.
-    if (!(state & (wxTBSTATE_PRESSED | wxTBSTATE_CHECKED))) {
-	xButton = dx;	// use 'up' version of button
-	dxFace -= 2;	
-	dyFace -= 2;	// extents to ignore button highlight
-    }
-
-    DrawBlankButton(hdc, x, y, dx, dy, state);
-
-
-    // move coordinates inside border and away from upper left highlight.
-    // the extents change accordingly.
-    x += 2;
-    y += 2;
-    dxFace -= 3;		
-    dyFace -= 3;
-
-    // Using bmpDisabled can cause problems (don't know why!)
-#if !defined(__WIN32__) && !defined(__WIN386__)
-    HBITMAP bitmapOld;
-    if (tool->GetBitmap2().Ok())
-      bitmapOld = GetHbitmapOf(tool->GetBitmap2());
-    else
-      bitmapOld = GetHbitmapOf(tool->GetBitmap1());
-#else
-    HBITMAP bitmapOld = GetHbitmapOf(tool->GetBitmap1());
-#endif    
-
-    bitmapOld = (HBITMAP)SelectObject(hdcGlyphs, bitmapOld);
-
-    // calculate offset of face from (x,y).  y is always from the top,
-    // so the offset is easy.  x needs to be centered in face.
-    yOffset = 1;
-    xCenterOffset = (dxFace - (int)GetToolBitmapSize().x)/2;
-    if (state & (wxTBSTATE_PRESSED | wxTBSTATE_CHECKED))
-    {
-	// pressed state moves down and to the right
-	// (x moves automatically as face size grows)
-        yOffset++;
-    }
-
-    // now put on the face
-    if (state & wxTBSTATE_ENABLED) {
-        // regular version
-        BitBlt((HDC) hdc, x+xCenterOffset, y + yOffset, (int)GetToolBitmapSize().x, (int)GetToolBitmapSize().y,
-            hdcGlyphs, 0, 0, SRCCOPY);
-    } else {
-        // disabled version (or indeterminate)
-	bMaskCreated = TRUE;
-        CreateMask((WXHDC) hdcGlyphs, xCenterOffset, yOffset, dxFace, dyFace);
-//        CreateMask(hBitmap, xCenterOffset, yOffset, dxFace, dyFace);
-
-	SetTextColor((HDC) hdc, 0L);	 // 0's in mono -> 0 (for ROP)
-	SetBkColor((HDC) hdc, 0x00FFFFFF); // 1's in mono -> 1
-
-	// draw glyph's white understrike
-	if (!(state & wxTBSTATE_INDETERMINATE)) {
-	    hbr = CreateSolidBrush(m_rgbHilight);
-	    if (hbr) {
-	        hbrOld = (HBRUSH) SelectObject((HDC) hdc, hbr);
-	        if (hbrOld) {
-	            // draw hilight color where we have 0's in the mask
-                    BitBlt((HDC) hdc, x + 1, y + 1, dxFace, dyFace, (HDC) m_hdcMono, 0, 0, 0x00B8074A);
-	            SelectObject((HDC) hdc, hbrOld);
-	        }
-	        DeleteObject(hbr);
-	    }
-	}
-
-	// gray out glyph
-	hbr = CreateSolidBrush(m_rgbShadow);
-	if (hbr) {
-	    hbrOld = (HBRUSH) SelectObject((HDC) hdc, hbr);
-	    if (hbrOld) {
-	        // draw the shadow color where we have 0's in the mask
-                BitBlt((HDC) hdc, x, y, dxFace, dyFace, (HDC) m_hdcMono, 0, 0, 0x00B8074A);
-	        SelectObject((HDC) hdc, hbrOld);
-	    }
-	    DeleteObject(hbr);
-	}
-
-	if (state & wxTBSTATE_CHECKED) {
-	    BitBlt((HDC) m_hdcMono, 1, 1, dxFace - 1, dyFace - 1, (HDC) m_hdcMono, 0, 0, SRCAND);
-	}
-    }
-
-    if (state & (wxTBSTATE_CHECKED | wxTBSTATE_INDETERMINATE)) {
-
-        hbrOld = (HBRUSH) SelectObject((HDC) hdc, (HBRUSH) m_hbrDither);
-	if (hbrOld) {
-
-	    if (!bMaskCreated)
-                CreateMask((WXHDC) hdcGlyphs, xCenterOffset, yOffset, dxFace, dyFace);
-//                CreateMask(hBitmap, xCenterOffset, yOffset, dxFace, dyFace);
-
-	    SetTextColor((HDC) hdc, 0L);		// 0 -> 0
-	    SetBkColor((HDC) hdc, 0x00FFFFFF);	// 1 -> 1
-
-	    // only draw the dither brush where the mask is 1's
-            BitBlt((HDC) hdc, x, y, dxFace, dyFace, (HDC) m_hdcMono, 0, 0, 0x00E20746);
-
-	    SelectObject((HDC) hdc, hbrOld);
-	}
-    }
-    SelectObject(hdcGlyphs, bitmapOld);
-    DeleteDC(hdcGlyphs);
-}
-
-// ----------------------------------------------------------------------------
-// drawing helpers
-// ----------------------------------------------------------------------------
-
-void wxToolBar::GetSysColors()
-{
-	static COLORREF rgbSaveFace    = 0xffffffffL,
-	                rgbSaveShadow  = 0xffffffffL,
-	                rgbSaveHilight = 0xffffffffL,
-	                rgbSaveFrame   = 0xffffffffL;
-
-    // For now, override these because the colour replacement isn't working,
-    // and we get inconsistent colours. Assume all buttons are grey for the moment.
-
-//	m_rgbFace    = GetSysColor(COLOR_BTNFACE);
-        m_rgbFace = RGB(192,192,192);
-//	m_rgbShadow  = GetSysColor(COLOR_BTNSHADOW);
-        m_rgbShadow = RGB(128,128,128);
-//	m_rgbHilight = GetSysColor(COLOR_BTNHIGHLIGHT);
-	m_rgbHilight = RGB(255, 255, 255);
-
-	m_rgbFrame   = GetSysColor(COLOR_WINDOWFRAME);
-
-	if (rgbSaveFace!=m_rgbFace || rgbSaveShadow!=m_rgbShadow
-		|| rgbSaveHilight!=m_rgbHilight || rgbSaveFrame!=m_rgbFrame)
-	{
-		rgbSaveFace    = m_rgbFace;
-		rgbSaveShadow  = m_rgbShadow;
-		rgbSaveHilight = m_rgbHilight;
-        rgbSaveFrame   = m_rgbFrame;
-
-		// Update the brush for pushed-in buttons
-		CreateDitherBrush();
-	}
-}
-
-WXHBITMAP wxToolBar::CreateDitherBitmap()
-{
-    BITMAPINFO* pbmi;
-    HBITMAP hbm;
-    HDC hdc;
-    int i;
-    long patGray[8];
-    DWORD rgb;
-
-    pbmi = (BITMAPINFO *)malloc(sizeof(BITMAPINFOHEADER) + 16*sizeof(RGBQUAD));
-    memset(pbmi, 0, (sizeof(BITMAPINFOHEADER) + 16*sizeof(RGBQUAD)));
-
-    pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
-    pbmi->bmiHeader.biWidth = 8;
-    pbmi->bmiHeader.biHeight = 8;
-    pbmi->bmiHeader.biPlanes = 1;
-    pbmi->bmiHeader.biBitCount = 1;
-    pbmi->bmiHeader.biCompression = BI_RGB;
-
-//    rgb = GetSysColor(COLOR_BTNFACE);
-    rgb = RGB(192,192,192);
-
-    pbmi->bmiColors[0].rgbBlue  = GetBValue(rgb);
-    pbmi->bmiColors[0].rgbGreen = GetGValue(rgb);
-    pbmi->bmiColors[0].rgbRed   = GetRValue(rgb);
-    pbmi->bmiColors[0].rgbReserved = 0;
-
-//    rgb = GetSysColor(COLOR_BTNHIGHLIGHT);
-    rgb = RGB(255, 255, 255);
-
-    pbmi->bmiColors[1].rgbBlue  = GetBValue(rgb);
-    pbmi->bmiColors[1].rgbGreen = GetGValue(rgb);
-    pbmi->bmiColors[1].rgbRed   = GetRValue(rgb);
-    pbmi->bmiColors[1].rgbReserved = 0;
-
-    /* initialize the brushes */
-
-    for (i = 0; i < 8; i++)
-       if (i & 1)
-           patGray[i] = 0xAAAA5555L;   //  0x11114444L; // lighter gray
-       else
-           patGray[i] = 0x5555AAAAL;   //  0x11114444L; // lighter gray
-
-    hdc = ::GetDC(NULL);
-
-    hbm = CreateDIBitmap(hdc, &pbmi->bmiHeader, CBM_INIT, patGray, pbmi, DIB_RGB_COLORS);
-
-    ReleaseDC(NULL, hdc);
-    free(pbmi);
-
-    return (WXHBITMAP)hbm;
-}
-
-bool wxToolBar::CreateDitherBrush()
-{
-	HBITMAP hbmGray;
-	HBRUSH hbrSave;
-	if (m_hbrDither)
-	  return TRUE;
-	hbmGray = (HBITMAP) CreateDitherBitmap();
-
-	if (hbmGray)
-	{
-		hbrSave = (HBRUSH) m_hbrDither;
-		m_hbrDither = (WXHBRUSH) CreatePatternBrush(hbmGray);
-		DeleteObject(hbmGray);
-		if (m_hbrDither)
-		{
-			if (hbrSave)
-			{
-				DeleteObject(hbrSave);
-			}
-			return TRUE;
-		}
-		else
-		{
-			m_hbrDither = (WXHBRUSH) hbrSave;
-		}
-	}
-
-	return FALSE;
-}
-
-bool wxToolBar::FreeDitherBrush(void)
-{
-    if (m_hbrDither)
-      DeleteObject((HBRUSH) m_hbrDither);
-    m_hbrDither = 0;
-    return TRUE;
-}
-
-typedef struct tagCOLORMAP2
-{
-    COLORREF bgrfrom;
-    COLORREF bgrto;
-    COLORREF sysColor;
-} COLORMAP2;
-
-// these are the default colors used to map the dib colors
-// to the current system colors
-
-#define BGR_BUTTONTEXT      (RGB(000,000,000))  // black
-#define BGR_BUTTONSHADOW    (RGB(128,128,128))  // dark grey
-#define BGR_BUTTONFACE      (RGB(192,192,192))  // bright grey
-#define BGR_BUTTONHILIGHT   (RGB(255,255,255))  // white
-#define BGR_BACKGROUNDSEL   (RGB(255,000,000))  // blue
-#define BGR_BACKGROUND      (RGB(255,000,255))  // magenta
-#define FlipColor(rgb)      (RGB(GetBValue(rgb), GetGValue(rgb), GetRValue(rgb)))
-
-WXHBITMAP wxToolBar::CreateMappedBitmap(WXHINSTANCE WXUNUSED(hInstance), void *info)
-{
-  LPBITMAPINFOHEADER lpBitmapInfo = (LPBITMAPINFOHEADER)info;
-  HDC			hdc, hdcMem = NULL;
-
-  DWORD FAR		*p;
-  LPSTR 		lpBits;
-  HBITMAP		hbm = NULL, hbmOld;
-  int numcolors, i;
-  int wid, hgt;
-  static COLORMAP2 ColorMap[] = {
-    {BGR_BUTTONTEXT,    BGR_BUTTONTEXT,    COLOR_BTNTEXT},     // black
-    {BGR_BUTTONSHADOW,  BGR_BUTTONSHADOW,  COLOR_BTNSHADOW},   // dark grey
-    {BGR_BUTTONFACE,    BGR_BUTTONFACE,    COLOR_BTNFACE},     // bright grey
-    {BGR_BUTTONHILIGHT, BGR_BUTTONHILIGHT, COLOR_BTNHIGHLIGHT},// white
-    {BGR_BACKGROUNDSEL, BGR_BACKGROUNDSEL, COLOR_HIGHLIGHT},   // blue
-    {BGR_BACKGROUND,    BGR_BACKGROUND,    COLOR_WINDOW}       // magenta
-  };
-
-  #define NUM_MAPS (sizeof(ColorMap)/sizeof(COLORMAP2))
-
-  if (!lpBitmapInfo)
-  	return 0;
-
-  //
-  // So what are the new colors anyway ?
-  //
-  for (i=0; i < (int) NUM_MAPS; i++) {
-     ColorMap[i].bgrto = (long unsigned int) FlipColor(GetSysColor((int)ColorMap[i].sysColor));
-  }
-
-  p = (DWORD FAR *)(((LPSTR)lpBitmapInfo) + lpBitmapInfo->biSize);
-
-  /* Replace button-face and button-shadow colors with the current values
-   */
-  numcolors = 16;
-
-  while (numcolors-- > 0) {
-      for (i = 0; i < (int) NUM_MAPS; i++) {
-          if (*p == ColorMap[i].bgrfrom) {
-          *p = ColorMap[i].bgrto;
-	      break;
-	  }
-      }
-      p++;
-  }
-
-  /* First skip over the header structure */
-  lpBits = (LPSTR)(lpBitmapInfo + 1);
-
-  /* Skip the color table entries, if any */
-  lpBits += (1 << (lpBitmapInfo->biBitCount)) * sizeof(RGBQUAD);
-
-  /* Create a color bitmap compatible with the display device */
-  i = wid = (int)lpBitmapInfo->biWidth;
-  hgt = (int)lpBitmapInfo->biHeight;
-  hdc = ::GetDC(NULL);
-
-  hdcMem = CreateCompatibleDC(hdc);
-  if (hdcMem) {
-//    hbm = CreateDiscardableBitmap(hdc, i, hgt);
-    hbm = CreateCompatibleBitmap(hdc, i, hgt);
-    if (hbm) {
-        hbmOld = (HBITMAP) SelectObject(hdcMem, hbm);
-
-        // set the main image
-        StretchDIBits(hdcMem, 0, 0, wid, hgt, 0, 0, wid, hgt, lpBits,
-                   (LPBITMAPINFO)lpBitmapInfo, DIB_RGB_COLORS, SRCCOPY);
-
-        SelectObject(hdcMem, hbmOld);
-    }
-
-    DeleteObject(hdcMem);
-  }
-
-  ReleaseDC(NULL, hdc);
-
-  return (WXHBITMAP) hbm;
-}
-
-WXHBITMAP wxToolBar::CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap)
-{
-    HANDLE hDIB = wxDIB::ConvertFromBitmap((HBITMAP) hBitmap);
-    if ( !hDIB )
-        return 0;
-
-    WXHBITMAP newBitmap = CreateMappedBitmap(hInstance, GlobalPtr(hDIB));
-
-    GlobalFree(hDIB);
-
-    return newBitmap;
-}
-
-#endif // wxUSE_TOOLBAR
-
diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp
index fa977a9896..f7c7cb3ada 100644
--- a/src/msw/textctrl.cpp
+++ b/src/msw/textctrl.cpp
@@ -199,9 +199,6 @@ BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
     EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo)
     EVT_UPDATE_UI(wxID_CLEAR, wxTextCtrl::OnUpdateDelete)
     EVT_UPDATE_UI(wxID_SELECTALL, wxTextCtrl::OnUpdateSelectAll)
-#ifdef __WIN16__
-    EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
-#endif
 
     EVT_SET_FOCUS(wxTextCtrl::OnSetFocus)
 END_EVENT_TABLE()
@@ -1194,7 +1191,6 @@ void wxTextCtrl::DoSetSelection(long from, long to, bool scrollCaret)
 {
     HWND hWnd = GetHwnd();
 
-#ifdef __WIN32__
 #if wxUSE_RICHEDIT
     if ( IsRich() )
     {
@@ -1250,10 +1246,6 @@ void wxTextCtrl::DoSetSelection(long from, long to, bool scrollCaret)
         }
 #endif // wxUSE_RICHEDIT
     }
-#else // Win16
-    // WPARAM is 0: selection is scrolled into view
-    SendMessage(hWnd, EM_SETSEL, (WPARAM)0, (LPARAM)MAKELONG(from, to));
-#endif // Win32/16
 }
 
 // ----------------------------------------------------------------------------
@@ -1867,40 +1859,8 @@ WXHBRUSH wxTextCtrl::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSE
     return (WXHBRUSH)brush->GetResourceHandle();
 }
 
-// In WIN16, need to override normal erasing because
-// Ctl3D doesn't use the wxWindows background colour.
-#ifdef __WIN16__
-void wxTextCtrl::OnEraseBackground(wxEraseEvent& event)
-{
-    wxColour col(m_backgroundColour);
-
-#if wxUSE_CTL3D
-    if (m_useCtl3D)
-        col = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
-#endif
-
-    RECT rect;
-    ::GetClientRect(GetHwnd(), &rect);
-
-    COLORREF ref = wxColourToRGB(col);
-    HBRUSH hBrush = ::CreateSolidBrush(ref);
-    if ( !hBrush )
-        wxLogLastError(wxT("CreateSolidBrush"));
-
-    HDC hdc = (HDC)event.GetDC()->GetHDC();
-
-    int mode = ::SetMapMode(hdc, MM_TEXT);
-
-    ::FillRect(hdc, &rect, hBrush);
-    ::DeleteObject(hBrush);
-    ::SetMapMode(hdc, mode);
-
-}
-#endif // Win16
-
 bool wxTextCtrl::AdjustSpaceLimit()
 {
-#ifndef __WIN16__
     unsigned int limit = ::SendMessage(GetHwnd(), EM_GETLIMITTEXT, 0, 0);
 
     // HACK: we try to automatically extend the limit for the amount of text
@@ -1942,7 +1902,6 @@ bool wxTextCtrl::AdjustSpaceLimit()
             ::SendMessage(GetHwnd(), EM_LIMITTEXT, limit, 0);
         }
     }
-#endif // !Win16
 
     // we changed the limit
     return TRUE;
diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp
index 3c80ac8f54..0296aac6ce 100644
--- a/src/msw/toplevel.cpp
+++ b/src/msw/toplevel.cpp
@@ -222,7 +222,6 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
 
     if ( exflags )
     {
-#if !defined(__WIN16__)
         if ( !(GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) )
         {
             if ( style & wxFRAME_TOOL_WINDOW )
@@ -255,7 +254,6 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
 #endif
             //else: nothing to do [here]
         }
-#endif // !Win16
 
         if ( style & wxSTAY_ON_TOP )
             *exflags |= WS_EX_TOPMOST;
diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp
index 3e3721f596..e56792a52d 100644
--- a/src/msw/utils.cpp
+++ b/src/msw/utils.cpp
@@ -107,12 +107,6 @@
 static const wxChar WX_SECTION[] = wxT("wxWindows");
 static const wxChar eUSERNAME[]  = wxT("UserName");
 
-// these are only used under Win16
-#if !defined(__WIN32__) && !defined(__WXMICROWIN__)
-static const wxChar eHOSTNAME[]  = wxT("HostName");
-static const wxChar eUSERID[]    = wxT("UserId");
-#endif // !Win32
-
 // ============================================================================
 // implementation
 // ============================================================================
@@ -238,7 +232,7 @@ bool wxGetUserId(wxChar *buf, int maxSize)
 {
 #if defined(__WXWINCE__)
     return FALSE;
-#elif defined(__WIN32__) && !defined(__win32s__) && !defined(__WXMICROWIN__)
+#elif defined(__WIN32__) && !defined(__WXMICROWIN__)
     DWORD nSize = maxSize;
     if ( ::GetUserName(buf, &nSize) == 0 )
     {
@@ -252,7 +246,7 @@ bool wxGetUserId(wxChar *buf, int maxSize)
     }
 
     return TRUE;
-#else   // Win16 or Win32s
+#else   // __WXMICROWIN__
     wxChar *user;
     const wxChar *default_id = wxT("anonymous");
 
@@ -469,23 +463,7 @@ bool wxDirExists(const wxString& dir)
 #elif defined(__WIN32__)
     DWORD attribs = GetFileAttributes(dir);
     return ((attribs != (DWORD)-1) && (attribs & FILE_ATTRIBUTE_DIRECTORY));
-#else // Win16
-    #ifdef __BORLANDC__
-        struct ffblk fileInfo;
-    #else
-        struct find_t fileInfo;
-    #endif
-    // In Borland findfirst has a different argument
-    // ordering from _dos_findfirst. But _dos_findfirst
-    // _should_ be ok in both MS and Borland... why not?
-    #ifdef __BORLANDC__
-        return (findfirst(dir, &fileInfo, _A_SUBDIR) == 0 &&
-               (fileInfo.ff_attrib & _A_SUBDIR) != 0);
-    #else
-        return (_dos_findfirst(dir, _A_SUBDIR, &fileInfo) == 0) &&
-               ((fileInfo.attrib & _A_SUBDIR) != 0);
-    #endif
-#endif // Win32/16
+#endif // Win32/__WXMICROWIN__
 }
 
 bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
@@ -604,17 +582,6 @@ bool wxGetEnv(const wxString& var, wxString *value)
 {
 #ifdef __WXWINCE__
     return FALSE;
-#elif defined(__WIN16__)
-    const wxChar* ret = wxGetenv(var);
-    if ( !ret )
-        return FALSE;
-
-    if ( value )
-    {
-        *value = ret;
-    }
-
-    return TRUE;
 #else // Win32
     // first get the size of the buffer
     DWORD dwRet = ::GetEnvironmentVariable(var, NULL, 0);
@@ -631,7 +598,7 @@ bool wxGetEnv(const wxString& var, wxString *value)
     }
 
     return TRUE;
-#endif // Win16/32
+#endif // WinCE/32
 }
 
 bool wxSetEnv(const wxString& var, const wxChar *value)
@@ -930,8 +897,6 @@ bool wxShutdown(wxShutdownFlags wFlags)
     }
 
     return bOK;
-#else // Win16
-    return FALSE;
 #endif // Win32/16
 }
 
@@ -954,11 +919,7 @@ long wxGetFreeMemory()
 
 unsigned long wxGetProcessId()
 {
-#ifdef __WIN32__
     return ::GetCurrentProcessId();
-#else
-    return 0;
-#endif
 }
 
 // Emit a beeeeeep
@@ -969,7 +930,6 @@ void wxBell()
 
 wxString wxGetOsDescription()
 {
-#ifdef __WIN32__
     wxString str;
 
     OSVERSIONINFO info;
@@ -1012,9 +972,6 @@ wxString wxGetOsDescription()
     }
 
     return str;
-#else // Win16
-    return _("Windows 3.1");
-#endif // Win32/16
 }
 
 wxToolkitInfo& wxAppTraits::GetToolkitInfo()
diff --git a/src/msw/utilsexc.cpp b/src/msw/utilsexc.cpp
index b969c899bf..671d9e9083 100644
--- a/src/msw/utilsexc.cpp
+++ b/src/msw/utilsexc.cpp
@@ -113,12 +113,10 @@ struct wxExecuteData
 public:
     ~wxExecuteData()
     {
-#ifndef __WIN16__
         if ( !::CloseHandle(hProcess) )
         {
             wxLogLastError(wxT("CloseHandle(hProcess)"));
         }
-#endif
     }
 
     HWND       hWnd;          // window to send wxWM_PROC_TERMINATED to
diff --git a/src/msw/utilsgui.cpp b/src/msw/utilsgui.cpp
index 418aef7964..fc8b08f12d 100644
--- a/src/msw/utilsgui.cpp
+++ b/src/msw/utilsgui.cpp
@@ -334,7 +334,7 @@ void wxDisplaySizeMM(int *width, int *height)
 
 void wxClientDisplayRect(int *x, int *y, int *width, int *height)
 {
-#if defined(__WIN16__) || defined(__WXMICROWIN__)
+#if defined(__WXMICROWIN__)
     *x = 0; *y = 0;
     wxDisplaySize(width, height);
 #else
@@ -400,11 +400,7 @@ wxString WXDLLEXPORT wxGetWindowClass(WXHWND hWnd)
 
 WXWORD WXDLLEXPORT wxGetWindowId(WXHWND hWnd)
 {
-#ifndef __WIN32__
-    return (WXWORD)GetWindowWord((HWND)hWnd, GWW_ID);
-#else // Win32
     return (WXWORD)GetWindowLong((HWND)hWnd, GWL_ID);
-#endif // Win16/32
 }
 
 // ----------------------------------------------------------------------------
diff --git a/utils/tex2rtf/src/tex2rtf.cpp b/utils/tex2rtf/src/tex2rtf.cpp
index 86074e2fd0..464dc6656e 100644
--- a/utils/tex2rtf/src/tex2rtf.cpp
+++ b/utils/tex2rtf/src/tex2rtf.cpp
@@ -293,11 +293,6 @@ bool MyApp::OnInit()
   TheTex2RTFServer->Create(_T("TEX2RTF"));
 #endif
 
-#if defined(__WXMSW__) && defined(__WIN16__)
-  // Limit to max Windows array size
-  if (BufSize > 64) BufSize = 64;
-#endif
-
   TexInitialize(BufSize);
   ResetContentsLevels(0);
 
@@ -865,13 +860,8 @@ void ChooseOutputFile(bool force)
     }
     case TEX_HTML:
     {
-#if defined(__WXMSW__) && defined(__WIN16__)
-      wxStrcpy(extensionBuf, _T("htm"));
-      wxStrcat(wildBuf, _T("htm"));
-#else
       wxStrcpy(extensionBuf, _T("html"));
       wxStrcat(wildBuf, _T("html"));
-#endif
       break;
     }
   }
-- 
2.50.0

