|
通过支持AT指令集的手机发送短消息(源代码)(2) bool Close(); bool Open( int nPort = 1, int NBAud = 19200 ); bool IsOpened( void ){ return( m_bOpened ); } void DeliverThread(); void SubmitThread(); CGSMPhone(); virtual ~CGSMPhone(); HWND m_hWnd; DWORD m_dwTimeout; CString m_strSMCenter; protected: DWORD Deliver( char *&pData ); DWORD Submit ( char *szBuffer, DWORD dwLen ); DWORD PDUEncodeEng( char *pMsg, char *&pResultData ); DWORD PDUEncodeChn( char *pMsg, char *&pResultData ); DWORD PDUDecodeEng( char *pMsg, char *&pResultData ); DWORD PDUDecodeChn( char *pMsg, char *&pResultData ); char* NumberEncode( char *pPhoneNumber ); bool NumberDecode ( char *szNumber, int nLen ); void Str2StrArr( CString strTemp, CStringArray &sa, char cDelimiter ); DWORD ReadStringFromComm( char *szBuffer, DWORD dwBufLen ); DWORD ReadComm( char *szBuffer, DWORD dwBufLen ); bool WriteComm( const char *buffer, DWORD size ); bool FreeShortMsgPool( void ); bool FreeDeliverPool ( void ); bool FreeSubmitPool ( void ); bool CreateShortMsgPool( DWORD dwNum ); bool CreateDeliverPool ( DWORD dwNum ); bool CreateSubmitPool ( DWORD dwNum ); SubmitPool* m_pSPool; HANDLE* m_phSPDeliver; HANDLE* m_phSPIDLE; DeliverPool* m_pDPool; HANDLE* m_phDPDeliver; HANDLE* m_phDPIDLE; ShortMsgPool* m_pSMPool; HANDLE* m_phSMPHaveData; HANDLE* m_phSMPIDLE; HANDLE m_hSystemExit; HANDLE m_hIDComDev; LONG m_dwSMNumberInPool; DWORD m_dwThreadPoolNum; DWORD m_dwSMContentPoolNum; DWORD m_dwSMContent; bool m_bOpened; bool m_bStarted; OVERLAPPED m_Overlapped; CRITICAL_SECTION m_csComm; CString m_strCommBuffer;
|