www.pudn.com > SendMsgOCX.rar > WSerialComm.h


// WSerialComm.h: interface for the CWSerialComm class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_WSERIALCOMM_H__37A6B64A_127F_4144_B02D_BC3983667F0C__INCLUDED_) 
#define AFX_WSERIALCOMM_H__37A6B64A_127F_4144_B02D_BC3983667F0C__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
 
const int READ_BUFF_SIZE = 1024; 
 
class CWSerialComm   
{ 
public: 
	 
	BOOL CloseCom(); 
	BOOL IsOpen(); 
	BOOL OpenCom(int portNo); 
 
	CWSerialComm(); 
	~CWSerialComm(); 
 
protected: 
 
   // called by ReadCommBlock() and WriteDataBlock() to report error 
   // return the successive operation: ignore or retry 
   // dwError is gotten by ClearCommError() 
   virtual BOOL	OnCommPortError(  DWORD dwError, BOOL bReading = TRUE ); 
   virtual void	OnDataRead( const LPBYTE, DWORD ) ;  
    
   BOOL     WriteDataBlock(const BYTE* lpByte, DWORD dwBytesToWrite); 
 
private: 
 
   static   void GetCommName( LPSTR lpszComName, int portNo); 
   DWORD	ReadCommBlock( ) ;	 
   BOOL     InitMembers(); 
   void		SetCommConfig(); 
 
   HANDLE m_hComDev; 
    
   // status 
   volatile BOOL m_bOpened;	//opened 
 
   // 
   HANDLE	   m_hCommWatchThread; 
   volatile DWORD       m_dwThreadID ;		 
    
   OVERLAPPED  m_osWrite, m_osRead ; 
 
   BYTE      m_pReadBuff[ READ_BUFF_SIZE ];	 
 
   friend UINT CommWatchProc( LPVOID lpData );  
 
}; 
 
#endif // !defined(AFX_WSERIALCOMM_H__37A6B64A_127F_4144_B02D_BC3983667F0C__INCLUDED_)