feature(master): Add remote chat feature

This commit is contained in:
yuanyuanxiang
2025-06-08 23:49:19 +08:00
parent fa8655fc0a
commit ae39639e9f
11 changed files with 281 additions and 0 deletions

View File

@@ -33,6 +33,7 @@
#include <algorithm>
#include "HideScreenSpyDlg.h"
#include <sys/MachineDlg.h>
#include "Chat.h"
#ifdef _DEBUG
#define new DEBUG_NEW
@@ -354,6 +355,7 @@ BEGIN_MESSAGE_MAP(CMy2015RemoteDlg, CDialogEx)
ON_MESSAGE(WM_OPENPROXYDIALOG, OnOpenProxyDialog)
ON_MESSAGE(WM_OPENHIDESCREENDLG, OnOpenHideScreenDialog)
ON_MESSAGE(WM_OPENMACHINEMGRDLG, OnOpenMachineManagerDialog)
ON_MESSAGE(WM_OPENCHATDIALOG, OnOpenChatDialog)
ON_MESSAGE(WM_UPXTASKRESULT, UPXProcResult)
ON_WM_HELPINFO()
ON_COMMAND(ID_ONLINE_SHARE, &CMy2015RemoteDlg::OnOnlineShare)
@@ -1567,6 +1569,11 @@ VOID CALLBACK CMy2015RemoteDlg::NotifyProc(CONTEXT_OBJECT* ContextObject)
Dlg->OnReceiveComplete();
break;
}
case CHAT_DLG: {
CChat* Dlg = (CChat*)ContextObject->hDlg;
Dlg->OnReceiveComplete();
break;
}
default: {
HANDLE hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
if (hEvent == NULL) {
@@ -1665,6 +1672,10 @@ VOID CMy2015RemoteDlg::MessageHandle(CONTEXT_OBJECT* ContextObject)
g_2015RemoteDlg->SendMessage(WM_OPENMACHINEMGRDLG, 0, (LPARAM)ContextObject);
break;
}
case TOKEN_CHAT_START: { // 远程交谈
g_2015RemoteDlg->SendMessage(WM_OPENCHATDIALOG, 0, (LPARAM)ContextObject);
break;
}
case TOKEN_KEYBOARD_START: {// 键盘记录
g_2015RemoteDlg->SendMessage(WM_OPENKEYBOARDDIALOG, 0, (LPARAM)ContextObject);
break;
@@ -1888,6 +1899,12 @@ LRESULT CMy2015RemoteDlg::OnUserOfflineMsg(WPARAM wParam, LPARAM lParam)
delete Dlg;
break;
}
case CHAT_DLG:
{
CChat* Dlg = (CChat*)p->hDlg;
delete Dlg;
break;
}
default:break;
}
delete p;
@@ -2182,6 +2199,21 @@ LRESULT CMy2015RemoteDlg::OnOpenMachineManagerDialog(WPARAM wParam, LPARAM lPara
return 0;
}
LRESULT CMy2015RemoteDlg::OnOpenChatDialog(WPARAM wParam, LPARAM lParam)
{
CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)lParam;
CChat* Dlg = new CChat(this, m_iocpServer, ContextObject);
Dlg->Create(IDD_CHAT, GetDesktopWindow());
Dlg->ShowWindow(SW_SHOW);
ContextObject->v1 = CHAT_DLG;
ContextObject->hDlg = Dlg;
return 0;
}
BOOL CMy2015RemoteDlg::OnHelpInfo(HELPINFO* pHelpInfo)
{
MessageBox("Copyleft (c) FTU 2025", "关于");