From 8526e4807379ed35e3461da6793256af8c1ff6cf Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 9 Nov 2018 17:14:57 +0100 Subject: [PATCH] Stop trying to send ListConnInfo via WM_COPYDATA Windows tries to do a copy of it, and it is too complex to survive that. Just reference the object directly as we know the source of the message here. --- win/winvnc/ControlPanel.cxx | 4 ++-- win/winvnc/STrayIcon.cxx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/win/winvnc/ControlPanel.cxx b/win/winvnc/ControlPanel.cxx index e7262287..72831e55 100644 --- a/win/winvnc/ControlPanel.cxx +++ b/win/winvnc/ControlPanel.cxx @@ -140,6 +140,8 @@ void ControlPanel::SendCommand(DWORD command, int data) { COPYDATASTRUCT copyData; copyData.dwData = command; + copyData.cbData = 0; + copyData.lpData = 0; getSelConnInfo(); if (data != -1) { ListConnStatus.Copy(&ListSelConn); @@ -148,8 +150,6 @@ void ControlPanel::SendCommand(DWORD command, int data) } else { ListConnStatus.Clear(); } - copyData.cbData = 0; - copyData.lpData = &ListConnStatus; SendMessage(m_hSTIcon, WM_COPYDATA, 0, (LPARAM)©Data); } diff --git a/win/winvnc/STrayIcon.cxx b/win/winvnc/STrayIcon.cxx index fa483ee0..a90819d0 100644 --- a/win/winvnc/STrayIcon.cxx +++ b/win/winvnc/STrayIcon.cxx @@ -184,7 +184,7 @@ public: case 2: return thread.server.disconnectClients("IPC disconnect") ? 1 : 0; case 3: - thread.server.setClientsStatus((ListConnInfo *)command->lpData); + thread.server.setClientsStatus(&CPanel->ListConnStatus); case 4: thread.server.getClientsInfo(&LCInfo); CPanel->UpdateListView(&LCInfo); -- 2.39.5