Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int CSerial::ReadData(void *buffer, int limit)
- {
- if (!m_bOpened || m_hIDComDev == NULL) return(0);
- BOOL bReadStatus;
- DWORD dwBytesRead, dwErrorFlags;
- COMSTAT ComStat;
- ClearCommError(m_hIDComDev, &dwErrorFlags, &ComStat);
- if (!ComStat.cbInQue) return(0);
- dwBytesRead = (DWORD)ComStat.cbInQue;
- if (limit < (int)dwBytesRead) dwBytesRead = (DWORD)limit;
- bReadStatus = ReadFile(m_hIDComDev, buffer, dwBytesRead, &dwBytesRead, &m_OverlappedRead);
- if (!bReadStatus){
- if (GetLastError() == ERROR_IO_PENDING){
- WaitForSingleObject(m_OverlappedRead.hEvent, 2000);
- return((int)dwBytesRead);
- }
- return(0);
- }
- return((int)dwBytesRead);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement