-// Stupid ASCII macros
-#define wxToUpper(C) (((C) >= 'a' && (C) <= 'z')? (C) - 'a' + 'A': (C))
-#define wxToLower(C) (((C) >= 'A' && (C) <= 'Z')? (C) - 'A' + 'a': (C))
+// Make a copy of this string using 'new'
+WXDLLEXPORT wxChar* copystring(const wxChar *s);
+
+// Matches string one within string two regardless of case
+WXDLLEXPORT bool StringMatch(const wxChar *one, const wxChar *two, bool subString = TRUE, bool exact = FALSE);
+
+// A shorter way of using strcmp
+#define wxStringEq(s1, s2) (s1 && s2 && (wxStrcmp(s1, s2) == 0))
+
+// ----------------------------------------------------------------------------
+// Miscellaneous functions
+// ----------------------------------------------------------------------------
+
+// Sound the bell
+WXDLLEXPORT void wxBell();
+
+// Get OS description as a user-readable string
+WXDLLEXPORT wxString wxGetOsDescription();
+
+// Get OS version
+WXDLLEXPORT int wxGetOsVersion(int *majorVsn = (int *) NULL,
+ int *minorVsn = (int *) NULL);