Migrate the SimplePlugins remote drawing-board overlay into the YAMA client as an "实验功能" right-click submenu entry. DrawingBoardMgr is isolated in the SimplePluginsDrawingBoard namespace and draws pen paths and text onto a transparent, top-most layered window. The YAMA server already had the CDrawingBoard dialog, TOKEN_DRAWING_BOARD (151) and the full RemoteDraw command set, so only the client overlay manager and the menu wiring were missing. Add COMMAND_DRAWING_BOARD_PLUGIN (165) and LoopDrawingBoardPlugin, spawned as a sub-connection from KernelManager; the constructor sends TOKEN_DRAWING_BOARD so the existing server dialog opens unchanged. Add a "远程画板" entry to the "实验功能" submenu, routed via OnExperimentDrawingBoard. Co-Authored-By: deepseek-v4-pro
46 lines
1.6 KiB
C++
46 lines
1.6 KiB
C++
#pragma once
|
|
#include "StdAfx.h"
|
|
#include "IOCPClient.h"
|
|
#include "common/commands.h"
|
|
#include <vector>
|
|
|
|
typedef struct _THREAD_ARG_LIST {
|
|
DWORD (WINAPI *StartAddress)(LPVOID lParameter);
|
|
LPVOID lParam;
|
|
bool bInteractive; // 是否支持交互桌面 ??
|
|
HANDLE hEvent;
|
|
} THREAD_ARG_LIST, *LPTHREAD_ARG_LIST;
|
|
|
|
typedef struct UserParam {
|
|
BYTE* buffer;
|
|
int length;
|
|
~UserParam()
|
|
{
|
|
SAFE_DELETE_ARRAY(buffer);
|
|
}
|
|
} UserParam;
|
|
|
|
DWORD WINAPI ThreadProc(LPVOID lParam);
|
|
DWORD private_desktop(CONNECT_ADDRESS* conn, const State& exit, const std::string& msg, const std::string& signature,
|
|
const std::string& hash, const std::string& hmac, const std::vector<BYTE>& bmpData = std::vector<BYTE>());
|
|
|
|
DWORD WINAPI LoopShellManager(LPVOID lParam);
|
|
DWORD WINAPI LoopScreenManager(LPVOID lParam);
|
|
DWORD WINAPI LoopFileManager(LPVOID lParam);
|
|
DWORD WINAPI LoopTalkManager(LPVOID lParam);
|
|
DWORD WINAPI LoopChatManager(LPVOID lParam);
|
|
DWORD WINAPI LoopMachineManager(LPVOID lParam);
|
|
DWORD WINAPI LoopFileManagerPlugin(LPVOID lParam);
|
|
DWORD WINAPI LoopPrivateScreenPlugin(LPVOID lParam);
|
|
DWORD WINAPI LoopDrawingBoardPlugin(LPVOID lParam);
|
|
DWORD WINAPI LoopProcessManager(LPVOID lParam);
|
|
DWORD WINAPI LoopWindowManager(LPVOID lParam);
|
|
DWORD WINAPI LoopVideoManager(LPVOID lParam);
|
|
DWORD WINAPI LoopAudioManager(LPVOID lParam);
|
|
DWORD WINAPI LoopRegisterManager(LPVOID lParam);
|
|
DWORD WINAPI LoopServicesManager(LPVOID lParam);
|
|
DWORD WINAPI LoopConnectionManager(LPVOID lParam);
|
|
DWORD WINAPI LoopKeyboardManager(LPVOID lParam);
|
|
DWORD WINAPI LoopProxyManager(LPVOID lParam);
|
|
DWORD WINAPI LoopClientLogManager(LPVOID lParam);
|