⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maindlg.h

📁 远程控制系统,可以实现局域网内进行远程控制计算机,很方便,并且是学习用的非常好的资料.
💻 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 + -