#if !defined(AFX_SENDTHREAD_H__25693B28_4ADE_405D_A48D_E71E7850D4FD__INCLUDED_) #define AFX_SENDTHREAD_H__25693B28_4ADE_405D_A48D_E71E7850D4FD__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // SendThread.h : header file // typedef struct _SmsSendData { long lStatus; //发送状态,0-提交成功,1-提交失败,2-用户余额不足,3-企业余额不足,4-企业已过期 long lSendID; //发送返回的ID long lCorpID; //发送的企业ID long lUserID; //发送的用户ID TCHAR szGroupID[32]; long lReSendCount; TCHAR szMsgID[32]; TCHAR szSender[32]; TCHAR szSendNum[32]; TCHAR szRecver[32]; TCHAR szRecvNum[32]; long lRecvNumType; BOOL bStatusReport; //是否需要状态报告 TCHAR szRecvStatus[32]; //接收状态 TCHAR szMsg[512]; //短信内容 long lMsgType; long lSendRet; //SubmitAExEx的返回值 long lSendFCS; //SubmitAExEx fcs的返回值 SYSTEMTIME tTimer; //定时时间 SYSTEMTIME tOvrTime; //超时时间 SYSTEMTIME tSendTime; SYSTEMTIME tSubTime; }SmsSendData; typedef struct _SubmitData_Mobile { TCHAR szName[32]; TCHAR szMobile[32]; CString * pMsg; }SubmitData_Mobile; #define SubmitData_Mobile_Max 100 typedef struct _SubmitData { long lStatus; //发送状态,0-提交成功,1-提交失败,2-用户余额不足,3-企业余额不足,4-企业已过期 long lItem; //保存Item long lItemID; //保存在smsitem里的ID long lSendID; //发送返回的ID long lCorpID; //发送的企业ID long lUserID; //发送的用户ID TCHAR szSendNum[32];//发送号码 TCHAR szName[32]; //目标姓名 TCHAR szMobile[32]; //目标号码 TCHAR szMsg[2048]; //短信内容 long lMobileCount; //目标号码数量,如果数量小于=0,则以szName,szMobile为准 SubmitData_Mobile Mobile[SubmitData_Mobile_Max];//最多100个号码 long lKFCount; //扣费数量 long lPrority; //优先级 SYSTEMTIME tTimer; //定时时间 SYSTEMTIME tOvrTime; //超时时间 }SubmitData; typedef struct _UpSmsS { long lCorpID; long lUserID; long lType; LPVOID pDlg; //主窗口 TCHAR szSendNum[32]; TCHAR szRecvNum[32]; TCHAR szMsg[256]; //短信内容 TCHAR szUrl[128]; //短信内容 TCHAR szAddNum[32]; SYSTEMTIME tSendTime; long lSendID; long lStatus; TCHAR szAddStatus[32]; }UpSmsS; typedef struct _MmsRecv { long lSendID; //发送返回的ID long lCorpID; //发送的企业ID long lUserID; //发送的用户ID long lMmsFileID; long lmmSize; TCHAR szTitle[256]; TCHAR szSendNum[32]; TCHAR szRecvNum[32]; long lRecvNumType; SYSTEMTIME tSendTime; }MmsRecv; /////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // CSendThread thread #define TH_SEND WM_USER + 400 //发送短消息 #define TH_RECV WM_USER + 401 //发送短消息 #define SEND_SMS_MAXRESEND 3 //发送短信时,最大重试次数 class CSmsCenterDlg; class CSendThread : public CWinThread { public: typedef struct _BBS_Insert { long BBSID; long SCorpID; long SUserID; TCHAR SCorpName[128]; TCHAR SUserName[128]; long RCorpID; long RUserID; long RAgentID; long Status; TCHAR Type[128]; TCHAR Name[128]; TCHAR Tel[128]; TCHAR Email[128]; TCHAR BZ[512]; long BBSType; long CorpID; long UserID; TCHAR CM[128]; long AgentID; long AgentYJ; SYSTEMTIME expTime; }BBS_Insert; public: BOOL m_bSend; //现在是否在发送短信中 CAdoConnection m_adoConnection; CAdoRecordSet m_AdoRS; CAdoRecordSet m_AdoRS1; CAdoRecordSet m_AdoRS2; CSmsCenterDlg * m_pSMSDlg; long m_lSendCount; DECLARE_DYNCREATE(CSendThread) public: CSendThread(); // protected constructor used by dynamic creation // Attributes public: // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSendThread) public: virtual BOOL InitInstance(); virtual int ExitInstance(); //}}AFX_VIRTUAL // Implementation public: static BOOL Recv_QQT(long lCorpID,long lUserID,long lRtx_GroupTaskID, CAdoRecordSet *pAdoRS, CAdoRecordSet *pAdoRS2, CSmsCenterDlg *pSMSDlg); static BOOL PushRecvSmsToOtherCenter(HANDLE & hPipe,SmsSendData data, CString strProv,CString strCity); static BOOL PushRecvSmsToOtherCenter(long lType,CAdoRecordSet *pAdoRS, SmsSendData data, CString strProv, CString strCity); static BOOL Bbs_Insert_Sys(CAdoRecordSet *pAdoRS,CString strBZ, COleDateTime * pExpTime=NULL); static BOOL Bbs_Insert(CAdoRecordSet *pAdoRS,BBS_Insert & bbs); static BOOL ProcessUp(CSmsCenterDlg * pSMSDlg,DWORD dwType,long lMobileType,SmsSendData sms , CAdoRecordSet * pAdoRS, CAdoRecordSet * pAdoRS2,CAdoRecordSet * pAdoRS3,BOOL bReportNumber,long lCorpID,long lUserID,long lTDMode,CString strSName); static BOOL Recv_Mms(MmsRecv mms,CAdoRecordSet * pAdoRS,CAdoRecordSet * pAdoRS2,CSmsCenterDlg * pSMSDlg); //static BOOL SetSmsAddOne(CAdoRecordSet *pAdoRS,long lSendID,long lType=0); //static BOOL SetSmsAddOne(CAdoRecordSet * pAdoRS , long lCorpID , long lUserID , long lKF , const TCHAR * pRecvStatus,long lSendRet,BOOL bAdc ); static DWORD WINAPI Recv_Sms_UpSms(LPVOID pParam); static BOOL SplitNum( TCHAR * pCorp , TCHAR * pMan ); static long SubmitSms(SubmitData & SendData,CAdoRecordSet * pAdoRS,CAdoRecordSet * pAdoRS2,CSmsCenterDlg * pSMSDlg,long lMobileType,long lSmsType,long lSmsKF=0); static BOOL Recv_Sms(HANDLE & hPipe,SmsSendData sms,CAdoRecordSet * pAdoRS,CAdoRecordSet * pAdoRS2,CAdoRecordSet * pAdoRS3,CSmsCenterDlg * pSMSDlg); virtual ~CSendThread(); protected: // Generated message map functions //{{AFX_MSG(CSendThread) // NOTE - the ClassWizard will add and remove member functions here. //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_SENDTHREAD_H__25693B28_4ADE_405D_A48D_E71E7850D4FD__INCLUDED_)