307 lines
8.8 KiB
C++
307 lines
8.8 KiB
C++
#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<CPtrList, SaveItemStatus*> 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_)
|