extern void wxSetKeyboardHook(bool doIt);
extern wxCursor *g_globalCursor;
-HINSTANCE wxhInstance = 0;
MSG s_currentMsg;
wxApp *wxTheApp = NULL;
// (another useful flag is _CRTDBG_DELAY_FREE_MEM_DF which doesn't free
// deallocated memory which may be used to simulate low-memory condition)
wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF);
-
+#ifdef __MWERKS__
+#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT
+ // This seems to be necessary since there are 'rogue'
+ // objects present at this point (perhaps global objects?)
+ // Setting a checkpoint will ignore them as far as the
+ // memory checking facility is concerned.
+ // Of course you may argue that memory allocated in globals should be
+ // checked, but this is a reasonable compromise.
+ wxDebugContext::SetCheckpoint();
+#endif
+#endif
// take everything into a try-except block in release build
// FIXME other compilers must support Win32 SEH (structured exception
// handling) too, just find the appropriate keyword in their docs!
{
// Send the top window a dummy message so idle handler processing will
// start up again. Doing it this way ensures that the idle handler
- // wakes up in the right thread.
+ // wakes up in the right thread (see also wxWakeUpMainThread() which does
+ // the same for the main app thread only)
wxWindow *topWindow = wxTheApp->GetTopWindow();
- if ( topWindow ) {
- HWND hWnd = (HWND)topWindow->GetHWND();
- ::PostMessage(hWnd, WM_NULL, 0, 0);
+ if ( topWindow )
+ {
+ if ( !::PostMessage(GetHwndOf(topWindow), WM_NULL, 0, 0) )
+ {
+ // should never happen
+ wxLogLastError("PostMessage(WM_NULL)");
+ }
}
}
}
}
-
-HINSTANCE wxGetInstance()
-{
- return wxhInstance;
-}
-
-void wxSetInstance(HINSTANCE hInst)
-{
- wxhInstance = hInst;
-}
-
// For some reason, with MSVC++ 1.5, WinMain isn't linked in properly
// if in a separate file. So include it here to ensure it's linked.
#if (defined(__VISUALC__) && !defined(__WIN32__)) || (defined(__GNUWIN32__) && !defined(__TWIN32__))