#if !defined(AFX_DLG_SENDFAX_H__E40B88D3_EE04_4F3E_A8E8_D22BE854CDE8__INCLUDED_) #define AFX_DLG_SENDFAX_H__E40B88D3_EE04_4F3E_A8E8_D22BE854CDE8__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // DLG_SendFax.h : header file // ///////////////////////////////////////////////////////////////////////////// // DLG_SendFax dialog #include ".\LuButton\LuButton.h" #include "..\public\reportctrl\ReportCtrl.h" #include "UserDropTarget.h" #include "label.h" #include "DLG_Send.h" #include "StdAfx.h" // Added by ClassView #define SEND_FAX_USER_ADD WM_USER+320 #define SEND_FAX_USER_MODIFY WM_USER+321 #define SEND_FAX_USER_DEL WM_USER+322 #define SEND_FAX_USER_CLEAR WM_USER+323 #define SEND_FAX_USER_INPORT WM_USER+324 #define SEND_FAX_USER_EXPORT WM_USER+325 #define SEND_FAX_USER_STATUS WM_USER+326 typedef struct _SaveFaxStatus { long lSendID; TCHAR szStatus[4]; long lItemID; long lFaxFileID; long lStatus; //发送状态,0-提交成功,1-提交失败,2-用户余额不足,3-企业余额不足,4-企业已过期 TCHAR szSendNum[32];//发送号码 TCHAR szName[32]; //目标姓名 TCHAR szFaxNum[32]; //目标号码 TCHAR szTitle[64]; //短信内容 }SaveFaxStatus; typedef CTypedPtrList CSaveFaxStatus; class CMainFrame; class CProcessSocket; class DLG_SendFax : public CDialog { public: CMainFrame * m_pMainFrame; protected: CImageList m_Image; //图像列表 CRect m_OldRect; //原Dlg的Rect CProcessSocket * m_pSocket; BOOL m_bInit; //列表是否已实始化 BOOL m_bModify; //是否有修改过 BOOL m_bAttachModify; //附件是否修改过 CAdoRecordSet m_AdoRS; CAdoRecordSet m_AdoRS2; CAdoRecordSet m_AdoRS3; CAdoRecordSet m_AdoRS4; CAdoRecordSet m_AdoRS5; CAdoRecordSet m_AdoRS6; CUserDropTarget m_UserDrop; CString m_strAttach5; CString m_strAttach4; CString m_strAttach3; CString m_strAttach2; CString m_strAttach1; long m_lBoxID; //BoxID long m_lBoxType; //列表类型0,待发,1,已发 long m_lFaxUpID; //传真上传ID //以下为发送时的内容 BOOL m_bSend; //是否正在发送 SYSTEMTIME m_tTimer; //定时时间 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; //使用线程保存发送状态 CSaveFaxStatus m_SaveItemStatus; //记录发送数量 DWORD m_dwBackCount; //黑名单数量 DWORD m_dwNoSupCount; //不支持号码数量 DWORD m_dwNoMsgCount; //没内容数量 BOOL m_bSaveList; long m_lPage; //传真发送参数 #define FAX_CURSENDTYPE_ID 0 #define FAX_CURSENDTYPE_FILE 1 #define FAX_CURSENDTYPE_FAXNUM 2 #define FAX_CURSENDTYPE_COMPLETE 10 #define FAX_CURSENDTYPE_ERROR 20 long m_lCurSendType; //当送发送类型,0-ID,1-File,2-FaxNum long m_lSendAttachIndex; //发送附件计数 long m_lSendAttachCount; //发送附件总数 CFile m_fAttach; BOOL m_bAttachOpen; long m_lAttachUpLen; //当前附件已上传的长度 CString m_strTitle; // Construction public: void CloseAutoSave(void); CString GetOtherSendRetMsg(); BOOL isBack(const TCHAR *pMobile); void SetListTextTip(CString str); void RefreshStatusAndLog(); BOOL ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame); BOOL SendNextFax_Complete(); BOOL SendNextFax_FaxNum(); BOOL SendNextFax_File(); BOOL SendNextFax_ID(); BOOL SendNextFax(); long GetCurrentSelected(); void ShowRMenu(); BOOL IsSend(); long GetBoxID(); Send_User GetUser( long lItem,BOOL bDelay=false ); void EnableModifyWindow( BOOL bModify ); static UINT AutoSaveLog(void *pParam); static UINT AutoSaveItem(void *pParam); BOOL List_Save(BOOL bTJ=false); BOOL List_AddUser( long lCount , Send_User * pUser ); BOOL List_ReSend( long lBoxID ); BOOL List_Read( long lBoxID ); BOOL List_New(); BOOL CloseList(); BOOL isMobileInList(const TCHAR *pMobile); BOOL IsLocakBack(CString strMobile); void RefreshListCount(); void AddUser( Send_User user,long lItem = -1 ); void InitItem(); void SetMainFrame(CMainFrame *pFrame); DLG_SendFax(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(DLG_SendFax) enum { IDD = IDD_SENDFAX }; CEdit m_E_Title; CButton m_B_SaveSendLog; CButton m_B_Status; LuButton m_B_Start; LuButton m_B_Save; CButton m_S_S1; CButton m_B_ReMobile; CButton m_B_Add; CEdit m_E_Num; LuButton m_B_Null; LuButton m_B_New2; LuButton m_B_New; CButton m_S_MsgList; CButton m_S_ListCount; CListCtrl m_wndList; LuButton m_B_DY; CDateTimeCtrl m_D_Time; CDateTimeCtrl m_D_Date; CButton m_B_DS; CEdit m_E_Attach5; CEdit m_E_Attach4; CEdit m_E_Attach3; CEdit m_E_Attach2; CEdit m_E_Attach1; //}}AFX_DATA // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(DLG_SendFax) 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_SendFax) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); virtual BOOL OnInitDialog(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnClose(); afx_msg void OnDestroy(); afx_msg void OnSendFaxSelAttach1(); afx_msg void OnSendFaxSelAttach2(); afx_msg void OnSendFaxSelAttach3(); afx_msg void OnSendFaxSelAttach4(); afx_msg void OnSendFaxSelAttach5(); afx_msg void OnSendfaxNumadd(); afx_msg void OnSendfaxDs(); afx_msg void OnSendfaxNew2(); afx_msg void OnSendfaxNew(); afx_msg void OnSendfaxSave(); afx_msg void OnDblclkSendfaxList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnRclickSendfaxList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnKeydownSendfaxList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnDatetimechangeSendfaxDsD(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnDatetimechangeSendfaxDsT(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnChangeSendFaxTitle(); afx_msg void OnSendfaxStart(); afx_msg void OnDoubleclickedSendFaxSelAttach1(); afx_msg void OnDoubleclickedSendFaxSelAttach2(); afx_msg void OnDoubleclickedSendFaxSelAttach3(); afx_msg void OnDoubleclickedSendFaxSelAttach4(); afx_msg void OnDoubleclickedSendFaxSelAttach5(); //}}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(); DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_DLG_SENDFAX_H__E40B88D3_EE04_4F3E_A8E8_D22BE854CDE8__INCLUDED_)