Files
SimpleRemoter/server/2015Remote/ScreenSpyDlg.h

112 lines
2.7 KiB
C
Raw Normal View History

#pragma once
#include "IOCPServer.h"
2019-01-20 20:04:11 +08:00
#include "..\..\client\CursorInfo.h"
extern "C"
{
#include "libavcodec\avcodec.h"
#include "libavutil\avutil.h"
#include "libyuv\libyuv.h"
}
#ifndef _WIN64
// https://github.com/Terodee/FFMpeg-windows-static-build/releases
#pragma comment(lib,"libavcodec.lib")
#pragma comment(lib,"libavutil.lib")
#pragma comment(lib,"libswresample.lib")
#pragma comment(lib,"libyuv/libyuv.lib")
#else
// ȱ<><C8B1>`FFMPEG`<60><>̬<EFBFBD><EFBFBD><E2A3AC>ʱ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>64λ<34><CEBB><EFBFBD><EFBFBD>!
#endif
#pragma comment(lib, "Mfplat.lib")
#pragma comment(lib, "Mfuuid.lib")
#pragma comment(lib, "Bcrypt.lib")
#pragma comment(lib, "Strmiids.lib")
// CScreenSpyDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
class CScreenSpyDlg : public CDialog
{
DECLARE_DYNAMIC(CScreenSpyDlg)
public:
2019-01-18 17:37:15 +08:00
CScreenSpyDlg(CWnd* Parent, IOCPServer* IOCPServer=NULL, CONTEXT_OBJECT *ContextObject=NULL);
virtual ~CScreenSpyDlg();
CONTEXT_OBJECT* m_ContextObject;
IOCPServer* m_iocpServer;
2019-01-18 17:37:15 +08:00
VOID SendNext(void);
VOID OnReceiveComplete();
HDC m_hFullDC;
HDC m_hFullMemDC;
HBITMAP m_BitmapHandle;
PVOID m_BitmapData_Full;
LPBITMAPINFO m_BitmapInfor_Full;
2019-01-18 17:37:15 +08:00
VOID DrawFirstScreen(void);
VOID DrawNextScreenDiff(bool keyFrame);
BOOL m_bIsFirst;
ULONG m_ulHScrollPos;
ULONG m_ulVScrollPos;
2019-01-18 17:37:15 +08:00
VOID DrawTipString(CString strString);
HICON m_hIcon;
HICON m_hCursor;
POINT m_ClientCursorPos;
BYTE m_bCursorIndex;
CString m_strClientIP;
BOOL m_bIsTraceCursor;
2019-01-20 20:04:11 +08:00
CCursorInfo m_CursorInfo; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ϵͳ<CFB5>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>
2019-01-18 17:37:15 +08:00
VOID SendCommand(MSG* Msg);
2019-01-18 17:37:15 +08:00
VOID UpdateServerClipboard(char *szBuffer,ULONG ulLength);
VOID SendServerClipboard(void);
BOOL m_bIsCtrl;
LPBYTE m_szData;
BOOL m_bSend;
ULONG m_ulMsgCount;
int m_FrameID;
2019-01-18 17:37:15 +08:00
BOOL SaveSnapshot(void);
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum { IDD = IDD_DIALOG_SCREEN_SPY };
2019-01-10 19:35:03 +08:00
BOOL m_bFullScreen;
WINDOWPLACEMENT m_struOldWndpl;
#ifndef _WIN64
AVCodec* m_pCodec;
AVCodecContext* m_pCodecContext;
AVPacket m_AVPacket;
AVFrame m_AVFrame;
#endif
bool Decode(LPBYTE Buffer, int size);
2019-01-10 19:35:03 +08:00
void EnterFullScreen();
2019-01-20 20:04:11 +08:00
bool LeaveFullScreen();
2019-01-10 19:35:03 +08:00
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnKillFocus(CWnd* pNewWnd);
afx_msg void OnSize(UINT nType, int cx, int cy);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧<><D6A7>
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
afx_msg void OnClose();
afx_msg void OnPaint();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
virtual BOOL PreTranslateMessage(MSG* pMsg);
};