#if !defined(AFX_FGADDRESS_H__153A258C_8779_4760_B25B_F87DC5D2A408__INCLUDED_)
#define AFX_FGADDRESS_H__153A258C_8779_4760_B25B_F87DC5D2A408__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// FGAddress.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CFGAddress dialog

#define MENU_GADDRESS_ADD       WM_USER+200   //添加管理员
#define MENU_GADDRESS_ADDADDR   WM_USER+201   //添加通讯录
#define MENU_GADDRESS_ADDGROUP  WM_USER+202   //添加组
#define MENU_GADDRESS_MODIFY    WM_USER+203   //修改
#define MENU_GADDRESS_DEL       WM_USER+204   //删除
#define MENU_GADDRESS_FIND      WM_USER+205   //删除
#define MENU_GADDRESS_FIND2     WM_USER+206   //删除
#define MENU_GADDRESS_ADDTOLIST WM_USER+207   //发送短信
#define MENU_GADDRESS_ADDTOLIST_FAX WM_USER+208   //发送短信
#define MENU_GADDRESS_ADDTOLIST_MMS WM_USER+209   //发送短信
#define MENU_GADDRESS_INPORT    WM_USER+210   //删除
#define MENU_GADDRESS_EXPORT    WM_USER+211   //发送短信
#define MENU_GADDRESS_REFRESH   WM_USER+212   //删除
#define MENU_GADDRESS_LOG       WM_USER+213   //收发记录...
#define MENU_GADDRESS_MODIFYUSED WM_USER+214   //批量修改可用量...

#define MENU_GADDRESS_CUT    WM_USER+326   //删除
#define MENU_GADDRESS_PASTE  WM_USER+327   //删除

#define GADDRESS_COPYTYPE_COPY 0 
#define GADDRESS_COPYTYPE_CUT  1 

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

class CMainFrame;
class CProcessSocket;
class CFuncView;
class CFGAddress : public CDialog
{
public:
	CMainFrame *     m_pMainFrame;
	CFuncView  *     m_pFuncView;

protected:
	CProcessSocket * m_pSocket;
	CImageList       m_Image;
	BOOL             m_bRefresh;  //是否已刷新过数据
	CAdoRecordSet    m_AdoRS;
	BOOL m_bInit;   //是否已初始化

	long              m_lUserID;
	TCHAR              m_szGroupID[16];
	TCHAR              m_szLocal[128];    //当前用户组所处的位置
	CString            m_strGroupName;

	//导入用户所用到的变量
	ANS_GAddress_SeeData * m_pInUser;
	long                   m_lInUserCount;
	long                   m_lInUserIndex;
	BOOL                   m_bInUser;   //是否正在导入用户
	DLG_GetUser            m_DLGGetUser;
	BOOL                   m_bFind2;    //属于查询出来的用户


	//以下为了复制粘贴而定义的变量
	long              m_Copy_UserID;     //复制源的组ID
	TCHAR              m_Copy_GroupID[32];
	long              m_Copy_Count;      //复制源的记录数
	long              m_Copy_Type;       //复制类型,copy或cut
	ANS_GAddress_SeeData *        m_Copy_Data;  //复制源的数据

	//查找
	DLG_FindUser::FindPro     m_FindPro;

// Construction
public:
	void On_User_AddToList_Public(long lSendType);
	void GetLocal( TCHAR * pLocal , TCHAR * pGroupID );
	void Inport_Next();
	BOOL ProcessSocket( Socket_Head * pHead );
	ANS_GAddress_SeeData GetUserData( long lUserID );
	void ShowRMenu();
	void SetLockItem(long lItem,BOOL bLock );
	BOOL isLockItem(long lItem, BOOL bShowWarning=true);
	long GetCurrentSelected();
	long ShowUser(long lUserID);
	BOOL RefreshInfo();
	BOOL ReShow(BOOL bRefresh=false);
	BOOL ReHide();
	CFGAddress(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CFGAddress)
	enum { IDD = IDD_GADDRESS };
	CReportCtrl	m_wndList;
	//}}AFX_DATA


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CFGAddress)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CFGAddress)
	virtual BOOL OnInitDialog();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnDblclkGaddressList(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnRclickGaddressList(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnKeydownGaddressList(NMHDR* pNMHDR, LRESULT* pResult);
	virtual void OnOK();
	virtual void OnCancel();
	afx_msg void OnDestroy();
	//}}AFX_MSG

public:
	BOOL isAddressFull(BOOL bTip=true);
	void On_User_Find2(DLG_FindUser * pDlg);
	BOOL AddUser(ANS_GAddress_SeeData user);
	afx_msg LRESULT On_List_DropBegin( WPARAM wParam , LPARAM  lParam );
	afx_msg void On_User_Add();
	afx_msg void On_User_AddAddr();
	afx_msg void On_User_AddGroup();
	afx_msg void On_User_Modify();
	afx_msg void On_User_Del();
	afx_msg void On_User_Find();
	afx_msg void On_User_AddToList();
	afx_msg void On_User_AddToList_Fax();
	afx_msg void On_User_AddToList_Mms();
	afx_msg void On_User_Inport();
	afx_msg void On_User_Export();
	afx_msg void On_User_Refresh();
	afx_msg void On_User_Log();
	afx_msg void On_User_Copy();
	afx_msg void On_User_Cut();
	afx_msg void On_User_Paste();
	afx_msg void On_User_ModifyUsed();
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_FGADDRESS_H__153A258C_8779_4760_B25B_F87DC5D2A408__INCLUDED_)