проверить состояние события си windows

чтобы проверить состояние события , действуйте аналогично этому примеру

   if  (WaitForSingleObject(hEvent1, 0)==WAIT_TIMEOUT ) // если событие находится в несигнальном состоянии
             SetEvent(hEvent1); // переводим в сигнальное состояние событие прочтения первого файла
   else if ((WaitForSingleObject(hEvent1, 0)==WAIT_OBJECT_0)&&(WaitForSingleObject(hEvent1, 0)==WAIT_TIMEOUT )) // если первое событие находится в сигнальном состоячнии, а второе в несигнальном
       SetEvent(hEvent2); // переводим в сигнальное состояние событие прочтения второго файла

Идея основана на том, что функция WaitForSingleObject() (в качестве второго параметра передаём нулевое время - так как нас интересует просто проверка состояния и ждать ни к чему) возвращает =

  1. WAIT_TIMEOUT - для событий в НЕ-сигнальном состоянии
  2. WAIT_OBJECT_0 - для событий , в сигнальном состоянии
  3. WAIT_FAILED - для тех ситуаций, когда проверка состояние провалилась

ВНИМАНИЕ! - ТАКАЯ ПРОВЕРКА МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА ТОЛЬКО ДЛЯ СОБЫТИЙ С РУЧНЫМ СБРОСОМ (иначе они "сбросятся" сразу после проверки)

ещё код (hEvent1 - дескриптор некоего события)-

  
 if  (WaitForSingleObject(hEvent1, 0)==WAIT_TIMEOUT ) printf("[ is set WAIT_TIMEOUT]\n");
   if  (WaitForSingleObject(hEvent1, 0)==WAIT_OBJECT_0 ) printf("[ is set WAIT_OBJECT_0]\n");
   if  (WaitForSingleObject(hEvent1, 0)==WAIT_FAILED ) printf("[is set WAIT_FAILED]\n");
_____________________________________________
Источники(читать подробнее)=
http://stackoverflow.com/questions/12779...
Ключевые слова и фразы(для поиска)=
проверика состояния события си windows