OSDN Git Service

Fix bugs of copying URL to clipboard.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Sat, 15 Oct 2011 07:46:37 +0000 (16:46 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Sat, 15 Oct 2011 07:46:37 +0000 (16:46 +0900)
FFFTP_Eng_Release/FFFTP.exe
Release/FFFTP.exe
mbswrapper.c
mbswrapper.h

index d34dded..f5744fc 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index 927d1ea..f8cf3f2 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index 11754b2..36561a8 100644 (file)
@@ -1818,6 +1818,34 @@ END_ROUTINE
        return r;\r
 }\r
 \r
+HANDLE SetClipboardDataM(UINT uFormat, HANDLE hMem)\r
+{\r
+       HANDLE r = NULL;\r
+       char* p;\r
+       int Length;\r
+       int BufferLength;\r
+       HGLOBAL hBufferMem;\r
+START_ROUTINE\r
+       if(uFormat == CF_TEXT)\r
+       {\r
+               p = (char*)GlobalLock(hMem);\r
+               Length = (int)GlobalSize(hMem);\r
+               BufferLength = MtoW(NULL, 0, p, Length);\r
+               if(hBufferMem = GlobalAlloc(GMEM_MOVEABLE, sizeof(wchar_t) * BufferLength))\r
+               {\r
+                       MtoW((LPWSTR)GlobalLock(hBufferMem), BufferLength, p, Length);\r
+                       GlobalUnlock(hBufferMem);\r
+                       r = SetClipboardData(CF_UNICODETEXT, hBufferMem);\r
+               }\r
+               GlobalUnlock(hMem);\r
+               GlobalFree(hMem);\r
+       }\r
+       else\r
+               r = SetClipboardData(uFormat, hMem);\r
+END_ROUTINE\r
+       return r;\r
+}\r
+\r
 int mkdirM(const char * _Path)\r
 {\r
        int r = 0;\r
index af8ba4a..f1040b9 100644 (file)
@@ -155,6 +155,9 @@ HWND CreateDialogParamM(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndPar
 #undef sndPlaySound\r
 #define sndPlaySound sndPlaySoundM\r
 BOOL sndPlaySoundM(LPCSTR pszSound, UINT fuSound);\r
+#undef SetClipboardData\r
+#define SetClipboardData SetClipboardDataM\r
+HANDLE SetClipboardDataM(UINT uFormat, HANDLE hMem);\r
 #undef mkdir\r
 #define mkdir _mkdirM\r
 int mkdirM(const char * _Path);\r