enum { ISSEND , ISRECEIVE } //defined for the CByteComm to decide it's function
//define of class CBtyeSend
class CByteComm : public CObject
{ 
 //construct & destruct
    protected :
    CByteComm(unsigned short usOperation,Byte bByte = 0) ;
    ~CByteComm() ;
 
 //members
    public :
    Byte m_bByte;  
    unsigned short m_usOperation;
 //operation   
    protected :
    virtual BOOL Send();
    virtual BOOL Receive();
    virtual void IfSendError() { return };
    virtual void IfReceiveError() { return };
    public :
    virtual BOOL Action(); 
 
 }

//THIS DEFINED FOR CSectComm::m_usStatus                       
enum { BYTEOK , BYTEERR , QUEUEEMPTY }                       
//define of class CSectComm 
class CSectComm : public CObject
{ 
 //construct & destruct
	protected :
	CSectComm();
	~CSectComm();
 //members	
    private :
    CObArray m_Queue; 
    unsigned short m_usIndex;
    unsigned short m_usStatus;
 //operation              
    public :
    virtual BOOL Action();    
    virtual BOOL IsFinished();
    unsigned short GetStatus() { return m_usStatus; }
    protected :
    virtual void IfError();
 } 