ccomm.h
来自「这是G.723和G.729的音频编解码的源代码」· C头文件 代码 · 共 84 行
H
84 行
#ifndef __CCOMM_H__
#define __CCOMM_H__
#define USECOMM // yes, we need the COMM API
#define MAXBLOCK 256
#define READ_BUFFER_SIZE 1024
#define ASCII_XON 0x11
#define ASCII_XOFF 0x13
class CComm;
DWORD FAR PASCAL CommWatchProc(CComm* pCommObject);
typedef void(* CommCallBackFunc)(BYTE* pContent,UINT uSize,LPVOID lpUserInstance);
class CComm
{
friend DWORD FAR PASCAL CommWatchProc(CComm* pCommObject);
friend DWORD FAR PASCAL WriteThreadProc(CComm* pCommObject);
friend DWORD FAR PASCAL ReadThreadProc(CComm* pCommObject);
protected:
HANDLE m_hComm;
OVERLAPPED m_WriteOS;
OVERLAPPED m_ReadOS;
int m_nPort;
BOOL m_bConnected;
BOOL m_bDisplayError;
int m_nBaudRate;
int m_nInputBufferSize;
int m_nOutputBufferSize;
DWORD m_dwThreadID;
HANDLE m_hThread;
CommCallBackFunc m_pCallBackFunc;
LPVOID m_lpUserInstance;
HANDLE m_hWriteThread;
DWORD m_dwWriteThreadID;
HANDLE m_hReadThread;
DWORD m_dwReadThreadID;
HANDLE m_hQuitEvent;
HANDLE m_hWriteEvent;
HANDLE m_hCTSEvent;
HANDLE m_hReadEvent;
UINT m_uMiniBlockSize;
UINT m_uBlockSize;
CMultiplex * m_pMultiplex;
CDemultiplex * m_pDemultiplex;
CByteBuffer m_InputBuffer;
public:
CComm(CommCallBackFunc pCallBackFunc=NULL,
CMultiplex * pMultiplex=NULL,
CDemultiplex * pDemultiplex=NULL,
int nBaudRate=9600,
int nInputBufferSize=4096,
int nOutputBufferSize=4096,
BOOL bDisplayError=FALSE);
virtual ~CComm(){CloseConnection();}
BOOL WriteCommBlock(BYTE* lpByte , DWORD dwBytesToWrite);
BOOL OpenComm(int nPortNumber=2,LPVOID lpUserInstance=NULL);
BOOL SetRate(int nBaudRate);
BOOL CloseConnection();
private:
BOOL CreateTTYInfo();
int ReadCommBlock(LPSTR lpszBlock, int nMaxLength );
BOOL OpenConnection();
BOOL SetupConnection();
};
inline BOOL CComm::SetRate(int nBaudRate)
{
if(m_bConnected)
return FALSE;
m_nBaudRate=nBaudRate;
return TRUE;
}
#endif//__CCOMM_H__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?