diff --git a/Tools/win32pbs.m b/Tools/win32pbs.m index 7c693ab..964b6d1 100755 --- a/Tools/win32pbs.m +++ b/Tools/win32pbs.m @@ -77,7 +77,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, + (id) ownerByOsPb: (NSString*)p { - if ([p isEqual: [NSPasteboard generalPasteboard]]) + if ([p isEqual: [[NSPasteboard generalPasteboard] name]]) { return wpb; } @@ -397,12 +397,27 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, [wpb setClipboardData]; break; - case WM_RENDERALLFORMATS: - [wpb setClipboardData]; + case WM_RENDERALLFORMATS: + if (!OpenClipboard(hwnd)) + { + NSWarnMLog(@"Failed to get the Win32 clipboard. %d", GetLastError()); + } + else if (GetClipboardOwner() == hwnd) + { + if (!EmptyClipboard()) + { + NSWarnMLog(@"Failed to get the Win32 clipboard. %d", GetLastError()); + } + else + { + SendMessage(hwnd, WM_RENDERFORMAT, CF_UNICODETEXT, 0); + CloseClipboard(); + } + } break; - default: - return DefWindowProc(hwnd, uMsg, wParam, lParam); + default: + return DefWindowProc(hwnd, uMsg, wParam, lParam); } return (LRESULT) NULL;