From 30a9e9e370aa9aff9f64158aa0942b471621a7ef Mon Sep 17 00:00:00 2001
From: George Hazan <ghazan@miranda.im>
Date: Mon, 26 Sep 2022 18:23:52 +0300
Subject: Utils_ClipboardCopy - system-wide helper for writing text to
 clipboard

---
 protocols/Gadu-Gadu/src/sessions.cpp | 39 +++++++++++++-----------------------
 1 file changed, 14 insertions(+), 25 deletions(-)

(limited to 'protocols/Gadu-Gadu/src')

diff --git a/protocols/Gadu-Gadu/src/sessions.cpp b/protocols/Gadu-Gadu/src/sessions.cpp
index 6c71aeab95..080882053e 100644
--- a/protocols/Gadu-Gadu/src/sessions.cpp
+++ b/protocols/Gadu-Gadu/src/sessions.cpp
@@ -317,38 +317,27 @@ static INT_PTR CALLBACK gg_sessions_viewdlg(HWND hwndDlg, UINT message, WPARAM w
 			int iSelection = TrackPopupMenu(hMenu, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, nullptr);
 			switch (iSelection) {
 			case 10001:
-			{
-				wchar_t szText[512], szClientName[256], szIP[64], szLoginTime[64];
-				HGLOBAL hData;
-				if (!OpenClipboard(hwndDlg))
-					break;
-
-				EmptyClipboard();
-				szClientName[0] = szIP[0] = szLoginTime[0] = 0;
-				ListView_GetItemText(hList, lvhti.iItem, 0, szClientName, _countof(szClientName));
-				ListView_GetItemText(hList, lvhti.iItem, 1, szIP, _countof(szIP));
-				ListView_GetItemText(hList, lvhti.iItem, 2, szLoginTime, _countof(szLoginTime));
-				mir_snwprintf(szText, L"%s\t%s\t%s", szClientName, szIP, szLoginTime);
-				if ((hData = GlobalAlloc(GMEM_MOVEABLE, mir_wstrlen(szText) + 1)) != nullptr)
 				{
-					mir_wstrcpy((wchar_t*)GlobalLock(hData), szText);
-					GlobalUnlock(hData);
-					SetClipboardData(CF_TEXT, hData);
+					wchar_t szText[512], szClientName[256], szIP[64], szLoginTime[64];
+					szClientName[0] = szIP[0] = szLoginTime[0] = 0;
+					ListView_GetItemText(hList, lvhti.iItem, 0, szClientName, _countof(szClientName));
+					ListView_GetItemText(hList, lvhti.iItem, 1, szIP, _countof(szIP));
+					ListView_GetItemText(hList, lvhti.iItem, 2, szLoginTime, _countof(szLoginTime));
+					mir_snwprintf(szText, L"%s\t%s\t%s", szClientName, szIP, szLoginTime);
+					Utils_ClipboardCopy(szText);
 				}
-				CloseClipboard();
 				break;
-			}
 
 			case 10002:
-			{
-				wchar_t szUrl[256], szIP[64];
-				szIP[0] = 0;
-				ListView_GetItemText(hList, lvhti.iItem, 1, szIP, _countof(szIP));
-				mir_snwprintf(szUrl, L"http://whois.domaintools.com/%s", szIP);
-				Utils_OpenUrlW(szUrl);
+				{
+					wchar_t szUrl[256], szIP[64];
+					szIP[0] = 0;
+					ListView_GetItemText(hList, lvhti.iItem, 1, szIP, _countof(szIP));
+					mir_snwprintf(szUrl, L"http://whois.domaintools.com/%s", szIP);
+					Utils_OpenUrlW(szUrl);
+				}
 				break;
 			}
-			}
 			DestroyMenu(hMenu);
 		}
 		break;
-- 
cgit v1.2.3