svnno****@sourc*****
svnno****@sourc*****
2016年 6月 30日 (木) 08:43:09 JST
Revision: 6417 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6417 Author: doda Date: 2016-06-30 08:43:08 +0900 (Thu, 30 Jun 2016) Log Message: ----------- GlobalUnlock() した後に buf に触っていたのを修正。 GlobalAlloc() の説明には「Win32 環境では、物理メモリ内でメモリブロックが 移動されることは決してありませんが」とあるので大丈夫なのだとは思うけれど 念のため。 Modified Paths: -------------- trunk/teraterm/teraterm/clipboar.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/clipboar.c =================================================================== --- trunk/teraterm/teraterm/clipboar.c 2016-06-29 15:00:32 UTC (rev 6416) +++ trunk/teraterm/teraterm/clipboar.c 2016-06-29 23:43:08 UTC (rev 6417) @@ -702,8 +702,6 @@ hMem = GlobalAlloc(GMEM_MOVEABLE, len + 1); buf = GlobalLock(hMem); SendMessage(GetDlgItem(hDlgWnd, IDC_EDIT), WM_GETTEXT, len + 1, (LPARAM)buf); - GlobalUnlock(hMem); - wide_len = MultiByteToWideChar(CP_ACP, 0, buf, -1, NULL, 0); wide_hMem = GlobalAlloc(GMEM_MOVEABLE, sizeof(WCHAR) * wide_len); if (wide_hMem) { @@ -712,6 +710,8 @@ GlobalUnlock(wide_hMem); } + GlobalUnlock(hMem); + EmptyClipboard(); SetClipboardData(CF_TEXT, hMem); if (wide_buf) {