Migrate the SimplePlugins privacy-screen (virtual desktop) feature into the YAMA client as an "实验功能" right-click submenu entry. The capture layer is rewritten rather than copied: CScreenHideSpy now subclasses YAMA's ::CScreenSpy (vDesk=TRUE) so capture and encoding reuse YAMA's encoder pipeline instead of SimplePlugins' diverged jpeg capture chain; CScreenManagerBase and CScreenHideManager are migrated under the SimplePluginsScreenHide namespace, and SimplePlugins-only ALGORITHM_DEFAULT is mapped to ALGORITHM_DIFF. Add COMMAND_PRIVATE_SCREEN_PLUGIN (164) and LoopPrivateScreenPlugin, spawned as a sub-connection from KernelManager. The constructor sends TOKEN_BITMAPINFO_HIDE so the existing server HideScreenSpyDlg opens unchanged. Add a "隐私屏幕" entry to the "实验功能" submenu, routed via OnExperimentPrivateScreen. Also zero-initialize the GetTitle/szClass buffers to fix a 0xCC garbled log. Co-Authored-By: deepseek-v4-pro
22 lines
496 B
C++
22 lines
496 B
C++
#pragma once
|
|
#include "Manager.h"
|
|
|
|
#include "ScreenHideSpy.h"
|
|
#include "ScreenManagerBase.h"
|
|
|
|
namespace SimplePluginsScreenHide {
|
|
|
|
class CScreenHideManager : public CScreenManagerBase
|
|
{
|
|
public:
|
|
CScreenHideManager(ISocketBase* pClient, int nBitDepth, void* user=NULL);
|
|
virtual ~CScreenHideManager();
|
|
|
|
void OnUserCommand(PBYTE lpBuffer, ULONG nSize);
|
|
|
|
virtual VOID OnReceive(PBYTE lpBuffer, ULONG nSize);
|
|
virtual void InitScreenSpy();
|
|
};
|
|
|
|
} // namespace SimplePluginsScreenHide
|