|
通过支持AT指令集的手机发送短消息(源代码)(16) CString strTemp = CString( pDest + 7, 15 ); CStringArray saTemp; Str2StrArr( strTemp, saTemp, ',' ); if( saTemp.GetSize() > 3 ) m_dwSMContent = atoi( saTemp.GetAt( 2 ) ); } } if( m_dwSMContent > 0 && m_dwSMContent < 50 ) { m_dwSMContentPoolNum = m_dwSMContent; } else { m_dwSMContentPoolNum = 30; } memset( szBuffer, 0, 1024 ); sprintf( szBuffer, "AT+CGMM\r" ); WriteComm( szBuffer, 8 ); Sleep( 200 ); memset( szBuffer, 0, 1024 ); if( ReadStringFromComm( szBuffer, 1024 ) > 0 ) { char* pFirst = strchr( szBuffer, '\r' ); char* pNext = NULL; while( pFirst[0] == '\r' pFirst[0] == '\n' ) pFirst ++; if( pFirst != NULL ) pNext = strchr( pFirst, '\r' ); if( pNext != NULL ) pNext[0] = '\0'; m_strMobileName = pFirst; } } catch( ... ) { CloseHandle( m_Overlapped.hEvent ); CloseHandle( m_hIDComDev ); DeleteCriticalSection( &m_csComm ); return( false ); } m_hSystemExit = CreateEvent( NULL, TRUE, FALSE, NULL ); CreateSubmitPool( m_dwThreadPoolNum ); CreateDeliverPool( m_dwThreadPoolNum ); CreateShortMsgPool( m_dwSMContentPoolNum ); _beginthread( (void (__cdecl*)(void *))SubmitThreadFun,0,this ); _beginthread( (void (__cdecl*)(void *))DeliverThreadFun,0,this ); m_bStarted = true; // OutputDebugString( "Start OK." ); return( m_bStarted ); } bool CGSMPhone::Close() { SetEvent( m_hSystemExit );
|