#pragma once
#include "afxcmn.h"



#include "..\public\reportctrl\ReportCtrl.h"

#define UBOXPOP_CALLTYPE_BEGIN WM_USER+200
#define UBOXPOP_CALLTYPE_END   WM_USER+300

#define UBOXPOP_SMSDY_BEGIN WM_USER+1000
#define UBOXPOP_SMSDY_END   WM_USER+2000

#define UBOXPOP_SMSDY_OTHER   WM_USER+999
#define UBOXPOP_SMSDY_MANAGER WM_USER+998

// DLG_UBoxPop 对话框
class CMainFrame;
class DLG_UBoxPop : public CDialogEx
{
	DECLARE_DYNAMIC(DLG_UBoxPop)
public:
	CMainFrame * m_pMainFrame;
	CImageList       m_Image;
	CString m_strNumber;
	long m_lCallStatus;      //类型,0-未接,1-已接
	long m_lCallWay;       //方向,0-呼入,1-呼出
	long m_lCallingCount;
	DWORD m_dwCallJT;      //电话接听时间
	SYSTEMTIME m_tCallTime; //通话开始时间
	long  m_lCallSC;       //通话时长
	BOOL  m_bCallBegin;    //通话是已开始的
	BOOL  m_bCallEnd;      //通话是否结束
	BOOL m_bAddressModify;  //通讯录是否允许修改
	BOOL m_bCallModify;     //通话属性修改
	BOOL m_bCallSendSms;    //是否允许发送短信
	BOOL m_bAddressSave;    //是否允许保存新增通讯录
	long m_lAddressType;    //通讯录类型,0-公用通讯录,1-私人通讯录,2-首易企业通讯录
	long m_lUserID;         //用户ID,如果AddressType=2,则为企业ID
	BOOL m_bSelGroup;       //是否允许选择组
	CString m_strKHGroupID; //通讯录保存位置

	BOOL m_bCallYModify;     //电话属性是否修改过
	BOOL m_bAddressYModify;  //通讯录是否修改过

	long m_lTickCount;       //用于判断收到的返回是否属于自己
	long m_lUBoxLogID;       //UBoxLogID,上传到服务器后返回的ID。
	BOOL m_bSaveCallPro;     //保存通话属性
	long m_lBeginTime;       //通话开始时间

	long    m_lGroupID;     //当前组ID
	CString m_strGroupID;   //当前组ID


	CArray <ANS_UBox_CallType,ANS_UBox_CallType&> m_CallType;
	CStringArray m_SmsDY;
	CAdoRecordSet  m_AdoRS;
	CAdoRecordSet  m_AdoRS2;

	//录音
	BOOL m_bRecord;
	BOOL m_bRecordEnd;
	CString m_strRecordName;
public:
	DLG_UBoxPop(CWnd* pParent = NULL);   // 标准构造函数
	virtual ~DLG_UBoxPop();

// 对话框数据
	enum { IDD = IDD_UBOXPOP };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()
public:
	void SetMainFrame(CMainFrame * pFrame);
	void ReSetTitle(void);
	void SetNumber(CString strNumber);
	void GetLocal(CString strType,CString strDBName,TCHAR *pLocal, TCHAR *pGroupID);
	CString m_strKH_BZ;
	CString m_strKH_Job;
	CString m_strCall_BZ;
	CStatic m_S_CallStatus;
	CString m_strCallTime;
	CString m_strCallType;
	CStatic m_S_CallWay;
	CString m_strKH_Local;
	CString m_strKH_LTD;
	CString m_strKH_Mobile;
//	CString m_strKH_;
	CString m_strKH_Name;
	CString m_strKH_Tel;
	CString m_strCall_Number;
	CString m_strCall_NumberLocal;
	afx_msg void OnTimer(UINT_PTR nIDEvent);
	void GetAddress(void);
	virtual BOOL OnInitDialog();
	void SetCallStatus(void);
	void SetCallWay(void);
	void EnableCtrl(void);
	afx_msg void OnEnChangeUboxpopKhName();
	afx_msg void OnEnChangeUboxpopKhLtd();
	afx_msg void OnEnChangeUboxpop();
	afx_msg void OnEnChangeUboxpopKhMobile();
	afx_msg void OnEnChangeUboxpopKhTel();
	afx_msg void OnEnChangeUboxpopKhBZ();
	afx_msg void OnBnClickedUboxpopKhLocalSel();
	afx_msg void OnBnClickedUboxpopCalltypeSel();
	afx_msg void OnEnChangeUboxpopCallbz();
	afx_msg void On_CallType(UINT nID);
	afx_msg void On_SmsDY(UINT nID);
	afx_msg void On_SmsDY_Other();
	afx_msg void On_SmsDY_Manager();
	BOOL ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame);
	afx_msg LONG_PTR UBox_Event( WPARAM wParam , LPARAM lParam );
	CReportCtrl m_wndList;
	void Call_End(void);
	void Call_Begin(void);
	void SetCallCount(long lCount);
	void SetCallWay(long lCallWay);
	void Call_Upload(void);
	afx_msg void OnBnClickedOk();
	afx_msg void OnBnClickedCancel();
	void Call_Close(void);
	virtual void OnCancel();
	virtual void PostNcDestroy();
	void SetCallBeginTime(long lBeginTime);
	afx_msg void OnBnClickedUboxpopCallResms();
};