// DataSyncSendDlg.h : header file
//

#if !defined(AFX_DataSyncSendDLG_H__06D6A3BF_D3AD_402D_802F_E81418C60ED7__INCLUDED_)
#define AFX_DataSyncSendDLG_H__06D6A3BF_D3AD_402D_802F_E81418C60ED7__INCLUDED_

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

/////////////////////////////////////////////////////////////////////////////
// CDataSyncSendDlg dialog
#include "ClientTunnel.h"
#include "TrayIcon.h"
class CDataSyncSendDlg : public CDialog
{	
	BOOL		m_bTrayCreate;
	CTrayIcon	m_TrayIcon;
// Construction
public:
	enum { IDD = IDD_DataSyncSend_DIALOG };
	CDataSyncSendDlg(CWnd* pParent = NULL);	// standard constructor

	int GetPort();
	void DelTrayIcon();
	BOOL OnConnect3();
	BOOL OnConnect2();

	void OnDisconnect();
	BOOL OnConnect();
	BOOL TerminateThread();
	DWORD GetConnectionID();
	void SetConnectionID(DWORD dwConnection);
	void ProcessChatMessageRequest2(CString sql);
	void ProcessChatMessageRequest2(BYTE *pData, int length);
	BOOL ProcessChatMessageRequest(void *szDataBuf, int nDataLen);
	void ProcessChatMessageResponse(void *pResponse);
	void ProcessLoginResponse(void *pLoginResult);
	BOOL ProcessLoginRequest();
    void ProcessNetEvent(int nEventType, void *pRecvMsg, DWORD dwDataLen);
	
protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support

public:
	bool			m_bRunning;				// Flag to whether thread is on running or not
	bool			m_bTerminate;			// Flag to Thread to be terminated
	unsigned int	m_dwThreadID;			// Thread ID
	HANDLE			m_hThread;				// Thread and Event handle
	CClientTunnel	m_tClientTunnel;
	DWORD			m_dwConnectionID;

// Implementation
protected:
	HICON m_hIcon;
	int m_hsock;

	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnDestroy();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnClose();
	afx_msg void OnDataSyncSend();

	LRESULT OnTrayNotification(WPARAM wParam,LPARAM lParam);
	DECLARE_MESSAGE_MAP()
};

#endif // !defined(AFX_DataSyncSendDLG_H__06D6A3BF_D3AD_402D_802F_E81418C60ED7__INCLUDED_)