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


// screenview.h: interface for the CScreenView class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_SCREENVIEW_H__CE4F390B_D8C3_41D4_A361_B3C59F017573__INCLUDED_) 
#define AFX_SCREENVIEW_H__CE4F390B_D8C3_41D4_A361_B3C59F017573__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class CScreenView : public CDialogImpl 
{ 
public: 
	enum { IDD = IDD_SCREENVIEW }; 
 
	BEGIN_MSG_MAP(CScreenView) 
		MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) 
		MESSAGE_HANDLER(WM_TIMER, OnTimer) 
		MESSAGE_HANDLER(WM_SIZE, OnSize) 
		MESSAGE_HANDLER(WM_PAINT, OnPaint) 
		MESSAGE_HANDLER(WM_DESTROY, OnDestroy) 
		MESSAGE_HANDLER(WM_SOCKET_READ, OnSocketRead) 
		MESSAGE_HANDLER(WM_HSCROLL, OnHscroll) 
		MESSAGE_HANDLER(WM_VSCROLL, OnVscroll) 
		MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown) 
		MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp) 
		MESSAGE_HANDLER(WM_MOUSEMOVE, OnMouseMove) 
		MESSAGE_HANDLER(WM_CONNECT_CREATED, OnConnectCreated) 
		MESSAGE_HANDLER(WM_CONNECT_CLOSED, OnConnectClosed) 
	END_MSG_MAP() 
 
	LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/); 
	LRESULT OnTimer(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/); 
	LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/); 
	LRESULT OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/); 
	LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/); 
	LRESULT OnSocketRead(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnHscroll(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnVscroll(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnConnectCreated(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
	LRESULT OnConnectClosed(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
 
private: 
	SOCKET slave_sock; 
	bool updating; 
	PSCREENCAP_SCREENBITMAP psb; 
	BITMAPINFOHEADER bih; 
	PVOID bScreenBuffer; 
	int framecount; 
	int nScreenX; 
	int nScreenY; 
	int nLastPackSize; 
	bool bSetCursor; 
	int nLastPosX; 
	int nLastPosY; 
 
	void UpdateBuffer(PBYTE src, PBYTE dst, DWORD len, DWORD width); 
	void XorBuffer(PBYTE src, PBYTE dst, DWORD len); 
	static int ScreenUpdate(CSockMgr::PPACK_INFO pack, LPVOID param = NULL); 
}; 
 
#endif // !defined(AFX_SCREENVIEW_H__CE4F390B_D8C3_41D4_A361_B3C59F017573__INCLUDED_)