// ChildView.h : interface of the CChildView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_CHILDVIEW_H__ACBF21A2_E730_4817_8504_9E57F240E2A7__INCLUDED_)
#define AFX_CHILDVIEW_H__ACBF21A2_E730_4817_8504_9E57F240E2A7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CDlgBannerSetting : public CDialog
{
public:
    CDlgBannerSetting(CWnd* pParent = NULL);
    enum { IDD = IDD_BANNER_SETTING };
protected:
    virtual void DoDataExchange(CDataExchange* pDX);
    virtual BOOL OnInitDialog();
    virtual void OnOK();
    DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
// CChildView window

class MW4PRINT_COPYDATASTRUCT;

/////////////////////////////////////////////////////////////////////////////
// CDlgDBSettings dialog

class CDlgDBSettings : public CDialog
{
public:
    CDlgDBSettings(CWnd* pParent = NULL);

    enum { IDD = IDD_DB_SETTINGS };

protected:
    virtual void DoDataExchange(CDataExchange* pDX);
    virtual BOOL OnInitDialog();
    virtual void OnOK();
    afx_msg void OnTestConnection();
    DECLARE_MESSAGE_MAP()
};

class CMyPrintInfo : public TDBLNK(CMyPrintInfo*)
{
public:
    CString m_strFile;
    bool m_bIncludeBot;
    bool m_bPrinted;
public:
    CMyPrintInfo(const char* pcszFile, bool bIncludeBot);
};

DECLARE_TARRAYREF(CLogInfo);
class CLogInfo
{
public:
    int m_nState; // 0: no error(ok!!!), 1: (@err=1), error, 2: launched(@Launched=1)...
    CStr m_strTime; // int m_nTime; // Time=%02d:%02d
    int m_nPlayerCount; // Player Count=%d
    // CStrArray: m_aPlayers // Players=%s,%s,%s...
public:
    CLogInfo();
};

class CLogResult
{
public:
	int m_nTotalPlayers;
	int m_nGames;
	int m_nUnfinished;
	int m_nErrGames;
	DWORD m_dwRet;
public:
	CLogResult();
	void GetLogResult(const CString& str);
    void DoLogReport(const CStr& str, char* psz, int nBufferSize);
};

class CShortDate
{
public:
	int m_nYear;
	int m_nMonth;
	int m_nDay;
public:
	CShortDate(const CTime& t);
	int Compare(const CShortDate& that);
	void IncADay();
};

class CDlgGet2Dates : public CDialog
{
// Construction
public:
	CDlgGet2Dates(SYSTEMTIME& SysTime, CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CDlgGet2Dates)
	enum { IDD = IDD_GET_2DATES };
	//}}AFX_DATA
	CTime	m_Start;
	CTime	m_End;


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

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CDlgGet2Dates)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

class CChildView : public CWnd
{
// Construction
public:
    TDBLNKDESTROY(CMyPrintInfo) m_lstMPIs;
    UINT m_uTimer;
public:
	CChildView();
    bool DoCopyData(HWND hwnd, const MW4PRINT_COPYDATASTRUCT& cd);

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CChildView)
	protected:
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CChildView();

	// Generated message map functions
protected:
	//{{AFX_MSG(CChildView)
	afx_msg void OnPaint();
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnDestroy();
	afx_msg void OnTimer(UINT nIDEvent);
	//}}AFX_MSG
	afx_msg void OnFileOpen();
	afx_msg void OnFileLogReport();
	afx_msg void OnFileLog2Dates();
	afx_msg void OnFileDbSettings();
	afx_msg void OnFileBannerSetting();
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_CHILDVIEW_H__ACBF21A2_E730_4817_8504_9E57F240E2A7__INCLUDED_)
