#if !defined(AFX_DLG_SENDMMS_H__E40B88D3_EE04_4F3E_A8E8_D22BE854CDE8__INCLUDED_) #define AFX_DLG_SENDMMS_H__E40B88D3_EE04_4F3E_A8E8_D22BE854CDE8__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // DLG_SendMms.h : header file // ///////////////////////////////////////////////////////////////////////////// // DLG_SendMms dialog #include ".\LuButton\LuButton.h" #include "..\public\BtnST\BtnST.h" #include "..\public\reportctrl\ReportCtrl.h" #include "UserDropTarget.h" #include "label.h" #include "DLG_Send.h" #include "StdAfx.h" // Added by ClassView #include "MmsHtmlCtrl.h" #include #include "CDXGraph.h" #include "afxwin.h" #include "CPictureCtrl.h" #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 #define MENU_MMS_Z_ADDBEGIN WM_USER+420 #define MENU_MMS_Z_ADDEND WM_USER+421 #define MENU_MMS_Z_ADDCBEGIN WM_USER+422 #define MENU_MMS_Z_ADDCEND WM_USER+423 #define MENU_MMS_Z_DEL WM_USER+424 //#define MENU_MMS_Z_DEL_ALL WM_USER+425 //#define MENU_MMS_Z_DEL_ALLNULL WM_USER+426 #define MENU_MMS_BMP_INS WM_USER+450 #define MENU_MMS_BMP_REP WM_USER+451 #define MENU_MMS_BMP_DEL WM_USER+452 #define MENU_MMS_MIDI_INS WM_USER+460 #define MENU_MMS_MIDI_REP WM_USER+461 #define MENU_MMS_MIDI_DEL WM_USER+462 #define MENU_MMS_PASTE WM_USER+470 typedef struct _SaveMmsStatus { long lSendID; TCHAR szStatus[4]; long lItemID; long lMmsFileID; long lStatus; //发送状态,0-提交成功,1-提交失败,2-用户余额不足,3-企业余额不足,4-企业已过期 TCHAR szSendNum[32];//发送号码 TCHAR szName[32]; //目标姓名 TCHAR szMmsNum[32]; //目标号码 TCHAR szTitle[64]; //短信内容 long lmmSize; //彩信附件大小 }SaveMmsStatus; typedef CTypedPtrList CSaveMmsStatus; //定义MMS使用的版与结构头 #ifdef _UNICODE #define MOBSET_MMS_VER MOBSET_MMS_VER_2 #define MMS_Head MMS_Head_2 #define MMS_Z MMS_Z_2 #else #define MOBSET_MMS_VER MOBSET_MMS_VER_1 #define MMS_Head MMS_Head_1 #define MMS_Z MMS_Z_1 #endif class CMainFrame; class CProcessSocket; class DLG_SendMms : 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; long m_lBoxID; //BoxID long m_lBoxType; //列表类型0,待发,1,已发 long m_lMmsUpID; //传真上传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; //使用线程保存发送状态 CSaveMmsStatus m_SaveItemStatus; //记录发送数量 DWORD m_dwBackCount; //黑名单数量 DWORD m_dwNoSupCount; //不支持号码数量 DWORD m_dwNoMsgCount; //没内容数量 BOOL m_bSaveList; long m_lPage; //传真发送参数 #define MMS_CURSENDTYPE_ID 0 #define MMS_CURSENDTYPE_FILE 1 #define MMS_CURSENDTYPE_NUM 2 #define MMS_CURSENDTYPE_COMPLETE 10 #define MMS_CURSENDTYPE_ERROR 20 long m_lCurSendType; //当送发送类型,0-ID,1-File,2-FaxNum CString m_strTitle; //播放midi CString m_strEndMidiFile; CDXGraph * m_pFilterGraph; // Filter Graph封装 BOOL m_bMidiPlay; //是否正在播放Midi BOOL m_bMmsPlay; //是否正在播放彩信 //彩信编辑 CMmsHtmlCtrl m_Html; MMS_Head m_MMS_Head; MMS_Z m_MMS_Z[MOBSET_MMS_MAX_Z]; long m_MMS_CurZ; BYTE * m_MMS_File; //生成的mms文件 long m_MMS_FileSize; long m_MMS_FileUpLen; BOOL m_bCtrlEnable; //当前的编辑状态 // Construction public: CStringA ConvertUnicodeToUtf8(CStringW &strUni); void ConvertGBKToUtf8_(CStringA &strGBK); void ConvertUtf8ToGBK_(CStringA &strUtf8); void ConvertUtf8ToGBK(CString &strUtf8); void ConvertGBKToUtf8(CString &strGBK); void CloseAutoSave(void); void Mms_ShowPlayMidi(); BOOL Graph_Create(CString strFileName); void Graph_Destroy(); BOOL Mms_DeleteDirectory(CString sDirName); BOOL Mms_TJ(); BOOL Mms_Close_Z(MMS_Z & mms,BOOL bDel); BOOL Mms_ResetSelZ(); BOOL Mms_Close(); BOOL Mms_New(); BOOL Mms_Showscroll(); BOOL Mms_Showmm(); CString GetOtherSendRetMsg(); BOOL isBack(const TCHAR *pMobile); void SetListTextTip(CString str); void RefreshStatusAndLog(); BOOL ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame); BOOL SendNextMms_Complete(); BOOL SendNextMms_Num(); BOOL SendNextMms_File(); BOOL SendNextMms_ID(); BOOL SendNextMms(); 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_Save_mm(long & lSize); 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); void DLG_SendMms::OnSendTask2(); DLG_SendMms(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(DLG_SendMms) enum { IDD = IDD_SENDMMS }; CLabel m_MMS_ID; CStatic m_S_Midi_Time; CButton m_B_Midi_Play; CSliderCtrl m_S_Midi_Slider; CButtonST m_B_Forward; CButtonST m_B_Next; CButtonST m_B_Play; CButton m_Mms_ZP; CLabel m_Mms_ZS; CComboBox m_Mms_Z; CLabel m_Mms_Txt; CLabel m_Mms_Midi; CComboBox m_Mms_Delay; CLabel m_Mms_Bmp; CEdit m_E_Title; CButton m_B_SaveSendLog; LuButton m_B_Start; LuButton m_B_Save; LuButton m_B_Open; LuButton m_B_SaveAs; LuButton m_B_Template; LuButton m_B_SC; 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; CDateTimeCtrl m_D_Time; CDateTimeCtrl m_D_Date; CButton m_B_DS; //}}AFX_DATA // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(DLG_SendMms) 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_SendMms) 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 OnSendfaxNumadd(); afx_msg void OnSendfaxNumPaste(); 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 OnSendMmsZp(); afx_msg void OnSendMmsMidi(); afx_msg void OnSendMmsTxt(); afx_msg void OnEditchangeSendMmsDelay(); afx_msg void OnSelchangeSendMmsDelay(); afx_msg void OnSelchangeSendMmsZ(); afx_msg void OnSendMmsPlay(); afx_msg void OnSendMmsMidiPlay(); afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); afx_msg void OnSendMmsNext(); afx_msg void OnSendMmsForward(); afx_msg void OnSendMmsZAdd(); afx_msg void OnSendMmsZDel(); afx_msg void OnSendMmsZClear(); //}}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_Mms_Z_AddBegin(); afx_msg void On_Mms_Z_AddEnd(); afx_msg void On_Mms_Z_AddCEnd(); afx_msg void On_Mms_Z_AddCBegin(); afx_msg void On_Mms_Z_Del(); afx_msg void On_Mms_Bmp_Ins(); afx_msg void On_Mms_Bmp_Rep(); afx_msg void On_Mms_Bmp_Del(); afx_msg void On_Mms_Midi_Ins(); afx_msg void On_Mms_Midi_Rep(); afx_msg void On_Mms_Midi_Del(); afx_msg LRESULT OnGraphNotify(WPARAM inWParam, LPARAM inLParam); DECLARE_MESSAGE_MAP() public: CButton m_B_Task; afx_msg void OnBnClickedSendmmsTask(); afx_msg void OnBnClickedSendfaxSaveas(); afx_msg void OnBnClickedSendfaxOpen(); virtual void OnOK(); afx_msg void OnStnClickedSendMmsBmp(); afx_msg void OnStnClickedSendMmsTxt(); afx_msg void OnClickedSendfaxRemobile(); CPictureCtrl m_MmsBack; }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_DLG_SENDMMS_H__E40B88D3_EE04_4F3E_A8E8_D22BE854CDE8__INCLUDED_)