|
通过支持AT指令集的手机发送短消息(源代码)(3) CString m_strMobileName; };
#include "GSMPhone.h" #include <process.h> void SubmitThreadFun( LPVOID lpParam ) { CGSMPhone* pGSMPhone = (CGSMPhone*)lpParam; pGSMPhone->SubmitThread(); } void DeliverThreadFun( LPVOID lpParam ) { CGSMPhone* pGSMPhone = (CGSMPhone*)lpParam; pGSMPhone->DeliverThread(); } ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CGSMPhone::CGSMPhone() { m_hIDComDev = NULL; m_hSystemExit = NULL; m_hWnd = NULL; m_bOpened = false; m_bStarted = false; m_dwTimeout = 5; m_dwThreadPoolNum = 5; m_dwSMContent = 0; m_dwSMNumberInPool = 0; m_strSMCenter = ""; m_strCommBuffer = ""; m_strMobileName = ""; // hDDeliver = CreateEvent( NULL,FALSE,FALSE,NULL ); } CGSMPhone::~CGSMPhone() { } bool CGSMPhone::CreateSubmitPool(DWORD dwNum) { try { m_pSPool = new SubmitPool[dwNum+1]; m_phSPDeliver = new HANDLE[dwNum+1]; m_phSPIDLE = new HANDLE[dwNum+1]; for( DWORD dw = 0; dw < dwNum; dw ++ ) { m_phSPDeliver[dw] = m_pSPool[dw].hSPDeliver = CreateEvent( NULL,FALSE,FALSE,NULL ); m_phSPIDLE[dw] = m_pSPool[dw].hSPIDLE = CreateEvent( NULL,FALSE,TRUE,NULL ); } m_phSPDeliver[dw] = m_phSPIDLE[dw] = m_hSystemExit; } catch( ... ) { return( false ); } return( true ); } bool CGSMPhone::FreeSubmitPool() { try { for( DWORD dwCount = 0; dwCount < m_dwThreadPoolNum; dwCount ++ ) { CloseHandle( m_pSPool[dwCount].hSPDeliver ); m_pSPool[dwCount].hSPDeliver = NULL;
|