Mercurial > projects > dwt-win
comparison dwt/dnd/HTMLTransfer.d @ 237:e2affbeb686d
Making tango.sys.win32.Types and dwt.internal.win32.WINTYPES to match common declaration. Make ansi charactars of type ubyte.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 19 Jun 2008 03:25:36 +0200 |
parents | 36f5cb12e1a2 |
children | fd9c62a2998e |
comparison
equal
deleted
inserted
replaced
236:9c1bb90eba13 | 237:e2affbeb686d |
---|---|
130 buffer.append(string); | 130 buffer.append(string); |
131 buffer.append(SUFFIX); | 131 buffer.append(SUFFIX); |
132 | 132 |
133 auto wstrz = StrToTCHARz(OS.CP_UTF8,buffer.toString); | 133 auto wstrz = StrToTCHARz(OS.CP_UTF8,buffer.toString); |
134 cchMultiByte = OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, null, 0, null, null); | 134 cchMultiByte = OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, null, 0, null, null); |
135 auto lpMultiByteStr = cast(char*) OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); | 135 auto lpMultiByteStr = cast(CHAR*) OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); |
136 OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, lpMultiByteStr, cchMultiByte, null, null); | 136 OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, lpMultiByteStr, cchMultiByte, null, null); |
137 transferData.stgmedium = new STGMEDIUM(); | 137 transferData.stgmedium = new STGMEDIUM(); |
138 transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; | 138 transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; |
139 transferData.stgmedium.unionField = lpMultiByteStr; | 139 transferData.stgmedium.unionField = lpMultiByteStr; |
140 transferData.stgmedium.pUnkForRelease = null; | 140 transferData.stgmedium.pUnkForRelease = null; |
163 data.Release(); | 163 data.Release(); |
164 if (transferData.result !is COM.S_OK) return null; | 164 if (transferData.result !is COM.S_OK) return null; |
165 auto hMem = stgmedium.unionField; | 165 auto hMem = stgmedium.unionField; |
166 | 166 |
167 try { | 167 try { |
168 auto lpMultiByteStr = cast(char*) OS.GlobalLock(hMem); | 168 auto lpMultiByteStr = cast(CHAR*) OS.GlobalLock(hMem); |
169 if (lpMultiByteStr is null) return null; | 169 if (lpMultiByteStr is null) return null; |
170 try { | 170 try { |
171 /* NOTE: CF_HTML uses UTF-8 encoding. | 171 /* NOTE: CF_HTML uses UTF-8 encoding. |
172 * The MSDN documentation for MultiByteToWideChar states that dwFlags must be set to 0 for UTF-8. | 172 * The MSDN documentation for MultiByteToWideChar states that dwFlags must be set to 0 for UTF-8. |
173 * Otherwise, the function fails with ERROR_INVALID_FLAGS. */ | 173 * Otherwise, the function fails with ERROR_INVALID_FLAGS. */ |