#endif
#ifndef WX_PRECOMP
+ #include "wx/msw/wrapcctl.h"
#include "wx/dynarray.h"
#include "wx/frame.h"
#include "wx/app.h"
#include "wx/intl.h"
#include "wx/wxchar.h"
#include "wx/log.h"
+ #include "wx/module.h"
#endif
#include "wx/apptrait.h"
#include "wx/filename.h"
-#include "wx/module.h"
#include "wx/dynlib.h"
#include "wx/evtloop.h"
#include <string.h>
#include <ctype.h>
-#include "wx/msw/wrapcctl.h"
-
// For MB_TASKMODAL
#ifdef __WXWINCE__
#include "wx/msw/wince/missing.h"
return evtLoop->Dispatch();
}
+DWORD wxGUIAppTraits::WaitForThread(WXHANDLE hThread)
+{
+ // if we don't have a running event loop, we shouldn't wait for the
+ // messages as we never remove them from the message queue and so we enter
+ // an infinite loop as MsgWaitForMultipleObjects() keeps returning
+ // WAIT_OBJECT_0 + 1
+ if ( !wxEventLoop::GetActive() )
+ return DoSimpleWaitForThread(hThread);
+
+ return ::MsgWaitForMultipleObjects
+ (
+ 1, // number of objects to wait for
+ (HANDLE *)&hThread, // the objects
+ false, // wait for any objects, not all
+ INFINITE, // no timeout
+ QS_ALLINPUT | // return as soon as there are any events
+ QS_ALLPOSTMESSAGE
+ );
+}
+
wxPortId wxGUIAppTraits::GetToolkitVersion(int *majVer, int *minVer) const
{
OSVERSIONINFO info;