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


// MainFrm.h : interface of the CMainFrame class 
// 
///////////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_MAINFRM_H__92CD4E02_BB94_4E9A_B0B0_ADBB1F13C430__INCLUDED_) 
#define AFX_MAINFRM_H__92CD4E02_BB94_4E9A_B0B0_ADBB1F13C430__INCLUDED_ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
#define WM_SOCKET_0 WM_USER + 0 
#define WM_SOCKET_1 WM_USER + 1 
#define WM_SOCKET_2 WM_USER + 2 
#define WM_SOCKET_3 WM_USER + 3 
#define WM_SOCKET_4 WM_USER + 4 
#define WM_SOCKET_5 WM_USER + 5 
 
#define FillModAttr(n, id, sock, msg, function) { \ 
	mod[n].id = (id); \ 
	mod[n].sock = (sock); \ 
	mod[n].hwnd = m_view.GetSubWnd(n); \ 
	mod[n].msg = (msg); \ 
	mod[n].function = (function); \ 
	} 
 
class CMainFrame : public CFrameWindowImpl, public CUpdateUI, 
		public CMessageFilter, public CIdleHandler 
{ 
public: 
	DECLARE_FRAME_WND_CLASS(NULL, IDR_MAINFRAME) 
 
	CConsoleView m_view; 
	CCommandBarCtrl m_CmdBar; 
 
	virtual BOOL PreTranslateMessage(MSG* pMsg); 
	virtual BOOL OnIdle(); 
 
	BEGIN_UPDATE_UI_MAP(CMainFrame) 
		UPDATE_ELEMENT(ID_VIEW_TOOLBAR, UPDUI_MENUPOPUP) 
		UPDATE_ELEMENT(ID_VIEW_STATUS_BAR, UPDUI_MENUPOPUP) 
		UPDATE_ELEMENT(ID_MODULE_0, UPDUI_TOOLBAR) 
		UPDATE_ELEMENT(ID_MODULE_1, UPDUI_TOOLBAR) 
		UPDATE_ELEMENT(ID_MODULE_2, UPDUI_TOOLBAR) 
		UPDATE_ELEMENT(ID_MODULE_3, UPDUI_TOOLBAR) 
		UPDATE_ELEMENT(ID_MODULE_4, UPDUI_TOOLBAR) 
		UPDATE_ELEMENT(ID_MODULE_5, UPDUI_TOOLBAR) 
	END_UPDATE_UI_MAP() 
 
	BEGIN_MSG_MAP(CMainFrame) 
		MESSAGE_HANDLER(WM_CREATE, OnCreate) 
		MESSAGE_HANDLER(WM_DESTROY, OnDestroy) 
		COMMAND_ID_HANDLER(ID_MODULE_0, OnModule0) 
		MESSAGE_HANDLER(WM_SOCKET_0, OnSocket0) 
		COMMAND_ID_HANDLER(ID_MODULE_1, OnModule1) 
		MESSAGE_HANDLER(WM_SOCKET_1, OnSocket1) 
		COMMAND_ID_HANDLER(ID_MODULE_2, OnModule2) 
		MESSAGE_HANDLER(WM_SOCKET_2, OnSocket2) 
		COMMAND_ID_HANDLER(ID_MODULE_3, OnModule3) 
		MESSAGE_HANDLER(WM_SOCKET_3, OnSocket3) 
		COMMAND_ID_HANDLER(ID_MODULE_4, OnModule4) 
		MESSAGE_HANDLER(WM_SOCKET_4, OnSocket4) 
		COMMAND_ID_HANDLER(ID_MODULE_5, OnModule5) 
		MESSAGE_HANDLER(WM_SOCKET_5, OnSocket5) 
		COMMAND_ID_HANDLER(ID_APP_EXIT, OnFileExit) 
		COMMAND_ID_HANDLER(ID_FILE_NEW, OnFileNew) 
		COMMAND_ID_HANDLER(ID_FILE_NEW_WINDOW, OnFileNewWindow) 
		COMMAND_ID_HANDLER(ID_VIEW_TOOLBAR, OnViewToolBar) 
		COMMAND_ID_HANDLER(ID_VIEW_STATUS_BAR, OnViewStatusBar) 
		COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout) 
		COMMAND_RANGE_HANDLER(IDM_MODULE_0, IDM_MODULE_5, OnModuleSelect) 
		MESSAGE_HANDLER(WM_CONNECT_COMPLETE, OnConnOk) 
		MESSAGE_HANDLER(WM_CONNECT_TIMEOUT, OnConnTimeOut) 
		CHAIN_MSG_MAP(CUpdateUI) 
		CHAIN_MSG_MAP(CFrameWindowImpl) 
		REFLECT_NOTIFICATIONS() 
	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 OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnFileExit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnFileNew(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnFileNewWindow(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnViewToolBar(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnViewStatusBar(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnAppAbout(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnConnOk(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnConnTimeOut(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnModuleSelect(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnModule0(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnSocket0(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnModule1(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnSocket1(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnModule2(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnSocket2(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnModule3(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnSocket3(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnModule4(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnSocket4(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnModule5(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
	LRESULT OnSocket5(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
 
private: 
	typedef struct 
	{ 
		int id; 
		SOCKET sock; 
		HWND hwnd; 
		int msg; 
		int function; 
	} MODULE, *PMODULE; 
 
	MODULE mod[6]; 
	REQUEST_CONNECT rc; 
	PWND_INIT_PARAM pwip; 
	bool connwait; 
 
	void OnSocketConnect(int nModuleId, WPARAM wParam); 
	LRESULT ModuleClick(int nModule); 
	LRESULT OnSocketNodify(int nModule, WPARAM wParam, LPARAM lParam); 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_MAINFRM_H__92CD4E02_BB94_4E9A_B0B0_ADBB1F13C430__INCLUDED_)