#if !defined(AFX_SPDLG_H__AE8F939F_8949_4CCC_8F37_B89F81374984__INCLUDED_)
#define AFX_SPDLG_H__AE8F939F_8949_4CCC_8F37_B89F81374984__INCLUDED_

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

/////////////////////////////////////////////////////////////////////////////
// CSPDlg dialog

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

#define MENU_SP_ADD     WM_USER + 330
#define MENU_SP_MODIFY  WM_USER + 331
#define MENU_SP_DEL     WM_USER + 332
#define MENU_SP_REFRESH WM_USER + 333

class CMainFrame;
class CProcessSocket;
typedef CTypedPtrList<CPtrList, ANS_SP_SeeData*>  CSP;
class CSPDlg : public CDialog
{
protected:
	CMainFrame *     m_pMainFrame;
	CProcessSocket * m_pSocket;
	CImageList       m_Image;
	CSP              m_SP;

	BOOL             m_bRefresh;
	BOOL m_bInit;   //ÊÇ·ñÒѳõʼ»¯
// Construction
public:
	BOOL FindOperCmd(const TCHAR *pOperCmd, POSITION exPos);
	BOOL FindSPName(const TCHAR *pSPName, POSITION exPos);
	void SetLockItem(long lItem,BOOL bLock );
	BOOL isLockItem(long lItem, BOOL bShowWarning=true);
	long GetCurrentSelected();
	void ShowRMenu();
	void Close();
	BOOL ProcessSocket(Socket_Head *pHead);
	BOOL RefreshInfo();
	BOOL ReHide();
	BOOL ReShow(BOOL bRefresh=false);
	CSPDlg(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CSPDlg)
	enum { IDD = IDD_SP };
	CReportCtrl	m_wndList;
	//}}AFX_DATA


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

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CSPDlg)
	afx_msg void OnSize(UINT nType, int cx, int cy);
	virtual BOOL OnInitDialog();
	afx_msg void OnDblclkSpList(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnRclickSpList(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnKeydownSpList(NMHDR* pNMHDR, LRESULT* pResult);
	//}}AFX_MSG
	afx_msg void On_SP_Add();
	afx_msg void On_SP_Modify();
	afx_msg void On_SP_Del();
	afx_msg void On_SP_Refresh();
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_SPDLG_H__AE8F939F_8949_4CCC_8F37_B89F81374984__INCLUDED_)