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_)