📄 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<CMainDlg>, public CUpdateUI<CMainDlg>,
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_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -