+        {  true, NULL                        }, // wxCURSOR_NONE
+        {  true, IDC_ARROW                   }, // wxCURSOR_ARROW
+        { false, _T("wxCURSOR_RIGHT_ARROW")  }, // wxCURSOR_RIGHT_ARROW
+        { false, _T("wxCURSOR_BULLSEYE")     }, // wxCURSOR_BULLSEYE
+        {  true, IDC_ARROW                   }, // wxCURSOR_CHAR
+        {  true, IDC_CROSS                   }, // wxCURSOR_CROSS
+        { false, _T("wxCURSOR_HAND")         }, // wxCURSOR_HAND
+        {  true, IDC_IBEAM                   }, // wxCURSOR_IBEAM
+        {  true, IDC_ARROW                   }, // wxCURSOR_LEFT_BUTTON
+        { false, _T("wxCURSOR_MAGNIFIER")    }, // wxCURSOR_MAGNIFIER
+        {  true, IDC_ARROW                   }, // wxCURSOR_MIDDLE_BUTTON
+        {  true, IDC_NO                      }, // wxCURSOR_NO_ENTRY
+        { false, _T("wxCURSOR_PAINT_BRUSH")  }, // wxCURSOR_PAINT_BRUSH
+        { false, _T("wxCURSOR_PENCIL")       }, // wxCURSOR_PENCIL
+        { false, _T("wxCURSOR_POINT_LEFT")   }, // wxCURSOR_POINT_LEFT
+        { false, _T("wxCURSOR_POINT_RIGHT")  }, // wxCURSOR_POINT_RIGHT
+        {  true, IDC_HELP                    }, // wxCURSOR_QUESTION_ARROW
+        {  true, IDC_ARROW                   }, // wxCURSOR_RIGHT_BUTTON
+        {  true, IDC_SIZENESW                }, // wxCURSOR_SIZENESW
+        {  true, IDC_SIZENS                  }, // wxCURSOR_SIZENS
+        {  true, IDC_SIZENWSE                }, // wxCURSOR_SIZENWSE
+        {  true, IDC_SIZEWE                  }, // wxCURSOR_SIZEWE
+        {  true, IDC_SIZEALL                 }, // wxCURSOR_SIZING
+        { false, _T("wxCURSOR_SPRAYCAN")     }, // wxCURSOR_SPRAYCAN
+        {  true, IDC_WAIT                    }, // wxCURSOR_WAIT
+        {  true, IDC_WAIT                    }, // wxCURSOR_WATCH
+        { false, _T("wxCURSOR_BLANK")        }, // wxCURSOR_BLANK
+        {  true, IDC_APPSTARTING             }, // wxCURSOR_ARROWWAIT
+
+        // no entry for wxCURSOR_MAX
+    };
+
+    wxCOMPILE_TIME_ASSERT( WXSIZEOF(stdCursors) == wxCURSOR_MAX,
+                           CursorsIdArrayMismatch );
+
+    wxCHECK_RET( idCursor > 0 && (size_t)idCursor < WXSIZEOF(stdCursors),
+                 _T("invalid cursor id in wxCursor() ctor") );
+
+    const StdCursor& stdCursor = stdCursors[idCursor];
+
+    HCURSOR hcursor = ::LoadCursor(stdCursor.isStd ? NULL : wxGetInstance(),
+                                   stdCursor.name);
+
+    if ( !hcursor )