#if !defined(AFX_DLG_SEND_H__60D7C1FD_03E9_4F4C_9077_AF29BADC6F94__INCLUDED_) #define AFX_DLG_SEND_H__60D7C1FD_03E9_4F4C_9077_AF29BADC6F94__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // DLG_Send.h : header file // ///////////////////////////////////////////////////////////////////////////// // DLG_Send dialog #include ".\LuButton\LuButton.h" #include "..\public\reportctrl\ReportCtrl.h" #include "UserDropTarget.h" #include "label.h" //#include "ImApi\ImApi.h" #include "..\public\StringSort\StringSort.h" #define SEND_USER_ADD WM_USER+220 #define SEND_USER_MODIFY WM_USER+221 #define SEND_USER_DEL WM_USER+222 #define SEND_USER_CLEAR WM_USER+223 #define SEND_USER_INPORT WM_USER+224 #define SEND_USER_EXPORT WM_USER+225 #define SEND_USER_STATUS WM_USER+226 #define SEND_USER_INPORT_LT WM_USER+227 #define SEND_USER_INPORT_MASSDKDGWL_FP WM_USER+230 #define SEND_USER_INPORT_MASSDKDGWL_SP WM_USER+231 #define SEND_USER_INPORT_MASSDKDGWL_KF WM_USER+232 #define SEND_USER_INPORT_MASSDKDGWL_ZC WM_USER+233 #define SEND_USER_PASTE WM_USER+240 typedef struct _SaveItemStatus { long lSendID; TCHAR szStatus[4]; long lItemID; long lStatus; //发送状态,0-提交成功,1-提交失败,2-用户余额不足,3-企业余额不足,4-企业已过期 long lKF; TCHAR szSendNum[32];//发送号码 TCHAR szName[32]; //目标姓名 TCHAR szMobile[32]; //目标号码 TCHAR szMsg[1020]; //短信内容 }SaveItemStatus; typedef CTypedPtrList CSaveItemStatus; class CMainFrame; class CProcessSocket; class DLG_Send : public CDialog { public: CMainFrame * m_pMainFrame; protected: CImageList m_Image; //图像列表 CRect m_OldRect; //原Dlg的Rect CProcessSocket * m_pSocket; CAdoRecordSet m_AdoRS; CAdoRecordSet m_AdoRS2; CAdoRecordSet m_AdoRS3; CAdoRecordSet m_AdoRS4; CAdoRecordSet m_AdoRS5; CAdoRecordSet m_AdoRS6; CUserDropTarget m_UserDrop; BOOL m_bInit; //列表是否已实始化 BOOL m_bModify; //是否有修改过 long m_lBoxID; //BoxID long m_lBoxType; //列表类型0,待发,1,已发 //以下为发送时的内容 BOOL m_bSend; //是否正在发送 SYSTEMTIME m_tTimer; //定时时间 TCHAR m_szMsg[1024]; //发送原信息 TCHAR m_szMsgEndFilt[1024];//最后一次通知管理员的消息 TCHAR m_szSendMsg[1024]; //当前发送的内容 long m_lSendIndex; //发送列表里的Index long m_lSendOK; //发送成功计数 BOOL m_bShowFiltWarning;//是否允许显示过滤警告 BOOL m_bShowFiltFirst; //是否第一次显示过滤警告 BOOL m_bFilt; //是否需要审核 BOOL m_bFiltOver; //是否需要过量审核 //以下为重复号码提醒通知 BOOL m_bShowReMobile; //是否显示重复号码通知 long m_lReMobileType; //如果有重复号码,重理类型,0-跳过,1-再添加一次 //以下为黑名单提醒通知 BOOL m_bBackReMobile; //是否显示重复号码通知 long m_lBackReMobileType; //如果有重复号码,重理类型,0-跳过,1-再添加一次 //以下为发送生日祝福专用 BOOL m_bSendSR; //计算发送时间 DWORD m_dwSendStartTime; //使用线程保存发送状态 CSaveItemStatus m_SaveItemStatus; //记录发送数量 DWORD m_dwBackCount; //黑名单数量 DWORD m_dwNoSupCount; //不支持号码数量 DWORD m_dwNoMsgCount; //没内容数量 BOOL m_bSaveList; long m_lPage; //记录mas当次打开软件的mas发送数量 long m_lMasAllSendCount; long m_lInterval; //用于发送间隔 BOOL m_bNoSupperWord; //本次发送内容是否有非支持字符 CString m_strFiltWord; //被拦截的关键字 CStringSort m_strSort; //查重 BOOL m_bOneToOne; int m_lSendRand; //发送的随机数 CStringArray * m_pMobileMsg; //手机号码的分段 REQ_SendData3 * m_pSendData; //号段 public: CAdoConnection m_HDadoConnection; CAdoRecordSet m_HDAdoRS; #ifdef SUPPER_IM_MAS //Mas BOOL m_Mas_Init; // mas是否已初始化 HINSTANCE m_Mas_Lib; MAS_initWithDB m_Mas_initWithDB; MAS_release m_Mas_release; MAS_sendSMAdvTime m_Mas_sendSMAdvTime; MAS_receiveSM m_Mas_receiveSM; MAS_receiveRPT m_Mas_receiveRPT; BOOL m_Mas_MasEnd; BOOL m_Mas_MobsetEnd; long m_Mas_SendOK; #endif // Construction public: void CloseAutoSave(void); BOOL ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame); void OnSendTask2(); void SEND_USER_INPORT_MasSDK_DGWL(long lType); BOOL Mas_OK(); BOOL IsLocakBack(CString strMobile); BOOL bNoSupperWord(TCHAR *pMsg,CString & strWord); static UINT Mas_RecvT(void *pParam); BOOL Mas_MobileIsSend(CString strMobile); static UINT Mas_SendT(void *pParam); BOOL Mas_Init(); BOOL Mas_Enable(); CString GetOtherSendRetMsg(); BOOL isSendingSms(); static UINT AutoSaveItem(void *pParam); static UINT AutoSaveLog(void *pParam); void SetListSR( BOOL bSendSR); BOOL isBack( const TCHAR * pMobile ); void RefreshListCount(); void RefreshStatusAndLog(); void List_SetMsg( TCHAR * pMsg ); BOOL bFilt( const TCHAR * pMsg,long lCount2=-1 ); BOOL ProcessSocket(Socket_Head *pHead); void SendNextSms(); BOOL IsSend(); BOOL List_AddUser( long lCount , Send_User * pUser ); void EnableModifyWindow( BOOL bModify ); BOOL List_ReSend( long lBoxID ); void AddLoveToMsg(TCHAR *pLove); long GetBoxID(); void AddUser( Send_User user,long lItem = -1 ); BOOL List_Read( long lBoxID ); Send_User GetUser( long lItem,BOOL bDelay=false ); BOOL List_Save(BOOL bTJ=false); void ShowRMenu(); long GetCurrentSelected(); void SetMainFrame(CMainFrame *pFrame); BOOL List_New(); BOOL CloseList(); void RefreshTJ(); void InitItem(); void On_User_Inport_Group_Sms(); DLG_Send(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(DLG_Send) enum { IDD = IDD_SEND }; CButton m_B_Task; CComboBox m_L_lInterval; CButton m_B_FD; LuButton m_B_New2; CButton m_B_LongSms; CStatic m_S_PCount2; CButton m_B_SaveSendLog; CStatic m_S_CM2; CLabel m_S_CM; CButton m_B_GetMsg; CButton m_B_ReMobile; LuButton m_B_DY; LuButton m_B_New; CButton m_B_Add; CEdit m_E_Num; CDateTimeCtrl m_D_Time; CDateTimeCtrl m_D_Date; LuButton m_B_YL; CStatic m_S_WCount; LuButton m_B_Status; LuButton m_B_Start; LuButton m_B_Save; CButton m_S_S1; CButton m_B_Report; CStatic m_S_PCount; LuButton m_B_Null; CButton m_S_MsgList; CEdit m_E_Msg; CButton m_S_ListCount; CListCtrl m_wndList; LuButton m_B_Memo; LuButton m_B_NickName; LuButton m_B_Name; LuButton m_B_Flash; CButton m_B_HandFree; CButton m_B_DS; //}}AFX_DATA // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(DLG_Send) public: virtual BOOL PreTranslateMessage(MSG* pMsg); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: virtual LRESULT OnDrop(WPARAM wParam, LPARAM lParm); // Generated message map functions //{{AFX_MSG(DLG_Send) virtual BOOL OnInitDialog(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnClose(); afx_msg void OnChangeSendMsg(); afx_msg void OnSendDs(); afx_msg void OnSendSave(); afx_msg void OnRclickSendList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnSendNumadd(); afx_msg void OnSendNumPaste(); afx_msg void OnDblclkSendList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnDatetimechangeSendDsD(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnDatetimechangeSendDsT(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnSendNew(); afx_msg void OnSendIname(); afx_msg void OnSendInicename(); afx_msg void OnSendInmemo(); afx_msg void OnSendIfalsh(); afx_msg void OnSendYl(); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnSendStart(); afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnKeydownSendList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnSendDy(); afx_msg void OnSendGetmsg(); afx_msg void OnDestroy(); afx_msg void OnSendLongsms(); afx_msg void OnSendNew2(); afx_msg void OnSendFd(); afx_msg void OnSendTask(); //}}AFX_MSG afx_msg void On_User_Add(); afx_msg void On_User_Modify(); afx_msg void On_User_Del(); afx_msg void On_User_Clear(); afx_msg void On_User_Inport(); afx_msg void On_User_Export(); afx_msg void On_User_Status(); afx_msg void On_User_Inport_LT(); afx_msg void On_User_Inport_MasSDK_DGWL_FP(); afx_msg void On_User_Inport_MasSDK_DGWL_SP(); afx_msg void On_User_Inport_MasSDK_DGWL_KF(); afx_msg void On_User_Inport_MasSDK_DGWL_ZC(); DECLARE_MESSAGE_MAP() virtual void OnOK(); virtual void OnCancel(); public: // afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); // afx_msg void OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2); afx_msg void OnClickedSendRemobile(); }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_DLG_SEND_H__60D7C1FD_03E9_4F4C_9077_AF29BADC6F94__INCLUDED_)