www.pudn.com > ntshell.rar > maindlg.h


// maindlg.h : interface of the CMainDlg class 
// 
///////////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_MAINDLG_H__6DD94737_AC94_4442_BBB5_21C51715D2AF__INCLUDED_) 
#define AFX_MAINDLG_H__6DD94737_AC94_4442_BBB5_21C51715D2AF__INCLUDED_ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
#define WM_SOCKET_CONN WM_USER + 1 
#define WM_SOCKET_WAIT WM_USER + 2 
#define WM_SOCKET_CTRL WM_USER + 3 
 
#define LOCKED_STATUS_NONE 0 
#define LOCKED_STATUS_NONSUPPORT 1 
#define LOCKED_STATUS_QUERY 2 
#define LOCKED_STATUS_CONTROL 3 
#define LOCKED_STATUS_NEEDPWD 4 
 
#define MAX_WAITING 20 
 
class CMainDlg : public CDialogImpl, public CUpdateUI, 
		public CMessageFilter, public CIdleHandler 
{ 
public: 
	enum { IDD = IDD_MAINDLG }; 
 
	virtual BOOL PreTranslateMessage(MSG* pMsg); 
	virtual BOOL OnIdle(); 
 
	BEGIN_UPDATE_UI_MAP(CMainDlg) 
	END_UPDATE_UI_MAP() 
 
	BEGIN_MSG_MAP(CMainDlg) 
		MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) 
		MESSAGE_HANDLER(WM_TIMER, OnTimer) 
		MESSAGE_HANDLER(WM_SOCKET_CONN, OnSockConnEvent) 
		MESSAGE_HANDLER(WM_SOCKET_CTRL, OnSockCtrlEvent) 
		MESSAGE_HANDLER(WM_REQUEST_CONNECT, OnRequestConnect) 
		MESSAGE_HANDLER(WM_CANCEL_REQUEST, OnCancelRequest) 
		COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout) 
		COMMAND_ID_HANDLER(IDOK, OnOK) 
		COMMAND_ID_HANDLER(IDCANCEL, OnCancel) 
		COMMAND_ID_HANDLER(IDC_ADDHOST, OnAddHost) 
		COMMAND_ID_HANDLER(IDC_SETPWD, OnSetPassword) 
		COMMAND_ID_HANDLER(IDC_EXITSERVICE, OnExitService) 
		COMMAND_ID_HANDLER(IDC_SHUTDOWN, OnShutdown) 
		COMMAND_ID_HANDLER(IDC_REBOOT, OnReboot) 
		COMMAND_ID_HANDLER(IDC_UPDATE, OnUpdate) 
		COMMAND_ID_HANDLER(IDC_UNINSTALL, OnUninstall) 
		COMMAND_ID_HANDLER(IDM_SERVER_CONFIG, OnServerConfig) 
		COMMAND_ID_HANDLER(IDM_LOCAL_CONFIG, OnLocalConfig) 
		NOTIFY_ID_HANDLER(IDC_HOSTLIST, OnHostList) 
	END_MSG_MAP() 
 
// Handler prototypes (uncomment arguments if needed): 
//	LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) 
//	LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) 
//	LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/) 
 
	LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnTimer(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnSockConnEvent(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnSockCtrlEvent(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnAddHost(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnSetPassword(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnExitService(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnShutdown(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnReboot(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnUpdate(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnUninstall(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnAppAbout(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnServerConfig(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnLocalConfig(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnRequestConnect(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnCancelRequest(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnHostList(int /*wParam*/, LPNMHDR /*lParam*/, BOOL& /*bHandled*/); 
 
private: 
	typedef struct _CONNECT_SOCK_MGR 
	{ 
		HWND hAcceptWnd; 
		RcCallBack funBack; 
		LPVOID lpParam; 
		DWORD dwWorkType; 
		BOOL bRequestSended; 
		DWORD dwHost; 
		DWORD dwReqTime; 
	} CONNECT_SOCK_MGR, *PCONNECT_SOCK_MGR; 
 
	typedef struct _HOST_INFORMATION 
	{ 
		WORD ServerVersion; 
		WORD OffsetOfComputerName; 
		WORD OffsetOfProcessorName; 
		WORD OffsetOfProcessorMHZ; 
		WORD OffsetOfMemorySize; 
		WORD OffsetOfSystemName; 
		WORD OffsetOfCurrentUserName; 
		WORD OffsetOfRootDirectory; 
	} HOST_INFORMATION, *PHOST_INFORMATION; 
 
	typedef struct _HOST_LIST_LINK 
	{ 
		SOCKET Sock; 
		struct in_addr Address; 
		WORD Port; 
		CHAR Type; 
		CHAR Lock; 
		DWORD CreateTime; 
		DWORD Sid; 
		PHOST_INFORMATION Info; 
		UCHAR Password[MAX_PASSWORD_LENGTH]; 
		_HOST_LIST_LINK *Next; 
	} HOST_LIST_LINK, *PHOST_LIST_LINK; 
 
	CListViewCtrl m_hWndList; 
	CWindow m_hWndStatusBar; 
	SOCKET m_ListenSock; 
	CONNECT_SOCK_MGR connmgr[MAX_WAITING]; 
	PHOST_LIST_LINK m_host; 
	int m_nWaiting; 
	int m_nSessionTotal; 
 
	void CloseDialog(int nVal); 
	bool OpenListenSock(); 
	void AddHost(SOCKET s, CHAR HostType); 
	void AddHost(char *host, int port); 
	void RemoveHost(SOCKET s); 
	void SendRequest(SOCKET s); 
	void CompleteRequest(SOCKET s, DWORD work); 
	void UpdateHostInfo(SOCKET s); 
	void TestCanRead(SOCKET s); 
	void WriteHostInformation(PHOST_INFORMATION *info, PVOID infoArray); 
	char *SimplyRecvPack(SOCKET s); 
	void SimplySendPack(SOCKET s, char *p, int l); 
	SOCKET ConnectSlave(struct in_addr address, int port, int type); 
	bool TestLockedStatus(int lock); 
	static void CloseContrlSock(SOCKET s, LPVOID lpParam); 
}; 
 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_MAINDLG_H__6DD94737_AC94_4442_BBB5_21C51715D2AF__INCLUDED_)