Re[3]: Почему WaitCommEvent не работает с win2000?
От: dodson  
Дата: 13.01.03 12:57
Оценка:
Здравствуйте, SSAlex, Вы писали:

SSA>Здравствуйте, dodson, Вы писали:


D>>а по-подробнее можно? используется ли overlapped?...


SSA>Да, есть такое дело;

SSA>Я ему пишу:
ну так в чем его "нерабочесть" проявляется?

if (WaitCommEvent(hCommPort,&dwMask,&ov))
  {
// сюда попдаем если в событие которое мы ждем уже случилось 
  ....
  }else{ 
    if(GetLastError() == ERROR_IO_PENDING){ 
    // обрабат. overlapped:
      switch(WaitForSingleObject(overlapped.hEvent, timeoutInSeconds * 1000)){ //ждем какое-то время
        case WAIT_TIMEOUT: // не дождались
          CloseHandle(overlapped.hEvent);
          return TimeoutExceed;
        break;
        case WAIT_OBJECT_0: // чего-то дождались
        ...
        ...
}


SSA>А в overlapped я пишу:


SSA> OVERLAPPED ov;


SSA> ov.Offset = 0;

SSA> ov.OffsetHigh = 0;
SSA> .....
SSA> if(SetCommMask(hCommPort,EV_TXEMPTY | EV_CTS | EV_DSR |EV_RXCHAR | EV_RLSD))
SSA> ov.hEvent = CreateEvent(NULL,FALSE,NULL,NULL);
SSA> ....
ну да, должно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.