修复远程桌面跟踪鼠标不准的问题

添加比zstd更快的压缩库lz4。
This commit is contained in:
yuanyuanxiang
2019-01-17 20:41:51 +08:00
parent 16741545a9
commit 78623390b2
23 changed files with 1378 additions and 47 deletions

View File

@@ -18,8 +18,19 @@ class CScreenSpy
public:
CScreenSpy(ULONG ulbiBitCount);
virtual ~CScreenSpy();
ULONG GetBISize();
LPBITMAPINFO GetBIData();
ULONG GetBISize() const
{
ULONG ColorNum = m_ulbiBitCount <= 8 ? 1 << m_ulbiBitCount : 0;
return sizeof(BITMAPINFOHEADER) + (ColorNum * sizeof(RGBQUAD));
}
const LPBITMAPINFO& GetBIData() const
{
return m_BitmapInfor_Full;
}
ULONG m_ulbiBitCount;
LPBITMAPINFO m_BitmapInfor_Full;
ULONG m_ulFullWidth, m_ulFullHeight; //<2F><>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
@@ -33,12 +44,23 @@ public:
PVOID m_BitmapData_Full;
DWORD m_dwBitBltRop;
LPVOID GetFirstScreenData();
ULONG GetFirstScreenLength();
ULONG GetFirstScreenLength() const
{
return m_BitmapInfor_Full->bmiHeader.biSizeImage;
}
LPVOID GetNextScreenData(ULONG* ulNextSendLength);
BYTE* m_RectBuffer;
ULONG m_RectBufferOffset;
BYTE m_bAlgorithm;
VOID WriteRectBuffer(LPBYTE szBuffer,ULONG ulLength);
FORCEINLINE VOID WriteRectBuffer(LPBYTE szBuffer,ULONG ulLength)
{
memcpy(m_RectBuffer + m_RectBufferOffset, szBuffer, ulLength);
m_RectBufferOffset += ulLength;
}
CCursorInfor m_CursorInfor;
HDC m_hDiffMemDC;
HBITMAP m_DiffBitmapHandle;