+ bool Wait(mutex_t &mutex)
+ {
+ if (m_bOnVista)
+ {
+ return ((*g_SleepConditionVariableCS)(m_conditionVista, mutex, INFINITE) ? true : false);
+ }
+ else
+ {
+ ::ResetEvent(m_conditionPreVista);
+ MutexUnlock(mutex);
+ DWORD iWaitReturn = ::WaitForSingleObject(m_conditionPreVista, 1000);
+ MutexLock(mutex);
+ return (iWaitReturn == 0);
+ }
+ }
+