CorpSms/MainFrm.h

339 lines
10 KiB
C++

// MainFrm.h : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_MAINFRM_H__53645CFE_009C_4AD6_9EB7_EEB04AE157ED__INCLUDED_)
#define AFX_MAINFRM_H__53645CFE_009C_4AD6_9EB7_EEB04AE157ED__INCLUDED_
#include "StdAfx.h" // Added by ClassView
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "CorpSmsDoc.h"
#include "FuncView.h"
#include "BaseView.h"
#include "ProcessSocket.h"
#include "DLG_GetUser.h"
#include "..\public\reportctrl\ReportCtrl.h"
#include "DLG_CJCard.h"
#include "DLG_Commend.h"
//#ifdef SUPPER_UBOX
#include ".\UBox\phonic_ubox.h"
#include "DLG_UBox_Dial.h"
#include "DLG_UBoxPop.h"
#include "DLG_UBox_UserLog.h"
//#endif
#define SHELL_ICON_MESS WM_USER+260
#define UBOX_EVENT WM_USER+270
#define UBOX_EVENT_DTMF 1
#define UBOX_EVENT_JT 2
#define UBOX_EVENT_WJ 3
#define UBOX_EVENT_HOOK_OFF 4
#define UBOX_EVENT_HOOK_UP 5
#define UBOX_EVENT_HOOK_UP2 6
#define UBOX_EVENT_CALLOUT 7
#define UBOX_EVENT_ERROR 8
#define UBOX_EVENT_CHAR 9
#define CORPSMS_ICON_R_SHOW WM_USER + 2001 //显示主界面
#define CORPSMS_ICON_R_SMS WM_USER + 2002 //显示主界面
#define CORPSMS_ICON_R_MMS WM_USER + 2003 //显示主界面
#define CORPSMS_ICON_R_QUIT WM_USER + 2004 //显示主界面
typedef CTypedPtrList<CPtrList, SM_User*> CUser;
typedef CTypedPtrArray<CPtrArray, DLG_UBoxPop*> CDLG_UBoxPop;
typedef struct _RecordUpload
{
long lUBoxLogID;
CString strRecordName;
}RecordUpload;
typedef CList<RecordUpload> CRecordUpload;
class DLG_HDQuery;
class DLG_White2;
class CMainFrame : public CFrameWnd
{
public:
CFuncView * m_pFuncView;
CBaseView * m_pBaseView;
CImageList m_Image;
CButton m_B_CJ;
CButton m_B_YJ;
CAdoConnection m_adoConnection;
CAdoRecordSet m_AdoRS;
CAdoRecordSet m_AdoRS2;
long m_lCorpID;
long m_lUserID;
ULONG m_ulPurviewType; //用户权限类型
ULONG m_ulPurview; //用户权限
CString m_strLoginIP;
SM_Setup m_Setup;
CUser m_User;
SM_User * m_pCurUser;
ANS_Login m_Ans_Login;
ANS_Login2 m_Ans_Login2;
CProcessSocket m_Socket;
CPictureEx m_B_Gif;
CString m_strTEXT;
long m_lGDText;
DLG_CJCard * m_pCJCard; //充值卡
BOOL m_CliSmsTD_Req; //用于判断通道设置是哪里发出的
//过滤语
long m_lFiltCount;
ANS_Filt2_SeeDataU * m_pFilt;
long m_lNoSupperWordCount;
ANS_Login3_NoSupperData * m_pNoSupperWord;
//黑名单
long m_lBackCount;
ANS_Back_SeeData * m_pBack;
CString m_strMobile; //此登录用户的手机号码
CString m_strMainGroupID; //主用户组ID
long m_lMainGroupID; //主用户组ID
CString m_strMainGroupName; //用户组名称
//防止恶意向中心端提交信息
DWORD m_dwEndTYjTime;
//ExcelAddin协助参数
HWND m_hExcelAddinWnd;
long m_lAddinType; //1-Open,2-SendSms,3-Address
BOOL m_bLoginOK;
//推荐客户
DLG_Commend * m_pCommendDlg;
DLG_HDQuery * m_pHDQuery;
//masoem
CString m_strMasTitle;
BOOL m_bCheckUpdateManual;
CString m_strCorpWorkUrl; //管理易登录
CString m_strPasswdEnc; //加密后的密码,用于管理易登录
CCriticalSection m_Update_Lock;
//用于记录图标信息
long m_Iocn_UBox_KT;
#ifdef SUPPER_UBOX //来电显示盒子
long m_ubox_Status;
HINSTANCE m_ubox_Lib;
Mubox_open m_ubox_Open;
Mubox_close m_ubox_close;
Mubox_get_work_mode m_ubox_get_work_mode;
Mubox_send_dtmf m_ubox_send_dtmf;
Mubox_record_stream m_ubox_record_stream;
Mubox_stop_record m_ubox_stop_record;
Mubox_record_file m_ubox_record_file;
UBOX_HANDLE m_ubox_endHandle;
DLG_UBox_Dial m_DlgUBoxDial;
BOOL m_ubox_bPhoneUp; //现在状态是否为拿起话机,拿起话机才能拨号
BOOL m_ubox_Phoneing; //现在状态是否为通知中,振铃也算是通话中
//以下用于弹出窗口
CDLG_UBoxPop m_ubox_Pop;
DLG_UBoxPop * m_ubox_NowPop;
CCriticalSection m_ubox_Lock;
//以下用于上传录音文件
CRecordUpload m_RecordUpload;
long m_RecordUpload_UBoxLogID;
DWORD m_RecordUpload_EndSendFrame;
long m_RecordUpload_AllSize;
long m_RecordUpload_UpSize;
CFile m_RecordFile;
#endif
BOOL m_bLogin; //是否已经登录成功
//用于白名单导入
DLG_White2 * m_pWhie2;
protected:
long m_lCurFunc;
DLG_GetUser m_DlgProcess;
BOOL m_bShowProcess;
BOOL m_bChangeGAddress;
BOOL m_bReadGAddressError;
protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMainFrame)
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
//}}AFX_VIRTUAL
// Implementation
public:
static BOOL AutoBackAddress_Save(CMainFrame * pFrame , CString strName);
static UINT AutoBackAddress_T(void *pParam);
void AutoBak_SendLog();
BOOL isSupportPhs();
long GetMaxAddressCount();
long FindBX(long lMon, long lMon2, long lDay,CReportCtrl *pList);
long GetQJCM( CString & strCM );
long GetMaxSendMsgLen();
CString GetSoftSName();
void GetUpdateMsg(BOOL bManual=false);
void YWDB(BOOL bYW);
long FindNS(long lMon,long lMon2, CReportCtrl *pList);
static BOOL UpdateDB(CAdoConnection & m_adoConnection,CAdoRecordSet & m_AdoRS);
void GetBack();
void GDText();
void GetGGMsg();
long FindSR(long lMon,long lDay,long lMon2,long lDay2,BOOL bGAddress,BOOL bPAddress,CReportCtrl* pList);
BOOL ReadGAddress(BOOL bRefresh=false);
void SetStatMsg(TCHAR *pMsg);
BOOL ProcessSocket(Socket_Head *pHead);
BOOL SendFrame( DWORD lFuncType , unsigned char * pFrame , unsigned long lFrameLen );
BOOL GetUserPurview( ULONG ulPurview ,BOOL bShowWarning=true);
BOOL GetUserPurview_HideNum();
void GetCurrentPath(TCHAR *pPath);
void SaveSetup();
void ReadSetup();
void CreateNullSetup();
virtual ~CMainFrame();
void uboxPop_New(CString strNumber,long lCallWay,long lBeginTime=0);
void uboxPop_Del(DLG_UBoxPop * pPop);
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
CSplitterWnd m_wndSplitter;
static void WINAPI ubox_NotifyProc(UBOX_HANDLE uboxHnd,int eventID,unsigned long param1,unsigned long param2,unsigned long param3,unsigned long param4);
public:
BOOL ubox_SetStatus(long lStatus);
BOOL ubox_Close();
BOOL ubox_Init();
BOOL ubox_Enable();
static CString GetMD5(CString str,BOOL bLower=false);
void Mas_ProcessSendCount();
BOOL ProcessSocket(Socket_Head_Add *pHead,BYTE* pFrame);
DWORD GetExcelAddinErrorNum();
void GetCenterTime();
long GetMaxUsersCount();
BOOL ReadGAddress2(BOOL bRefresh=false);
long GetMaxSendMsgLen_longSms(long & lCMLen);
void OnTYj2( const TCHAR * pType );
afx_msg void OnTYj();
// Generated message map functions
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnModifyPasswd();
afx_msg void OnMsgsetup();
afx_msg void OnTShowsmslist();
afx_msg void OnTShowmmslist();
afx_msg void OnTMsgsetup();
afx_msg void OnTAdduser();
afx_msg void OnUpdateTAdduser(CCmdUI* pCmdUI);
afx_msg void OnTAddgroup();
afx_msg void OnUpdateTAddgroup(CCmdUI* pCmdUI);
afx_msg void OnTSmsview();
afx_msg void OnUpdateTSmsview(CCmdUI* pCmdUI);
afx_msg void OnTSmsnew();
afx_msg void OnUpdateTSmsnew(CCmdUI* pCmdUI);
afx_msg void OnUpdateTShowsmslist(CCmdUI* pCmdUI);
afx_msg void OnUpdateTShowmmslist(CCmdUI* pCmdUI);
afx_msg void OnClose();
afx_msg void OnFindsr();
afx_msg void OnCompdb();
afx_msg void OnHelp2();
afx_msg void OnSystemsetup();
afx_msg void OnUpdateSystemsetup(CCmdUI* pCmdUI);
afx_msg void OnTCj();
afx_msg void OnSendsetup();
afx_msg void OnTLogo();
afx_msg void OnTBill();
afx_msg void OnUpdateTBill(CCmdUI* pCmdUI);
afx_msg void OnUpdateHelp2(CCmdUI* pCmdUI);
afx_msg void OnSetupSzgj();
afx_msg void OnNsts();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnBxts();
afx_msg void OnHd();
afx_msg void OnSetupTd();
afx_msg void OnTLogo2();
afx_msg void OnSetupImMas();
afx_msg void OnAppCommend();
afx_msg void OnTGg();
afx_msg void OnOperSendsms();
afx_msg void OnOperSendfax();
afx_msg void OnOperSendmms();
afx_msg void OnCheckupdate();
afx_msg void OnTCorpwork();
afx_msg void OnTUbox();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg LONG_PTR UBox_Event( WPARAM wParam , LPARAM lParam );
afx_msg void OnShellIcon_Show();
afx_msg void OnShellIcon_Sms();
afx_msg void OnShellIcon_Mms();
afx_msg void OnShellIcon_Exit();
//}}AFX_MSG
afx_msg LONG_PTR On_Picture_Click( WPARAM wParam , LPARAM lParam );
afx_msg LONG_PTR ProcessSocket_Error( WPARAM wParam , LPARAM lParam );
afx_msg LONG_PTR ProcessSocket_Frame( WPARAM wParam , LPARAM lParam );
afx_msg LONG_PTR OnShellIconMess( WPARAM wParam , LPARAM lParam ); //任务栏图标处理过程
afx_msg LONG_PTR On_ExcelAddin_Data( WPARAM wParam , LPARAM lParam );
afx_msg LONG_PTR On_ExcelAddin_Open( WPARAM wParam , LPARAM lParam );
afx_msg LONG_PTR On_ExcelAddin_GetGroup( WPARAM wParam , LPARAM lParam );
DECLARE_MESSAGE_MAP()
public:
BOOL SendSms(CString strMobile, CString strMsg);
afx_msg void OnAppCalltype();
afx_msg void OnUpdateAppCalltype(CCmdUI *pCmdUI);
int UBox_AddUploadRecordFile(long lUBoxLogID, CString strRecordName);
void UBox_Upload_Record(void);
int UBox_Upload_Record_SendNextFrame(void);
void OnShellIcon_Show2(BOOL bShowRecever=true);
afx_msg void OnAppWhite2();
afx_msg void OnUpdateAppWhite2(CCmdUI *pCmdUI);
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MAINFRM_H__53645CFE_009C_4AD6_9EB7_EEB04AE157ED__INCLUDED_)